+ XMLNode *extra_xml (const std::string& str, bool add_if_missing = false);
+ void save_extra_xml (const XMLNode&);
+
+ const PBD::ID& id() const { return _id; }
+ 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;