00001 /* -*- mode: c++ -*- */ 00002 00014 #ifndef _DataRepXML_H_ 00015 #define _DataRepXML_H_ 00016 00017 #include "BaseXML.h" 00018 00019 class DataRep; 00020 class BinningProjector; 00021 class BinningProjectorXML; 00022 class FunctionProjector; 00023 class FunctionProjectorXML; 00024 class MapMatrixProjector; 00025 class MapMatrixProjectorXML; 00026 class NTupleProjector; 00027 class NTupleProjectorXML; 00028 class PointRepXML; 00029 class TextDataRep; 00030 00037 class MDL_HIPPOPLOT_API DataRepXML : public BaseXML 00038 { 00039 00040 private: 00041 00043 PointRepXML * m_pointrep; 00044 00046 NTupleProjectorXML * m_nTupleProjector; 00047 00049 BinningProjectorXML * m_binningProjectorXML; 00050 00052 FunctionProjectorXML * m_functionProjector; 00053 00056 MapMatrixProjectorXML * m_mapMatrixProjectorXML; 00057 00059 std::string m_contours; 00060 00062 void createChildren ( XmlElement & tag, const DataRep & rep ); 00063 00066 void createChildren ( XmlElement & tag, 00067 const NTupleProjector * projector ); 00068 00071 void createChildren ( XmlElement & tag, 00072 const BinningProjector * projector ); 00073 00077 void createChildren ( XmlElement & tag, 00078 const MapMatrixProjector * projector ); 00079 00082 void createChildren ( XmlElement & tag, 00083 const FunctionProjector * projector ); 00084 00086 void createFunctionTargetChild ( XmlElement & tag, const DataRep & rep ); 00087 00091 DataRep * createDataRep ( const XmlElement * element ); 00092 00098 DataRep * createDataRep ( const XmlElement * dr_element, 00099 const XmlElement * ntp_element ); 00100 00104 DataRep * getTextRepObject ( const XmlElement * ); 00105 00106 public: 00107 00109 DataRepXML ( XmlController * ); 00110 00112 XmlElement * createElement ( const DataRep & rep ); 00113 00115 DataRep * createObject ( const XmlElement * element ); 00116 00117 }; 00118 00119 #endif // _DataRepXML_H_