LocFieldSubSet.hpp

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

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