00001 #ifndef REBECCA_FRAMEWORK_CATEGORY_H
00002 #define REBECCA_FRAMEWORK_CATEGORY_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifdef _WIN32
00031 # pragma warning ( push )
00032 # pragma warning( disable : 4251 )
00033 # pragma warning( disable : 4290 )
00034 #endif
00035
00036 #include <rebecca/framework/InnerTopic.h>
00037
00038 namespace rebecca
00039 {
00040 namespace framework
00041 {
00042 namespace impl
00043 {
00044
00045
00046
00047
00048
00059 class CategoryImpl;
00060 class PatternSideThat;
00061 class Template;
00062 class Pattern;
00063 class GraphBuilderFramework;
00064
00076 class REBECCA_EXPORT Category : public InnerTopic
00077 {
00078 public:
00079
00091 Category()
00092 throw(InternalProgrammerErrorException &);
00093
00109 virtual void handleInnerTag(Tag *tag)
00110 throw(InternalProgrammerErrorException &);
00111
00127 virtual const StringPimpl getTemplateString()
00128 throw(InternalProgrammerErrorException &);
00129
00147 virtual const StringPimpl &getPatternString()
00148 throw(InternalProgrammerErrorException &);
00149
00167 virtual const StringPimpl &getThatString()
00168 throw(InternalProgrammerErrorException &);
00169
00183 virtual const Template *getTemplate()
00184 throw(InternalProgrammerErrorException &);
00185
00190 virtual ~Category();
00191
00192 private:
00193
00204 CategoryImpl *m_pimpl;
00205 };
00206
00207
00208 }
00209
00210
00211 using rebecca::framework::impl::Category;
00212
00213 }
00214 }
00215
00216
00217 #ifdef _WIN32
00218 # pragma warning ( pop )
00219 #endif
00220
00221 #endif
00222