fieldfactory.h

00001 #ifndef FIELDFACTORY_H_PROTECTOR
00002 #define FIELDFACTORY_H_PROTECTOR
00003 
00004 #include "field.h"
00005 #include "compositefield.h"
00006 #include "xmlparser.h"
00007 #include <string>
00008 #include <vector>
00009 
00010 namespace afl
00011 {
00016     class FieldFactory
00017     {
00018         public:
00022             FieldFactory( ) { }
00023 
00027             virtual ~FieldFactory( ) { }
00028 
00035             Field* load( const std::string& fullPath ) const;
00036 
00044             Field* load( const std::string& path, const std::string& name ) const;
00045 
00046 
00053             Field* loadFieldURI( const std::string& uri, XMLParser* parser = NULL ) const;
00054 
00063             void save( const std::string& path, const Field* field,
00064                    const std::string& baseURI = "" ) const;
00065 
00071             Field* getNewField( const std::string& name, size_t dim ) const;
00072 
00080             Field* getNewField( const std::string& name, std::vector<const Field*> fields, std::vector<std::string> functions, size_t columns = 1 );
00081 
00082         private:
00083 
00084             Field* parseField( const std::string& dir,  XMLNode* field ) const;
00085             CompositeField* parseComposite( const std::string& dir,  XMLNode* composite ) const;
00086     };
00087 
00088 }
00089 #endif
00090 

Generated on Fri Dec 22 07:17:50 2006 for afl by  doxygen 1.4.6