00001
00002
00003 #ifndef _GML_PARSER_HPP_
00004 #define _GML_PARSER_HPP_
00005
00006 #include <list>
00007 #include <string>
00008
00009 #include <geom/Declarations.hpp>
00010 #include <gml/Object.hpp>
00011
00012
00013 class QDomElement;
00014
00015 namespace jafar {
00016 namespace gml {
00023 class Parser {
00024 public:
00025 Parser( const std::string& fileName );
00029 ElementsLists allElements() const;
00033 ElementsLists elements( Object::Type ) const;
00037 const Object* object( const std::string& _name ) const;
00038 const std::list< const Object* >& objects( Object::Type ) const;
00039 private:
00040 void recursiveParseElement( const QDomElement& element );
00041 void recursiveParseAllChildrenElements( const QDomElement& element );
00042 struct Private;
00043 Private* const d;
00044 };
00045 }
00046 }
00047
00048 #endif