#include <set>
#include <memory>
+class ModelAPI_Attribute;
class ModelAPI_AttributeDocRef;
class ModelAPI_AttributeInteger;
class ModelAPI_AttributeDouble;
class ModelAPI_Feature;
class ModelAPI_AttributeSelection;
class ModelAPI_AttributeSelectionList;
+class ModelAPI_AttributeIntArray;
+class ModelAPI_Object;
class GeomAPI_Shape;
/// Enumeration that contains the execution status of the Object
virtual std::shared_ptr<ModelAPI_AttributeBoolean> boolean(const std::string& theID) = 0;
/// Returns the attribute that contains boolean value
virtual std::shared_ptr<ModelAPI_AttributeString> string(const std::string& theID) = 0;
+ /// Returns the attribute that contains integer values array
+ virtual std::shared_ptr<ModelAPI_AttributeIntArray> intArray(const std::string& theID) = 0;
/// Returns the generic attribute by identifier
/// \param theID identifier of the attribute
/// for each attribute of the object
/// \param theID identifier of the attribute that can be referenced by this ID later
/// \param theAttrType type of the created attribute (received from the type method)
- virtual void addAttribute(const std::string& theID, const std::string theAttrType) = 0;
+ /// \returns the just created attribute
+ virtual std::shared_ptr<ModelAPI_Attribute>
+ addAttribute(const std::string& theID, const std::string theAttrType) = 0;
/// Useful method for "set" methods of the attributes: sends an UPDATE event and
/// makes attribute initialized
virtual void sendAttributeUpdated(ModelAPI_Attribute* theAttr) = 0;
+ /// Blocks sending "attribute updated" if theBlock is true
+ virtual void blockSendAttributeUpdated(const bool theBlock) = 0;
/// Erases all the data from the data model
virtual void erase() = 0;
/// To virtually destroy the fields of successors
- virtual ~ModelAPI_Data()
- {
- }
+ virtual ~ModelAPI_Data();
/// Stores the state of the object to execute it later accordingly
virtual void execState(const ModelAPI_ExecState theState) = 0;
virtual ModelAPI_ExecState execState() = 0;
/// Registers error during the execution, causes the ExecutionFailed state
- virtual void setError(const std::string& theError) = 0;
+ 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
+ /// 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 atributes content into theTarget data
+ virtual void copyTo(std::shared_ptr<ModelAPI_Data> theTarget) = 0;
+
protected:
/// Objects are created for features automatically
- ModelAPI_Data()
- {
- }
+ ModelAPI_Data();
};
typedef std::shared_ptr<ModelAPI_Data> DataPtr;