+ bool set_id (const XMLNode&);
+ void set_id (const std::string&);
+ void reset_id ();
+
+ /* history management */
+
+ void clear_changes ();
+ virtual void clear_owned_changes ();
+ PropertyList* get_changes_as_properties (Command *) const;
+ virtual void rdiff (std::vector<Command*> &) const;
+ bool changed() const;
+
+ /* create a property list from an XMLNode
+ */
+ virtual PropertyList* property_factory (const XMLNode&) const;
+
+ /* How stateful's notify of changes to their properties
+ */
+ PBD::Signal1<void,const PropertyChange&> PropertyChanged;