#ifndef ModelAPI_Data_H_
#define ModelAPI_Data_H_
+#ifdef _WINDOWS // to avoid too long decorated name warning
+#pragma warning( disable : 4503 )
+#endif
+
#include "ModelAPI.h"
#include <string>
#include <list>
class ModelAPI_AttributeReference;
class ModelAPI_AttributeRefAttr;
class ModelAPI_AttributeRefList;
+class ModelAPI_AttributeRefAttrList;
class ModelAPI_AttributeBoolean;
class ModelAPI_AttributeString;
class ModelAPI_Document;
virtual std::shared_ptr<ModelAPI_AttributeRefAttr> refattr(const std::string& theID) = 0;
/// Returns the attribute that contains list of references to features
virtual std::shared_ptr<ModelAPI_AttributeRefList> reflist(const std::string& theID) = 0;
+ /// Returns the attribute that contains list of references to features or reference to
+ /// an attribute of a feature
+ virtual std::shared_ptr<ModelAPI_AttributeRefAttrList> refattrlist(const std::string& theID) = 0;
/// Returns the attribute that contains boolean value
virtual std::shared_ptr<ModelAPI_AttributeBoolean> boolean(const std::string& theID) = 0;
/// Returns the attribute that contains boolean value
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
+ /// 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 ptrs in swig)
/// This method is called by the updater.
virtual void setUpdateID(const int theID) = 0;
- /// Returns true if the given object is owner of this data (needed for correct erase of object
- /// with duplicated data)
- virtual bool isOwner(ModelAPI_Object* theOwner) = 0;
+ /// Returns the owner of htis data
+ virtual std::shared_ptr<ModelAPI_Object> owner() = 0;
+
+ /// Returns true if the object is deleted, but some data is still keept in memory
+ virtual bool isDeleted() = 0;
+
+ /// Sets true if the object is deleted, but some data is still keept in memory
+ virtual void setIsDeleted(const bool theFlag) = 0;
protected:
/// Objects are created for features automatically