LocIdxSubSet.hpp

Go to the documentation of this file.
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

Generated on Sat Oct 31 05:21:22 2009 for OpenAnalysis by  doxygen 1.6.1