00001 // $Header: /bes/bes/BossCvs/Calibration/rdbModel/rdbModel/Management/Visitor.h,v 1.1.1.1 2005/10/17 06:10:53 maqm Exp $ 00002 #ifndef RDBMODEL_VISITOR_H 00003 #define RDBMODEL_VISITOR_H 00004 #include <string> 00005 00006 namespace rdbModel { 00007 00008 class Rdb; 00009 class Table; 00010 class Column; 00011 class Index; 00012 class Assertion; 00013 class InsertNew; 00014 class Supersede; 00015 class Query; 00016 class InterRow; 00017 class Set; 00018 00032 class Visitor { 00033 public: 00034 enum VisitorState { 00035 VCONTINUE = 0, 00036 VDONE, // visitor has had its fill of visiting 00037 VBRANCHDONE, // don't descend further; go to next sibling, if any 00038 VERROR, // error during visit; perhaps can continue, though 00039 VERRORABORT // error during visit; can't handle more 00040 }; 00041 00042 public: 00044 // bool getRecursive(){return recursive;} 00046 // void setRecursive(bool prec){recursive = prec;}; 00047 00048 virtual VisitorState visitRdb(Rdb*) = 0; 00049 virtual VisitorState visitTable(Table*) = 0; 00050 virtual VisitorState visitColumn(Column*) = 0; 00051 virtual VisitorState visitIndex(Index*) = 0; 00052 virtual VisitorState visitAssertion(Assertion*) = 0; 00053 virtual VisitorState visitInsertNew(InsertNew*) = 0; 00054 virtual VisitorState visitSupersede(Supersede*) = 0; 00055 virtual VisitorState visitQuery(Query*) = 0; 00056 virtual VisitorState visitSet(Set*) = 0; 00057 virtual VisitorState visitInterRow(InterRow*) = 0; 00058 00059 00060 protected: 00062 // bool recursive; 00063 }; 00064 } 00065 #endif // RDBMODEL_VISITOR_H