21 #ifndef TLP_PROPERTYMANAGER_H 22 #define TLP_PROPERTYMANAGER_H 29 template <
class itType>
32 class PropertyInterface;
35 class PropertyManager {
38 std::map<std::string, PropertyInterface *> localProperties;
39 std::map<std::string, PropertyInterface *> inheritedProperties;
43 explicit PropertyManager(Graph *);
46 bool existProperty(
const std::string &)
const;
47 bool existLocalProperty(
const std::string &)
const;
48 bool existInheritedProperty(
const std::string &)
const;
49 void setLocalProperty(
const std::string &, PropertyInterface *);
50 bool renameLocalProperty(PropertyInterface *,
const std::string &);
51 PropertyInterface *getProperty(
const std::string &)
const;
52 PropertyInterface *getLocalProperty(
const std::string &)
const;
53 PropertyInterface *getInheritedProperty(
const std::string &)
const;
54 void delLocalProperty(
const std::string &);
55 void notifyBeforeDelInheritedProperty(
const std::string &);
56 void erase(
const node);
57 void erase(
const edge);
59 Iterator<std::string> *getLocalProperties();
60 Iterator<std::string> *getInheritedProperties();
61 Iterator<PropertyInterface *> *getLocalObjectProperties();
62 Iterator<PropertyInterface *> *getInheritedObjectProperties();
65 void setInheritedProperty(
const std::string &, PropertyInterface *);