00001 #ifndef RULEFACTORY_H 00002 #define RULEFACTORY_H 00003 00004 #include "RuleParser/ParameterDescription.h" 00005 00006 namespace RuleParser{ 00007 00008 class Rule; 00009 00013 00014 class RuleFactory 00015 { 00016 public: 00017 00019 00020 virtual Rule* createRule(const ParameterDescription& parameter, // The parameter being acted upon. 00021 int operation, // which operator was applied 00022 int value, // The value the operator is compared to, if any. 00023 bool param_on_left // true if parameter is on the lhs of the operator 00024 ); 00025 00026 virtual Rule* createRule(const ParameterDescription& paramter, // The parameter being acted upon. 00027 int operation, // which operator was applied 00028 double value, // The value the operator is compared to, if any. 00029 bool param_on_left // true if parameter is on the lhs of the operator 00030 ); 00031 00032 virtual Rule* createRule(const ParameterDescription& paramter, // The parameter being acted upon. 00033 int operation, // which operator was applied 00034 const std::string& value, // The value the operator is compared to, if any. 00035 bool param_on_left // true if parameter is on the lhs of the operator 00036 ); 00037 00038 00039 virtual ~RuleFactory() {}; 00040 }; 00041 00042 00043 } 00044 00045 #endif /* RULEFACTORY_H */