00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef _LEGACY_PARSER_H
00030 #define _LEGACY_PARSER_H
00031
00032 #include "gexf.h"
00033 #include "typedefs.h"
00034 #include "abstractparser.h"
00035 #include <libxml/xmlreader.h>
00036 #include <string>
00037
00038 namespace libgexf {
00039
00040 class Reader;
00041
00045 class LegacyParser: public AbstractParser {
00046 public:
00047 LegacyParser();
00048
00052 LegacyParser(const LegacyParser& orig);
00053
00054 virtual ~LegacyParser();
00055
00056 void bind(libgexf::GEXF* gexf);
00057 void processNode(xmlTextReaderPtr reader, const xmlChar* name);
00058 private:
00059 void processGEXFNode(xmlTextReaderPtr reader);
00060 void processMetaNode(xmlTextReaderPtr reader);
00061 void processCreatorNode(xmlTextReaderPtr reader);
00062 void processDescriptionNode(xmlTextReaderPtr reader);
00063
00064 void processGraphNode(xmlTextReaderPtr reader);
00065 void processNodesNode(xmlTextReaderPtr reader);
00066 void processNodeNode(xmlTextReaderPtr reader);
00067 void processEdgesNode(xmlTextReaderPtr reader);
00068 void processEdgeNode(xmlTextReaderPtr reader);
00069
00070 void processAttributesNode(xmlTextReaderPtr reader);
00071 void processAttributeNode(xmlTextReaderPtr reader);
00072 void processAttributeDefaultNode(xmlTextReaderPtr reader);
00073 void processAttvaluesNode(xmlTextReaderPtr reader);
00074 void processAttvalueNode(xmlTextReaderPtr reader);
00075
00076 bool isProcessableNode(xmlTextReaderPtr reader);
00077 private:
00078 enum ElemType { NODE, EDGE, ATTR_NODE, ATTR_EDGE };
00079 GEXF* _gexf;
00080 ElemType _last_node_type;
00081 t_id _last_id;
00082 };
00083
00084 }
00085
00086 #endif
00087