00001 // $Header: /local/reps/Gaudi/GaudiKernel/GaudiKernel/PropertyList.h,v 1.2 2000/12/13 12:57:20 mato Exp $ 00002 #ifndef GAUDIKERNEL_PROPERTYLIST_H 00003 #define GAUDIKERNEL_PROPERTYLIST_H 00004 00005 // Include Files 00006 #include "Property.h" 00007 #include "GaudiKernel/IProperty.h" 00008 #include <vector> 00009 00017 class PropertyList : public Property { 00018 public: 00020 PropertyList(); 00022 PropertyList( const std::string& name ); 00024 virtual ~PropertyList(); 00025 00027 bool isRef() const { return false; } 00028 00030 void addProperty( const std::string& name, Property& p ); 00032 void addProperty( Property& p ); 00034 void removeProperty( const std::string& name ); 00036 void removeProperty( Property& p ); 00037 00039 bool assign( const Property& p ); 00041 bool load( Property& p) const; 00042 00044 bool assign( const std::string& name, const Property& p ); 00046 bool load( const std::string& name, Property& p) const; 00047 00049 const Property& getProperty( const std::string& name) const; 00051 const std::vector<Property*>& getProperties() const; 00052 private: 00053 std::vector<Property*> m_propertyList; 00054 }; 00055 00056 #endif // GAUDIKERNEL_PROPERTYLIST_H 00057