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