+ virtual ~ModelAPI_Data();
+
+ /// Stores the state of the object to execute it later accordingly
+ virtual void execState(const ModelAPI_ExecState theState) = 0;
+
+ /// Returns the state of the latest execution of the feature
+ virtual ModelAPI_ExecState execState() = 0;
+
+ /// Registers error during the execution, causes the ExecutionFailed state
+ virtual void setError(const std::string& theError, bool theSend = true) = 0;
+
+ /// Returns error, arose during the execution
+ virtual std::string error() const = 0;
+
+ /// Returns the identifier of feature-owner, unique in this document
+ virtual int featureId() const = 0;
+
+ /// returns all objects referenced to this
+ virtual const std::set<std::shared_ptr<ModelAPI_Attribute> >& refsToMe() = 0;
+
+ /// returns all references by attributes of this data
+ /// \param theRefs returned list of pairs: id of referenced attribute and
+ /// list of referenced objects
+ virtual void referencesToObjects(
+ std::list<std::pair<std::string, std::list<std::shared_ptr<ModelAPI_Object> > > >& theRefs) =0;
+
+ /// Copies all attributes content into theTarget data
+ virtual void copyTo(std::shared_ptr<ModelAPI_Data> theTarget) = 0;
+
+ /// Returns the invalid data pointer (to avoid working with NULL shared pointers in swig)
+ virtual std::shared_ptr<ModelAPI_Data> invalidPtr() = 0;
+
+ /// Identifier of the transaction when object (feature or result) was updated last time.
+ virtual int updateID() = 0;
+
+ /// Identifier of the transaction when object (feature or result) was updated last time.
+ /// This method is called by the updater.
+ virtual void setUpdateID(const int theID) = 0;
+
+ /// Returns the owner of this data
+ virtual std::shared_ptr<ModelAPI_Object> owner() = 0;
+
+ /// Returns true if the object is deleted, but some data is still kept in memory
+ virtual bool isDeleted() = 0;
+
+ /// Sets true if the object is deleted, but some data is still kept in memory
+ virtual void setIsDeleted(const bool theFlag) = 0;
+
+ /// Returns \c true if theAttribute1 is going earlier than theAttribute2 in the data
+ virtual bool isPrecedingAttribute(const std::string& theAttribute1,
+ const std::string& theAttribute2) const = 0;