00001 /* 00002 * ObjectLookupTable.h 00003 * 00004 * Created on: Jul 19, 2011 00005 * Author: Andreas Hertle 00006 */ 00007 00008 #ifndef OBJECTLOOKUPTABLE_H_ 00009 #define OBJECTLOOKUPTABLE_H_ 00010 00011 #include <vector> 00012 #include <string> 00013 #include "tfd_modules/opl/oplObject.h" 00014 #include "tfd_modules/opl/FluentMapping.h" 00015 00016 namespace opl 00017 { 00018 00019 namespace interface 00020 { 00021 00022 class Object; 00023 class ObjectLookupTable 00024 { 00025 public: 00026 static ObjectLookupTable* instance; 00027 virtual std::string createKey(const std::string& fluentName, const std::vector<std::string>& arguments) const = 0; 00028 virtual std::string createObjectKey(int index, double value) const = 0; 00029 virtual const FluentMapping* getVariable(const std::string& key) const = 0; 00030 virtual bool getPredicateValue(const FluentMapping* variable) const = 0; 00031 virtual double getNumericValue(const FluentMapping* variable) const = 0; 00032 virtual const Object* getObject(const FluentMapping* variable) const = 0; 00033 }; 00034 00035 } 00036 00037 } 00038 00039 #endif /* OBJECTLOOKUPTABLE_H_ */