Advertisement
Guest User

Reduce fir building condition

a guest
Jun 10th, 2015
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var getFeatureValidator = function getFeatureValidator(query){
  2.        
  3.         var validateFeature = function validateFeature(feature)
  4.         {
  5.            
  6.             var properties = feature.properties;
  7.            
  8.             var config = {
  9.                     'Equal':function reduceForEqualsCondition(result,value,key)
  10.                     {
  11.                         result = result && properties[key] === value;
  12.                         return result;
  13.                     },
  14.                     'Not Equal':function reduceForNotEqualsCondition(result,value,key)
  15.                     {
  16.                         result = result && properties[key] != value;
  17.                         return result;
  18.                     },
  19.                     'Not initial':function reduceForNotInitialCondition(result,value,key)
  20.                     {
  21.                         result = result && properties[key] != null;
  22.                         console.log("Result of performing Not Equals condition on ",key,"for value",value,"is ",result);
  23.                         return result;
  24.                     },
  25.                     'Greater Than':function reduceForGreaterThanCondition(result,value,key)
  26.                     {
  27.                         result = result && properties[key] > value;
  28.                         return result;
  29.                     },
  30.                     'Less Than':function reduceForLessThanCondition(result,value,key)
  31.                     {
  32.                         result = result && properties[key] < value;
  33.                         return result;
  34.                     },
  35.                     'Between': function reduceForBetweenCondition(result,value,key)
  36.                     {
  37.                         result = result && properties[key] > value.start && properties[key] < value.end;
  38.                         return result;
  39.                     }
  40.                 };
  41.            
  42.             var reduceQuery = function reduceQuery(result,value,key){
  43.                 var iterator = config[key];
  44.                 result = result && _.reduce(value,iterator,true);
  45.                 console.log("The result of checking query for key:",key,"value:",value,"is",result);
  46.                 return result;
  47.             };
  48.            
  49.             var matchesCondition = _.reduce(query,reduceQuery,true);
  50.             return matchesCondition;
  51.         };
  52.        
  53.         return validateFeature;
  54.     };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement