00001 00014 #ifndef LocFieldSubSet_H 00015 #define LocFieldSubSet_H 00016 00017 #include "LocSubSet.hpp" 00018 00019 namespace OA { 00020 00027 class LocFieldSubSet : public LocSubSet { 00028 public: 00029 LocFieldSubSet(OA_ptr<Location> loc, std::string fieldName) 00030 : LocSubSet(loc), mFieldName(fieldName) { } 00031 00033 LocFieldSubSet(LocFieldSubSet &other) 00034 : LocSubSet(other), mFieldName(other.mFieldName) {} 00035 00036 ~LocFieldSubSet() { } 00037 00038 void acceptVisitor(LocationVisitor& pVisitor); 00039 00040 //***************************************************************** 00041 // LocSubSet subclass type methods 00042 //***************************************************************** 00043 bool isaFieldSubSet() { return true; } 00044 00045 //***************************************************************** 00046 // Info methods 00047 //***************************************************************** 00048 bool isFull() { return false; } 00049 string getFieldName() { return mFieldName;} 00050 00051 //***************************************************************** 00052 // Relationship methods, will be defined in subclasses 00053 //***************************************************************** 00054 bool operator<(Location & other); 00055 bool operator==(Location& other); 00056 00057 bool mayOverlap(Location& other); 00058 00059 bool mustOverlap(Location& other); 00060 00061 bool subSetOf(Location& other); 00062 00063 //***************************************************************** 00064 // Annotation Interface 00065 //***************************************************************** 00066 void output(IRHandlesIRInterface& ir); 00067 00068 //***************************************************************** 00069 // Debugging 00070 //***************************************************************** 00071 void dump(std::ostream& os); 00072 void dump(std::ostream& os, OA_ptr<IRHandlesIRInterface> pIR); 00073 00074 std::string toString(OA_ptr<IRHandlesIRInterface> pIR); 00075 00076 virtual int getOrder() { return sOrder; } 00077 00078 private: 00079 string mFieldName; 00080 static const int sOrder = 500; 00081 }; 00082 00083 } // end namespace 00084 #endif
1.6.1