00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 #ifndef _PROPERTYLIST_HPP
00011 #define _PROPERTYLIST_HPP
00012 
00013 #include "Property.hpp"
00014 namespace lemur 
00015 {
00016   namespace parse 
00017   {
00018     
00030     class PropertyList {
00031 
00032     public:
00033       virtual ~PropertyList() {}
00034 
00038       virtual const Property * getProperty(const string name) const= 0;
00039 
00041       virtual void startIteration() const= 0;
00044       virtual const Property * nextEntry() const= 0;
00046       virtual bool hasMore() const= 0;
00047 
00048   
00054       virtual void setProperty(const Property * property) = 0;
00055 
00059       virtual void removeProperty(const string name) = 0;
00060 
00062       virtual void clear() = 0;
00063     };
00064   }
00065 }
00066 
00067 #endif //_PROPERTYLIST_HPP