00001 /* 00002 * SEMAINEStateMessage.h 00003 * 00004 * Created on: 27.07.2009 00005 * Author: marc 00006 */ 00007 00008 #ifndef SEMAINE_CMS_MESSAGE_SEMAINESTATEMESSAGE_H 00009 #define SEMAINE_CMS_MESSAGE_SEMAINESTATEMESSAGE_H 00010 00011 #include <semaine/cms/message/SEMAINEXMLMessage.h> 00012 #include <semaine/datatypes/stateinfo/StateInfo.h> 00013 #include <cms/Message.h> 00014 #include <semaine/util/XMLTool.h> 00015 #include <semaine/cms/exceptions/MessageFormatException.h> 00016 #include <semaine/cms/exceptions/SystemConfigurationException.h> 00017 00018 using namespace cms; 00019 00020 namespace semaine { 00021 00022 namespace cms { 00023 00024 namespace message { 00025 00026 class SEMAINEStateMessage: public semaine::cms::message::SEMAINEXMLMessage { 00027 public: 00028 SEMAINEStateMessage(const Message * message, semaine::datatypes::stateinfo::StateInfo::Type stateInfoType) 00029 throw(semaine::cms::exceptions::MessageFormatException, semaine::cms::exceptions::SystemConfigurationException); 00030 virtual ~SEMAINEStateMessage(); 00031 semaine::datatypes::stateinfo::StateInfo * getState() { return state; }; 00032 00033 protected: 00034 semaine::cms::CMSLogger * log; 00035 semaine::datatypes::stateinfo::StateInfo * state; 00036 semaine::datatypes::stateinfo::StateInfo::Type stateInfoType; 00037 semaine::datatypes::stateinfo::StateInfo * createState(XERCES_CPP_NAMESPACE::DOMDocument * doc) 00038 throw(semaine::cms::exceptions::MessageFormatException); 00039 }; 00040 00041 } 00042 00043 } 00044 00045 } 00046 00047 #endif /* SEMAINE_CMS_MESSAGE_SEMAINESTATEMESSAGE_H */