00001 // -*- mode: c++ -*- 00002 #ifndef _CQUERYTREEBUILDER 00003 #define _CQUERYTREEBUILDER 00004 #include "libMRML/include/uses-declarations.h" 00005 class CAlgorithm; 00006 class CAccessorAdminCollection; 00007 00008 00009 #include "libMRML/include/CMagic.h" // checking CQueryTreeNode 00010 #include "libMRML/include/CQueryTreeNode.h" 00011 #include "libMRML/include/CSelfDestroyPointer.h" 00012 00013 class CStaticQueryFactory; 00018 class CQueryContainer:public map<string,CQueryTreeNode* >,public CMagic{ 00019 public: 00023 CQueryTreeNode* getQueryByID(const string& inID)const; 00024 }; 00025 00026 00030 class CQueryTreeBuilder{ 00031 public: 00033 CQueryTreeBuilder(); 00044 pair<CQueryContainer*,CQueryTreeNode*> buildQueryTree(CAlgorithm& inAlgorithm, 00045 CAccessorAdminCollection& inBaseConfiguration, 00046 CStaticQueryFactory& inBaseTypeFactory, 00047 CQueryContainer* inContainer=0)const; 00050 CQueryTreeNode* getQueryByID(const string& inID)const; 00051 00052 }; 00053 00054 #endif