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