0030773: Application Framework - To allow to inherit existing attributes to reuse...
authormpv <mpv@opencascade.com>
Fri, 19 Jun 2020 20:12:17 +0000 (23:12 +0300)
committerabv <abv@opencascade.com>
Sat, 12 Sep 2020 17:42:18 +0000 (20:42 +0300)
Added possibility to inherit existing attributes if the same persistent fields are used. All methods that allow controlling the data model changes or getting some callbacks may be overridden in successor. They may have same GUIDs as a base class or new ones.

Special macros IMPLEMENT_DERIVED_ATTRIBUTE and IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE must be used instead of standard Handle macro definition IMPLEMENT_STANDARD_RTTIEXT to register new derived attributes.

Using this improvement several existing attributes from TDataStd, TDataXtd and XCAFDoc packages become inherited from other base attribute-classes. XML and Bin drivers of these attributes are removed. New base attribute classes are added: TDataStd_GenericEmpty and TDataStd_GenericExtString.

This improvement does not change both present formats Bin and XML documents. The obsolete Standard scheme is not changed at all.

202 files changed:
src/BinMDF/BinMDF_ADriver.cxx
src/BinMDF/BinMDF_ADriver.hxx
src/BinMDF/BinMDF_ADriver.lxx
src/BinMDF/BinMDF_ADriverTable.cxx
src/BinMDF/BinMDF_ADriverTable.hxx
src/BinMDF/BinMDF_ADriverTable.lxx
src/BinMDF/BinMDF_DerivedDriver.cxx [new file with mode: 0644]
src/BinMDF/BinMDF_DerivedDriver.hxx [new file with mode: 0644]
src/BinMDF/FILES
src/BinMDataStd/BinMDataStd.cxx
src/BinMDataStd/BinMDataStd.hxx
src/BinMDataStd/BinMDataStd_CommentDriver.cxx [deleted file]
src/BinMDataStd/BinMDataStd_CommentDriver.hxx [deleted file]
src/BinMDataStd/BinMDataStd_DirectoryDriver.cxx [deleted file]
src/BinMDataStd/BinMDataStd_DirectoryDriver.hxx [deleted file]
src/BinMDataStd/BinMDataStd_GenericEmptyDriver.cxx [moved from src/BinMDataStd/BinMDataStd_TickDriver.cxx with 63% similarity]
src/BinMDataStd/BinMDataStd_GenericEmptyDriver.hxx [moved from src/BinMDataXtd/BinMDataXtd_AxisDriver.hxx with 67% similarity]
src/BinMDataStd/BinMDataStd_GenericExtStringDriver.cxx [moved from src/BinMDataStd/BinMDataStd_NameDriver.cxx with 68% similarity]
src/BinMDataStd/BinMDataStd_GenericExtStringDriver.hxx [moved from src/BinMDataStd/BinMDataStd_NameDriver.hxx with 69% similarity]
src/BinMDataStd/BinMDataStd_IntegerDriver.cxx
src/BinMDataStd/BinMDataStd_NoteBookDriver.cxx [deleted file]
src/BinMDataStd/BinMDataStd_NoteBookDriver.hxx [deleted file]
src/BinMDataStd/BinMDataStd_RelationDriver.cxx [deleted file]
src/BinMDataStd/BinMDataStd_RelationDriver.hxx [deleted file]
src/BinMDataStd/BinMDataStd_TickDriver.hxx [deleted file]
src/BinMDataStd/FILES
src/BinMDataXtd/BinMDataXtd.cxx
src/BinMDataXtd/BinMDataXtd.hxx
src/BinMDataXtd/BinMDataXtd_AxisDriver.cxx [deleted file]
src/BinMDataXtd/BinMDataXtd_PlacementDriver.cxx [deleted file]
src/BinMDataXtd/BinMDataXtd_PlacementDriver.hxx [deleted file]
src/BinMDataXtd/BinMDataXtd_PlaneDriver.cxx [deleted file]
src/BinMDataXtd/BinMDataXtd_PlaneDriver.hxx [deleted file]
src/BinMDataXtd/BinMDataXtd_PointDriver.cxx [deleted file]
src/BinMDataXtd/BinMDataXtd_PointDriver.hxx [deleted file]
src/BinMDataXtd/BinMDataXtd_ShapeDriver.cxx [deleted file]
src/BinMDataXtd/BinMDataXtd_ShapeDriver.hxx [deleted file]
src/BinMDataXtd/FILES
src/BinMXCAFDoc/BinMXCAFDoc.cxx
src/BinMXCAFDoc/BinMXCAFDoc.hxx
src/BinMXCAFDoc/BinMXCAFDoc_AreaDriver.cxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_AreaDriver.hxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_ClippingPlaneToolDriver.cxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_ClippingPlaneToolDriver.hxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_ColorToolDriver.cxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_ColorToolDriver.hxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_DimTolToolDriver.cxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_DimTolToolDriver.hxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_DimensionDriver.cxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_DimensionDriver.hxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_DocumentToolDriver.cxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_DocumentToolDriver.hxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_GeomToleranceDriver.cxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_GeomToleranceDriver.hxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_LayerToolDriver.cxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_LayerToolDriver.hxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_MaterialToolDriver.cxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_MaterialToolDriver.hxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_NoteBalloonDriver.cxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_NoteBalloonDriver.hxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_NotesToolDriver.cxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_NotesToolDriver.hxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_ShapeToolDriver.cxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_ShapeToolDriver.hxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_ViewDriver.cxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_ViewDriver.hxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_ViewToolDriver.cxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_ViewToolDriver.hxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_VolumeDriver.cxx [deleted file]
src/BinMXCAFDoc/BinMXCAFDoc_VolumeDriver.hxx [deleted file]
src/BinMXCAFDoc/FILES
src/DDF/DDF_BasicCommands.cxx
src/TDF/FILES
src/TDF/TDF_DerivedAttribute.cxx [new file with mode: 0644]
src/TDF/TDF_DerivedAttribute.hxx [new file with mode: 0644]
src/TDataStd/FILES
src/TDataStd/TDataStd_Comment.cxx
src/TDataStd/TDataStd_Comment.hxx
src/TDataStd/TDataStd_Directory.cxx
src/TDataStd/TDataStd_Directory.hxx
src/TDataStd/TDataStd_Expression.cxx
src/TDataStd/TDataStd_Expression.hxx
src/TDataStd/TDataStd_GenericEmpty.cxx [new file with mode: 0644]
src/TDataStd/TDataStd_GenericEmpty.hxx [new file with mode: 0644]
src/TDataStd/TDataStd_GenericExtString.cxx [new file with mode: 0644]
src/TDataStd/TDataStd_GenericExtString.hxx [new file with mode: 0644]
src/TDataStd/TDataStd_Name.cxx
src/TDataStd/TDataStd_Name.hxx
src/TDataStd/TDataStd_NoteBook.cxx
src/TDataStd/TDataStd_NoteBook.hxx
src/TDataStd/TDataStd_Real.hxx
src/TDataStd/TDataStd_Relation.cxx
src/TDataStd/TDataStd_Relation.hxx
src/TDataStd/TDataStd_Tick.cxx
src/TDataStd/TDataStd_Tick.hxx
src/TDataXtd/TDataXtd_Axis.cxx
src/TDataXtd/TDataXtd_Axis.hxx
src/TDataXtd/TDataXtd_Placement.cxx
src/TDataXtd/TDataXtd_Placement.hxx
src/TDataXtd/TDataXtd_Plane.cxx
src/TDataXtd/TDataXtd_Plane.hxx
src/TDataXtd/TDataXtd_Point.cxx
src/TDataXtd/TDataXtd_Point.hxx
src/TDataXtd/TDataXtd_Shape.cxx
src/TDataXtd/TDataXtd_Shape.hxx
src/XCAFDoc/XCAFDoc_Area.cxx
src/XCAFDoc/XCAFDoc_Area.hxx
src/XCAFDoc/XCAFDoc_ClippingPlaneTool.cxx
src/XCAFDoc/XCAFDoc_ClippingPlaneTool.hxx
src/XCAFDoc/XCAFDoc_ColorTool.cxx
src/XCAFDoc/XCAFDoc_ColorTool.hxx
src/XCAFDoc/XCAFDoc_DimTolTool.cxx
src/XCAFDoc/XCAFDoc_DimTolTool.hxx
src/XCAFDoc/XCAFDoc_Dimension.cxx
src/XCAFDoc/XCAFDoc_Dimension.hxx
src/XCAFDoc/XCAFDoc_DocumentTool.cxx
src/XCAFDoc/XCAFDoc_DocumentTool.hxx
src/XCAFDoc/XCAFDoc_GeomTolerance.cxx
src/XCAFDoc/XCAFDoc_GeomTolerance.hxx
src/XCAFDoc/XCAFDoc_LayerTool.cxx
src/XCAFDoc/XCAFDoc_LayerTool.hxx
src/XCAFDoc/XCAFDoc_MaterialTool.cxx
src/XCAFDoc/XCAFDoc_MaterialTool.hxx
src/XCAFDoc/XCAFDoc_Note.hxx
src/XCAFDoc/XCAFDoc_NoteBalloon.cxx
src/XCAFDoc/XCAFDoc_NoteBalloon.hxx
src/XCAFDoc/XCAFDoc_NotesTool.cxx
src/XCAFDoc/XCAFDoc_NotesTool.hxx
src/XCAFDoc/XCAFDoc_ShapeTool.cxx
src/XCAFDoc/XCAFDoc_ShapeTool.hxx
src/XCAFDoc/XCAFDoc_View.cxx
src/XCAFDoc/XCAFDoc_View.hxx
src/XCAFDoc/XCAFDoc_ViewTool.cxx
src/XCAFDoc/XCAFDoc_ViewTool.hxx
src/XCAFDoc/XCAFDoc_Volume.cxx
src/XCAFDoc/XCAFDoc_Volume.hxx
src/XmlMDF/FILES
src/XmlMDF/XmlMDF.cxx
src/XmlMDF/XmlMDF_ADriver.cxx
src/XmlMDF/XmlMDF_ADriver.hxx
src/XmlMDF/XmlMDF_ADriverTable.cxx
src/XmlMDF/XmlMDF_ADriverTable.hxx
src/XmlMDF/XmlMDF_DerivedDriver.cxx [new file with mode: 0644]
src/XmlMDF/XmlMDF_DerivedDriver.hxx [new file with mode: 0644]
src/XmlMDataStd/FILES
src/XmlMDataStd/XmlMDataStd.cxx
src/XmlMDataStd/XmlMDataStd.hxx
src/XmlMDataStd/XmlMDataStd_CommentDriver.cxx [deleted file]
src/XmlMDataStd/XmlMDataStd_CommentDriver.hxx [deleted file]
src/XmlMDataStd/XmlMDataStd_DirectoryDriver.cxx [deleted file]
src/XmlMDataStd/XmlMDataStd_DirectoryDriver.hxx [deleted file]
src/XmlMDataStd/XmlMDataStd_GenericEmptyDriver.cxx [moved from src/XmlMDataStd/XmlMDataStd_TickDriver.cxx with 63% similarity]
src/XmlMDataStd/XmlMDataStd_GenericEmptyDriver.hxx [moved from src/XmlMDataStd/XmlMDataStd_TickDriver.hxx with 68% similarity]
src/XmlMDataStd/XmlMDataStd_GenericExtStringDriver.cxx [moved from src/XmlMDataStd/XmlMDataStd_NameDriver.cxx with 59% similarity]
src/XmlMDataStd/XmlMDataStd_GenericExtStringDriver.hxx [moved from src/XmlMDataStd/XmlMDataStd_NameDriver.hxx with 69% similarity]
src/XmlMDataStd/XmlMDataStd_IntegerDriver.cxx
src/XmlMDataStd/XmlMDataStd_NoteBookDriver.cxx [deleted file]
src/XmlMDataStd/XmlMDataStd_NoteBookDriver.hxx [deleted file]
src/XmlMDataStd/XmlMDataStd_RelationDriver.cxx [deleted file]
src/XmlMDataStd/XmlMDataStd_RelationDriver.hxx [deleted file]
src/XmlMDataXtd/FILES
src/XmlMDataXtd/XmlMDataXtd.cxx
src/XmlMDataXtd/XmlMDataXtd.hxx
src/XmlMDataXtd/XmlMDataXtd_AxisDriver.cxx [deleted file]
src/XmlMDataXtd/XmlMDataXtd_AxisDriver.hxx [deleted file]
src/XmlMDataXtd/XmlMDataXtd_PlacementDriver.cxx [deleted file]
src/XmlMDataXtd/XmlMDataXtd_PlacementDriver.hxx [deleted file]
src/XmlMDataXtd/XmlMDataXtd_PlaneDriver.cxx [deleted file]
src/XmlMDataXtd/XmlMDataXtd_PlaneDriver.hxx [deleted file]
src/XmlMDataXtd/XmlMDataXtd_PointDriver.cxx [deleted file]
src/XmlMDataXtd/XmlMDataXtd_PointDriver.hxx [deleted file]
src/XmlMDataXtd/XmlMDataXtd_ShapeDriver.cxx [deleted file]
src/XmlMDataXtd/XmlMDataXtd_ShapeDriver.hxx [deleted file]
src/XmlMXCAFDoc/FILES
src/XmlMXCAFDoc/XmlMXCAFDoc.cxx
src/XmlMXCAFDoc/XmlMXCAFDoc.hxx
src/XmlMXCAFDoc/XmlMXCAFDoc_AreaDriver.cxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_AreaDriver.hxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_ClippingPlaneToolDriver.cxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_ClippingPlaneToolDriver.hxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_ColorToolDriver.cxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_ColorToolDriver.hxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_DimTolToolDriver.cxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_DimTolToolDriver.hxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_DocumentToolDriver.cxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_DocumentToolDriver.hxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_LayerToolDriver.cxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_LayerToolDriver.hxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_MaterialToolDriver.cxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_MaterialToolDriver.hxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_NoteBalloonDriver.cxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_NoteBalloonDriver.hxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_NotesToolDriver.cxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_NotesToolDriver.hxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_ShapeToolDriver.cxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_ShapeToolDriver.hxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_ViewToolDriver.cxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_ViewToolDriver.hxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_VolumeDriver.cxx [deleted file]
src/XmlMXCAFDoc/XmlMXCAFDoc_VolumeDriver.hxx [deleted file]
tests/caf/basic/F4 [new file with mode: 0644]
tests/caf/basic/F5 [new file with mode: 0644]

index 8786c67..95d92b6 100644 (file)
 
 
 #include <BinMDF_ADriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TCollection_AsciiString.hxx>
-#include <TCollection_ExtendedString.hxx>
-#include <TDF_Attribute.hxx>
 
 IMPLEMENT_STANDARD_RTTIEXT(BinMDF_ADriver,Standard_Transient)
 
@@ -34,4 +28,15 @@ BinMDF_ADriver::BinMDF_ADriver (const Handle(Message_Messenger)& theMsgDriver,
 {
   if (theName)
     myTypeName = theName;
-}
\ No newline at end of file
+}
+
+//=======================================================================
+//function : SourceType
+//purpose  : 
+//=======================================================================
+
+const Handle(Standard_Type)& BinMDF_ADriver::SourceType () const
+{
+  return NewEmpty() -> DynamicType();
+}
+
index ba63dfa..9033635 100644 (file)
@@ -48,7 +48,7 @@ public:
   
   //! Returns the type of source object,
   //! inheriting from Attribute from TDF.
-    const Handle(Standard_Type)& SourceType() const;
+  Standard_EXPORT virtual const Handle(Standard_Type)& SourceType() const;
   
   //! Returns the type name of the attribute object
     const TCollection_AsciiString& TypeName() const;
@@ -63,6 +63,8 @@ public:
   //! <aRelocTable> to keep the sharings.
   Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& aSource, BinObjMgt_Persistent& aTarget, BinObjMgt_SRelocationTable& aRelocTable) const = 0;
 
+  //! Returns the current message driver of this driver
+  const Handle(Message_Messenger)& MessageDriver() const { return myMessageDriver; }
 
   DEFINE_STANDARD_RTTIEXT(BinMDF_ADriver,Standard_Transient)
 
index d991cf5..516d8ab 100644 (file)
 #include <TDF_Attribute.hxx>
 
 //=======================================================================
-//function : SourceType
-//purpose  : 
-//=======================================================================
-
-inline const Handle(Standard_Type)& BinMDF_ADriver::SourceType () const
-{
-  return NewEmpty() -> DynamicType();
-}
-
-//=======================================================================
 //function : TypeName
 //purpose  : 
 //=======================================================================
index 73973c0..a5fd118 100644 (file)
 #include <BinMDF_ADriver.hxx>
 #include <BinMDF_ADriverTable.hxx>
 #include <BinMDF_DataMapIteratorOfTypeADriverMap.hxx>
+#include <BinMDF_DerivedDriver.hxx>
 #include <BinMDF_StringIdMap.hxx>
 #include <Standard_NoSuchObject.hxx>
 #include <Standard_Type.hxx>
 #include <TCollection_HAsciiString.hxx>
+#include <TDF_DerivedAttribute.hxx>
 
 IMPLEMENT_STANDARD_RTTIEXT(BinMDF_ADriverTable,Standard_Transient)
 
@@ -45,6 +47,42 @@ void BinMDF_ADriverTable::AddDriver
 }
 
 //=======================================================================
+//function : AddDerivedDriver
+//purpose  :
+//=======================================================================
+void BinMDF_ADriverTable::AddDerivedDriver (const Handle(TDF_Attribute)& theInstance)
+{
+  const Handle(Standard_Type)& anInstanceType = theInstance->DynamicType();
+  if (!myMap.IsBound (anInstanceType)) // no direct driver, use a derived one
+  {
+    for (Handle(Standard_Type) aType = anInstanceType->Parent(); !aType.IsNull(); aType = aType->Parent())
+    {
+      if (myMap.IsBound (aType))
+      {
+        Handle(BinMDF_DerivedDriver) aDriver = new BinMDF_DerivedDriver (theInstance, myMap (aType));
+        myMap.Bind (anInstanceType, aDriver);
+        return;
+      }
+    }
+  }
+}
+
+//=======================================================================
+//function : AddDerivedDriver
+//purpose  :
+//=======================================================================
+const Handle(Standard_Type)& BinMDF_ADriverTable::AddDerivedDriver (Standard_CString theDerivedType)
+{
+  if (Handle(TDF_Attribute) anInstance = TDF_DerivedAttribute::Attribute (theDerivedType))
+  {
+    AddDerivedDriver (anInstance);
+    return anInstance->DynamicType();
+  }
+  static const Handle(Standard_Type) aNullType;
+  return aNullType;
+}
+
+//=======================================================================
 //function : AssignIds
 //purpose  : Assigns the IDs to the drivers of the given Types.
 //           It uses indices in the map as IDs.
@@ -97,4 +135,16 @@ void BinMDF_ADriverTable::AssignIds
       myMapId.Bind (aType, i);
     }
   }
+
+  // try to add derived drivers for attributes not found in myMap
+  for (BinMDF_StringIdMap::Iterator aStrId (aStringIdMap); aStrId.More(); aStrId.Next())
+  {
+    if (!myMapId.IsBound2 (aStrId.Value()))
+    {
+      if (Handle(Standard_Type) anAdded = AddDerivedDriver (aStrId.Key().ToCString()))
+      {
+        myMapId.Bind (anAdded, aStrId.Value());
+      }
+    }
+  }
 }
index 718ed36..fc6d2fd 100644 (file)
@@ -48,7 +48,15 @@ public:
   
   //! Adds a translation driver <theDriver>.
   Standard_EXPORT void AddDriver (const Handle(BinMDF_ADriver)& theDriver);
-  
+
+  //! Adds a translation driver for the derived attribute. The base driver must be already added.
+  //! @param theInstance is newly created attribute, detached from any label
+  Standard_EXPORT void AddDerivedDriver (const Handle(TDF_Attribute)& theInstance);
+
+  //! Adds a translation driver for the derived attribute. The base driver must be already added.
+  //! @param theDerivedType is registered attribute type using IMPLEMENT_DERIVED_ATTRIBUTE macro
+  Standard_EXPORT const Handle(Standard_Type)& AddDerivedDriver (Standard_CString theDerivedType);
+
   //! Assigns the IDs to the drivers of the given Types.
   //! It uses indices in the map as IDs.
   //! Useful in storage procedure.
@@ -61,11 +69,11 @@ public:
   
   //! Gets a driver <theDriver> according to <theType>.
   //! Returns Type ID if the driver was assigned an ID; 0 otherwise.
-    Standard_Integer GetDriver (const Handle(Standard_Type)& theType, Handle(BinMDF_ADriver)& theDriver) const;
+  Standard_Integer GetDriver (const Handle(Standard_Type)& theType, Handle(BinMDF_ADriver)& theDriver);
   
   //! Returns a driver according to <theTypeId>.
   //! Returns null handle if a driver is not found
-    Handle(BinMDF_ADriver) GetDriver (const Standard_Integer theTypeId) const;
+  Handle(BinMDF_ADriver) GetDriver (const Standard_Integer theTypeId);
 
 
 
index 1c0c4cc..6940efe 100644 (file)
@@ -33,8 +33,13 @@ inline void BinMDF_ADriverTable::AssignId
 
 inline Standard_Integer BinMDF_ADriverTable::GetDriver
                 (const Handle(Standard_Type)&  theType,
-                Handle(BinMDF_ADriver)&        theDriver) const
+                Handle(BinMDF_ADriver)&        theDriver)
 {
+  if (!myMap.IsBound (theType)) // try to assign driver for derived type
+  {
+    AddDerivedDriver (theType->Name());
+  }
+
   Standard_Integer anId = 0;
   if (myMap.IsBound(theType)) {
     theDriver = myMap (theType);
@@ -51,7 +56,7 @@ inline Standard_Integer BinMDF_ADriverTable::GetDriver
 //=======================================================================
 
 inline Handle(BinMDF_ADriver) BinMDF_ADriverTable::GetDriver
-                (const Standard_Integer theTypeId) const
+                (const Standard_Integer theTypeId)
 {
   Handle(BinMDF_ADriver) aDriver;
   if (myMapId.IsBound2(theTypeId)) {
diff --git a/src/BinMDF/BinMDF_DerivedDriver.cxx b/src/BinMDF/BinMDF_DerivedDriver.cxx
new file mode 100644 (file)
index 0000000..f2af226
--- /dev/null
@@ -0,0 +1,16 @@
+// Copyright (c) 2020 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#include <BinMDF_DerivedDriver.hxx>
+
+IMPLEMENT_STANDARD_RTTIEXT(BinMDF_DerivedDriver, BinMDF_ADriver)
diff --git a/src/BinMDF/BinMDF_DerivedDriver.hxx b/src/BinMDF/BinMDF_DerivedDriver.hxx
new file mode 100644 (file)
index 0000000..40721c1
--- /dev/null
@@ -0,0 +1,59 @@
+// Copyright (c) 2020 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#ifndef _BinMDF_DerivedDriver_HeaderFile
+#define _BinMDF_DerivedDriver_HeaderFile
+
+#include <BinMDF_ADriver.hxx>
+
+//! A universal driver for the attribute that inherits another attribute with
+//! ready to used persistence mechanism implemented (already has a driver to store/retrieve).
+class BinMDF_DerivedDriver : public BinMDF_ADriver
+{
+  DEFINE_STANDARD_RTTIEXT(BinMDF_DerivedDriver, BinMDF_ADriver)
+public:
+
+  //! Creates a derivative persistence driver for theDerivative attribute by reusage of theBaseDriver
+  //! @param theDerivative an instance of the attribute, just created, detached from any label
+  //! @param theBaseDriver a driver of the base attribute, called by Paste methods
+  BinMDF_DerivedDriver (const Handle(TDF_Attribute)& theDerivative,
+                        const Handle(BinMDF_ADriver)& theBaseDriver)
+  : BinMDF_ADriver(theBaseDriver->MessageDriver()), myDerivative(theDerivative), myBaseDirver(theBaseDriver) {}
+
+  //! Creates a new instance of the derivative attribute
+  virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE { return myDerivative->NewEmpty(); }
+
+  //! Reuses the base driver to read the base fields
+  virtual Standard_Boolean Paste (const BinObjMgt_Persistent& theSource,
+                                  const Handle(TDF_Attribute)& theTarget,
+                                  BinObjMgt_RRelocationTable& theRelocTable) const Standard_OVERRIDE
+  {
+    Standard_Boolean aResult = myBaseDirver->Paste (theSource, theTarget, theRelocTable);
+    theTarget->AfterRetrieval(); // to allow synchronization of the derived attribute with the base content
+    return aResult;
+  }
+
+  //! Reuses the base driver to store the base fields
+  virtual void Paste (const Handle(TDF_Attribute)& theSource,
+                      BinObjMgt_Persistent& theTarget,
+                      BinObjMgt_SRelocationTable& theRelocTable) const Standard_OVERRIDE
+  {
+    myBaseDirver->Paste(theSource, theTarget, theRelocTable);
+  }
+
+protected:
+  Handle(TDF_Attribute)  myDerivative; //!< the derivative attribute that inherits the base
+  Handle(BinMDF_ADriver) myBaseDirver; //!< the base attribute driver to be reused here
+};
+
+#endif
index 345cb19..569e29b 100644 (file)
@@ -15,3 +15,5 @@ BinMDF_TagSourceDriver.cxx
 BinMDF_TagSourceDriver.hxx
 BinMDF_TypeADriverMap.hxx
 BinMDF_TypeIdMap.hxx
+BinMDF_DerivedDriver.cxx
+BinMDF_DerivedDriver.hxx
index a407dd0..0f24acd 100644 (file)
@@ -19,8 +19,6 @@
 #include <BinMDataStd_BooleanArrayDriver.hxx>
 #include <BinMDataStd_BooleanListDriver.hxx>
 #include <BinMDataStd_ByteArrayDriver.hxx>
-#include <BinMDataStd_CommentDriver.hxx>
-#include <BinMDataStd_DirectoryDriver.hxx>
 #include <BinMDataStd_ExpressionDriver.hxx>
 #include <BinMDataStd_ExtStringArrayDriver.hxx>
 #include <BinMDataStd_ExtStringListDriver.hxx>
 #include <BinMDataStd_IntegerListDriver.hxx>
 #include <BinMDataStd_IntPackedMapDriver.hxx>
 #include <BinMDataStd_NamedDataDriver.hxx>
-#include <BinMDataStd_NameDriver.hxx>
-#include <BinMDataStd_NoteBookDriver.hxx>
+#include <BinMDataStd_GenericExtStringDriver.hxx>
 #include <BinMDataStd_RealArrayDriver.hxx>
 #include <BinMDataStd_RealDriver.hxx>
 #include <BinMDataStd_RealListDriver.hxx>
 #include <BinMDataStd_ReferenceArrayDriver.hxx>
 #include <BinMDataStd_ReferenceListDriver.hxx>
-#include <BinMDataStd_RelationDriver.hxx>
-#include <BinMDataStd_TickDriver.hxx>
+#include <BinMDataStd_GenericEmptyDriver.hxx>
 #include <BinMDataStd_TreeNodeDriver.hxx>
 #include <BinMDataStd_UAttributeDriver.hxx>
 #include <BinMDataStd_VariableDriver.hxx>
 void BinMDataStd::AddDrivers (const Handle(BinMDF_ADriverTable)& theDriverTable,
                               const Handle(Message_Messenger)&   theMsgDriver)
 {
-  theDriverTable->AddDriver (new BinMDataStd_CommentDriver     (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_ExpressionDriver  (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_IntegerArrayDriver(theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_IntegerDriver     (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_NameDriver        (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_RealArrayDriver   (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_RealDriver        (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_RelationDriver    (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_TreeNodeDriver    (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_UAttributeDriver  (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_VariableDriver    (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_DirectoryDriver   (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_NoteBookDriver    (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_ExtStringArrayDriver(theMsgDriver) );
-
-  theDriverTable->AddDriver (new BinMDataStd_TickDriver          (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_IntegerListDriver   (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_RealListDriver      (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_ExtStringListDriver (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_BooleanListDriver   (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_ReferenceListDriver (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_BooleanArrayDriver  (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_ReferenceArrayDriver(theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_ByteArrayDriver     (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_NamedDataDriver     (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_AsciiStringDriver   (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataStd_IntPackedMapDriver  (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_ExpressionDriver       (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_IntegerArrayDriver     (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_IntegerDriver          (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_GenericExtStringDriver (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_RealArrayDriver        (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_RealDriver             (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_TreeNodeDriver         (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_UAttributeDriver       (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_VariableDriver         (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_ExtStringArrayDriver   (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_GenericEmptyDriver     (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_IntegerListDriver      (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_RealListDriver         (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_ExtStringListDriver    (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_BooleanListDriver      (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_ReferenceListDriver    (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_BooleanArrayDriver     (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_ReferenceArrayDriver   (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_ByteArrayDriver        (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_NamedDataDriver        (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_AsciiStringDriver      (theMsgDriver) );
+  theDriverTable->AddDriver (new BinMDataStd_IntPackedMapDriver     (theMsgDriver) );
 }
index 64db29a..50864bb 100644 (file)
@@ -68,21 +68,17 @@ private:
 
 
 
-friend class BinMDataStd_NameDriver;
+friend class BinMDataStd_GenericExtStringDriver;
 friend class BinMDataStd_IntegerDriver;
 friend class BinMDataStd_RealDriver;
 friend class BinMDataStd_IntegerArrayDriver;
 friend class BinMDataStd_RealArrayDriver;
 friend class BinMDataStd_UAttributeDriver;
-friend class BinMDataStd_DirectoryDriver;
-friend class BinMDataStd_CommentDriver;
 friend class BinMDataStd_VariableDriver;
 friend class BinMDataStd_ExpressionDriver;
-friend class BinMDataStd_RelationDriver;
-friend class BinMDataStd_NoteBookDriver;
 friend class BinMDataStd_TreeNodeDriver;
 friend class BinMDataStd_ExtStringArrayDriver;
-friend class BinMDataStd_TickDriver;
+friend class BinMDataStd_GenericEmptyDriver;
 friend class BinMDataStd_AsciiStringDriver;
 friend class BinMDataStd_IntPackedMapDriver;
 friend class BinMDataStd_IntegerListDriver;
diff --git a/src/BinMDataStd/BinMDataStd_CommentDriver.cxx b/src/BinMDataStd/BinMDataStd_CommentDriver.cxx
deleted file mode 100644 (file)
index cf3a932..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-// Created on: 2001-08-24
-// Created by: Alexnder GRIGORIEV
-// Copyright (c) 2001-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMDataStd_CommentDriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDataStd_Comment.hxx>
-#include <TDF_Attribute.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMDataStd_CommentDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function : BinMDataStd_CommentDriver
-//purpose  : Constructor
-//=======================================================================
-BinMDataStd_CommentDriver::BinMDataStd_CommentDriver
-                        (const Handle(Message_Messenger)& theMsgDriver)
-      : BinMDF_ADriver (theMsgDriver, NULL)
-{}
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) BinMDataStd_CommentDriver::NewEmpty() const
-{
-  return (new TDataStd_Comment());
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-Standard_Boolean BinMDataStd_CommentDriver::Paste
-                                (const BinObjMgt_Persistent&  theSource,
-                                 const Handle(TDF_Attribute)& theTarget,
-                                 BinObjMgt_RRelocationTable&  ) const
-{
-  TCollection_ExtendedString aString;
-  Standard_Boolean ok = theSource >> aString;
-  if (ok)
-    Handle(TDataStd_Comment)::DownCast(theTarget) -> Set (aString);
-  return ok;
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-void BinMDataStd_CommentDriver::Paste (const Handle(TDF_Attribute)& theSource,
-                                       BinObjMgt_Persistent&        theTarget,
-                                       BinObjMgt_SRelocationTable&  ) const
-{
-  TCollection_ExtendedString aName =
-    Handle(TDataStd_Comment)::DownCast(theSource) -> Get();
-  theTarget << aName;
-}
diff --git a/src/BinMDataStd/BinMDataStd_CommentDriver.hxx b/src/BinMDataStd/BinMDataStd_CommentDriver.hxx
deleted file mode 100644 (file)
index 93fc895..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// Created on: 2001-08-24
-// Created by: Alexander GRIGORIEV
-// Copyright (c) 2001-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMDataStd_CommentDriver_HeaderFile
-#define _BinMDataStd_CommentDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMDataStd_CommentDriver;
-DEFINE_STANDARD_HANDLE(BinMDataStd_CommentDriver, BinMDF_ADriver)
-
-//! Attribute Driver.
-class BinMDataStd_CommentDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMDataStd_CommentDriver(const Handle(Message_Messenger)& theMessageDriver);
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT Standard_Boolean Paste (const BinObjMgt_Persistent& Source, const Handle(TDF_Attribute)& Target, BinObjMgt_RRelocationTable& RelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& Source, BinObjMgt_Persistent& Target, BinObjMgt_SRelocationTable& RelocTable) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(BinMDataStd_CommentDriver,BinMDF_ADriver)
-
-protected:
-
-
-
-
-private:
-
-
-
-
-};
-
-
-
-
-
-
-
-#endif // _BinMDataStd_CommentDriver_HeaderFile
diff --git a/src/BinMDataStd/BinMDataStd_DirectoryDriver.cxx b/src/BinMDataStd/BinMDataStd_DirectoryDriver.cxx
deleted file mode 100644 (file)
index 1ebcb40..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-// Created on: 2004-05-13
-// Created by: Sergey ZARITCHNY
-// Copyright (c) 2004-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMDataStd_DirectoryDriver.hxx>
-#include <BinMDF_ADriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDataStd_Directory.hxx>
-#include <TDF_Attribute.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMDataStd_DirectoryDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function : BinMDataStd_DirectoryDriver
-//purpose  : 
-//=======================================================================
-BinMDataStd_DirectoryDriver::BinMDataStd_DirectoryDriver
-                        (const Handle(Message_Messenger)& theMsgDriver)
-     : BinMDF_ADriver (theMsgDriver, STANDARD_TYPE(TDataStd_Directory)->Name())
-{
-}
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) BinMDataStd_DirectoryDriver::NewEmpty() const
-{
-  return new TDataStd_Directory();
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : persistent -> transient (retrieve)
-//=======================================================================
-
-Standard_Boolean BinMDataStd_DirectoryDriver::Paste
-                                (const BinObjMgt_Persistent&,
-                                 const Handle(TDF_Attribute)&,
-                                 BinObjMgt_RRelocationTable& ) const
-{return Standard_True;}
-
-//=======================================================================
-//function : Paste
-//purpose  : transient -> persistent (store)
-//=======================================================================
-
-void BinMDataStd_DirectoryDriver::Paste (const Handle(TDF_Attribute)&,
-                                       BinObjMgt_Persistent&,
-                                       BinObjMgt_SRelocationTable&  ) const
-{}
-
-
-
diff --git a/src/BinMDataStd/BinMDataStd_DirectoryDriver.hxx b/src/BinMDataStd/BinMDataStd_DirectoryDriver.hxx
deleted file mode 100644 (file)
index c91a36e..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// Created on: 2004-05-13
-// Created by: Sergey ZARITCHNY <szy@opencascade.com>
-// Copyright (c) 2004-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMDataStd_DirectoryDriver_HeaderFile
-#define _BinMDataStd_DirectoryDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMDataStd_DirectoryDriver;
-DEFINE_STANDARD_HANDLE(BinMDataStd_DirectoryDriver, BinMDF_ADriver)
-
-//! Directory attribute Driver.
-class BinMDataStd_DirectoryDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMDataStd_DirectoryDriver(const Handle(Message_Messenger)& theMessageDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& Source, const Handle(TDF_Attribute)& Target, BinObjMgt_RRelocationTable& RelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& Source, BinObjMgt_Persistent& Target, BinObjMgt_SRelocationTable& RelocTable) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(BinMDataStd_DirectoryDriver,BinMDF_ADriver)
-
-protected:
-
-
-
-
-private:
-
-
-
-
-};
-
-
-
-
-
-
-
-#endif // _BinMDataStd_DirectoryDriver_HeaderFile
@@ -1,6 +1,4 @@
-// Created on: 2007-05-29
-// Created by: Vlad Romashko
-// Copyright (c) 2007-2014 OPEN CASCADE SAS
+// Copyright (c) 2020 OPEN CASCADE SAS
 //
 // This file is part of Open CASCADE Technology software library.
 //
 // commercial license or contractual agreement.
 
 
-#include <BinMDataStd_TickDriver.hxx>
+#include <BinMDataStd_GenericEmptyDriver.hxx>
 #include <BinMDF_ADriver.hxx>
 #include <BinObjMgt_Persistent.hxx>
 #include <BinObjMgt_RRelocationTable.hxx>
 #include <BinObjMgt_SRelocationTable.hxx>
 #include <Message_Messenger.hxx>
 #include <Standard_Type.hxx>
-#include <TDataStd_Tick.hxx>
+#include <TDataStd_GenericEmpty.hxx>
 #include <TDF_Attribute.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(BinMDataStd_TickDriver,BinMDF_ADriver)
+IMPLEMENT_STANDARD_RTTIEXT(BinMDataStd_GenericEmptyDriver,BinMDF_ADriver)
 
 //=======================================================================
-//function : BinMDataStd_TickDriver
+//function : BinMDataStd_GenericEmptyDriver
 //purpose  : 
 //=======================================================================
-BinMDataStd_TickDriver::BinMDataStd_TickDriver(const Handle(Message_Messenger)& theMsgDriver)
-: BinMDF_ADriver (theMsgDriver, STANDARD_TYPE(TDataStd_Tick)->Name())
+BinMDataStd_GenericEmptyDriver::BinMDataStd_GenericEmptyDriver(const Handle(Message_Messenger)& theMsgDriver)
+: BinMDF_ADriver (theMsgDriver, STANDARD_TYPE(TDataStd_GenericEmpty)->Name())
+{}
+
+//=======================================================================
+//function : NewEmpty
+//purpose  : 
+//=======================================================================
+Handle(TDF_Attribute) BinMDataStd_GenericEmptyDriver::NewEmpty() const
 {
+  return Handle(TDF_Attribute)(); // this attribute can not be created
 }
 
 //=======================================================================
-//function : NewEmpty
+//function : SourceType
 //purpose  : 
 //=======================================================================
-Handle(TDF_Attribute) BinMDataStd_TickDriver::NewEmpty() const
+const Handle(Standard_Type)& BinMDataStd_GenericEmptyDriver::SourceType() const
 {
-  return new TDataStd_Tick();
+  return Standard_Type::Instance<TDataStd_GenericEmpty>();
 }
 
 //=======================================================================
 //function : Paste
 //purpose  : persistent -> transient (retrieve)
 //=======================================================================
-Standard_Boolean BinMDataStd_TickDriver::Paste(const BinObjMgt_Persistent&,
+Standard_Boolean BinMDataStd_GenericEmptyDriver::Paste(const BinObjMgt_Persistent&,
                                                    const Handle(TDF_Attribute)&,
                                                    BinObjMgt_RRelocationTable& ) const
 {
@@ -59,7 +65,7 @@ Standard_Boolean BinMDataStd_TickDriver::Paste(const BinObjMgt_Persistent&,
 //function : Paste
 //purpose  : transient -> persistent (store)
 //=======================================================================
-void BinMDataStd_TickDriver::Paste(const Handle(TDF_Attribute)&,
+void BinMDataStd_GenericEmptyDriver::Paste(const Handle(TDF_Attribute)&,
                                        BinObjMgt_Persistent&,
                                        BinObjMgt_SRelocationTable&  ) const
 {
@@ -1,6 +1,4 @@
-// Created on: 2004-05-13
-// Created by: Sergey ZARITCHNY <szy@opencascade.com>
-// Copyright (c) 2004-2014 OPEN CASCADE SAS
+// Copyright (c) 2020 OPEN CASCADE SAS
 //
 // This file is part of Open CASCADE Technology software library.
 //
@@ -13,8 +11,8 @@
 // Alternatively, this file may be used under the terms of Open CASCADE
 // commercial license or contractual agreement.
 
-#ifndef _BinMDataXtd_AxisDriver_HeaderFile
-#define _BinMDataXtd_AxisDriver_HeaderFile
+#ifndef _BinMDataStd_GenericEmptyDriver_HeaderFile
+#define _BinMDataStd_GenericEmptyDriver_HeaderFile
 
 #include <Standard.hxx>
 #include <Standard_Type.hxx>
@@ -28,19 +26,21 @@ class TDF_Attribute;
 class BinObjMgt_Persistent;
 
 
-class BinMDataXtd_AxisDriver;
-DEFINE_STANDARD_HANDLE(BinMDataXtd_AxisDriver, BinMDF_ADriver)
+class BinMDataStd_GenericEmptyDriver;
+DEFINE_STANDARD_HANDLE(BinMDataStd_GenericEmptyDriver, BinMDF_ADriver)
 
-//! Axis attribute Driver.
-class BinMDataXtd_AxisDriver : public BinMDF_ADriver
+//! GenericEmpty attribute driver.
+class BinMDataStd_GenericEmptyDriver : public BinMDF_ADriver
 {
 
 public:
 
   
-  Standard_EXPORT BinMDataXtd_AxisDriver(const Handle(Message_Messenger)& theMessageDriver);
+  Standard_EXPORT BinMDataStd_GenericEmptyDriver(const Handle(Message_Messenger)& theMessageDriver);
   
   Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
+
+  Standard_EXPORT virtual const Handle(Standard_Type)& SourceType() const Standard_OVERRIDE;
   
   Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& Source, const Handle(TDF_Attribute)& Target, BinObjMgt_RRelocationTable& RelocTable) const Standard_OVERRIDE;
   
@@ -49,7 +49,7 @@ public:
 
 
 
-  DEFINE_STANDARD_RTTIEXT(BinMDataXtd_AxisDriver,BinMDF_ADriver)
+  DEFINE_STANDARD_RTTIEXT(BinMDataStd_GenericEmptyDriver,BinMDF_ADriver)
 
 protected:
 
@@ -69,4 +69,4 @@ private:
 
 
 
-#endif // _BinMDataXtd_AxisDriver_HeaderFile
+#endif // _BinMDataStd_GenericEmptyDriver_HeaderFile
@@ -1,6 +1,4 @@
-// Created on: 2002-11-19
-// Created by: Edward AGAPOV (eap)
-// Copyright (c) 2002-2014 OPEN CASCADE SAS
+// Copyright (c) 2020 OPEN CASCADE SAS
 //
 // This file is part of Open CASCADE Technology software library.
 //
@@ -14,7 +12,7 @@
 // commercial license or contractual agreement.
 
 
-#include <BinMDataStd_NameDriver.hxx>
+#include <BinMDataStd_GenericExtStringDriver.hxx>
 #include <BinObjMgt_Persistent.hxx>
 #include <Message_Messenger.hxx>
 #include <Standard_Type.hxx>
 #include <TDF_Attribute.hxx>
 #include <BinMDataStd.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(BinMDataStd_NameDriver,BinMDF_ADriver)
+IMPLEMENT_STANDARD_RTTIEXT(BinMDataStd_GenericExtStringDriver,BinMDF_ADriver)
 
 //=======================================================================
-//function : BinMDataStd_NameDriver
+//function : BinMDataStd_GenericExtStringDriver
 //purpose  :
 //=======================================================================
-BinMDataStd_NameDriver::BinMDataStd_NameDriver
+BinMDataStd_GenericExtStringDriver::BinMDataStd_GenericExtStringDriver
                          (const Handle(Message_Messenger)& theMessageDriver)
-     : BinMDF_ADriver (theMessageDriver, STANDARD_TYPE(TDataStd_Name)->Name())
+     : BinMDF_ADriver (theMessageDriver, STANDARD_TYPE(TDataStd_GenericExtString)->Name())
 {
 }
 
@@ -39,39 +37,47 @@ BinMDataStd_NameDriver::BinMDataStd_NameDriver
 //purpose  :
 //=======================================================================
 
-Handle(TDF_Attribute) BinMDataStd_NameDriver::NewEmpty() const
+Handle(TDF_Attribute) BinMDataStd_GenericExtStringDriver::NewEmpty() const
 {
   return new TDataStd_Name;
 }
 
 //=======================================================================
+//function : SourceType
+//purpose  : 
+//=======================================================================
+Handle(Standard_Type)& BinMDataStd_GenericExtStringDriver::SourceType() const
+{
+  static Handle(Standard_Type) aSourceType = Standard_Type::Instance<TDataStd_GenericExtString>();
+  return aSourceType;
+}
+
+//=======================================================================
 //function : Paste
 //purpose  : persistent -> transient (retrieve)
 //=======================================================================
 
-Standard_Boolean BinMDataStd_NameDriver::Paste
+Standard_Boolean BinMDataStd_GenericExtStringDriver::Paste
                          (const BinObjMgt_Persistent&  Source,
                           const Handle(TDF_Attribute)& Target,
                           BinObjMgt_RRelocationTable&  RelocTable) const
 {
-  Handle(TDataStd_Name) aName = Handle(TDataStd_Name)::DownCast(Target);
+  Handle(TDataStd_GenericExtString) aStrAttr = Handle(TDataStd_GenericExtString)::DownCast(Target);
   TCollection_ExtendedString aStr;
   Standard_Boolean ok = Source >> aStr;
   if (ok)
-    aName->Set( aStr );
+    aStrAttr->Set( aStr );
   if(RelocTable.GetHeaderData()->StorageVersion().IntegerValue() > 8) { // process user defined guid
        const Standard_Integer& aPos = Source.Position();
        Standard_GUID aGuid;
        ok = Source >> aGuid;   
        if (!ok) {
          Source.SetPosition(aPos);       
-         aName->SetID(TDataStd_Name::GetID());
          ok = Standard_True;
        } else {          
-         aName->SetID(aGuid);
+    aStrAttr->SetID(aGuid);
        }
-  } else
-       aName->SetID(TDataStd_Name::GetID());
+  }
   return ok;
 }
 
@@ -80,14 +86,13 @@ Standard_Boolean BinMDataStd_NameDriver::Paste
 //purpose  : transient -> persistent (store)
 //=======================================================================
 
-void BinMDataStd_NameDriver::Paste
+void BinMDataStd_GenericExtStringDriver::Paste
                          (const Handle(TDF_Attribute)& Source,
                           BinObjMgt_Persistent&        Target,
                           BinObjMgt_SRelocationTable&  /*RelocTable*/) const
 {
-  Handle(TDataStd_Name) aName = Handle(TDataStd_Name)::DownCast(Source);
-  Target << aName->Get();
+  Handle(TDataStd_GenericExtString) aStrAttr = Handle(TDataStd_GenericExtString)::DownCast(Source);
+  Target << aStrAttr->Get();
   // process user defined guid
-  if(aName->ID() != TDataStd_Name::GetID()) 
-       Target << aName->ID();
+  Target << aStrAttr->ID();
 }
@@ -1,6 +1,4 @@
-// Created on: 2002-11-19
-// Created by: Edward AGAPOV
-// Copyright (c) 2002-2014 OPEN CASCADE SAS
+// Copyright (c) 2020 OPEN CASCADE SAS
 //
 // This file is part of Open CASCADE Technology software library.
 //
@@ -13,8 +11,8 @@
 // Alternatively, this file may be used under the terms of Open CASCADE
 // commercial license or contractual agreement.
 
-#ifndef _BinMDataStd_NameDriver_HeaderFile
-#define _BinMDataStd_NameDriver_HeaderFile
+#ifndef _BinMDataStd_GenericExtStringDriver_HeaderFile
+#define _BinMDataStd_GenericExtStringDriver_HeaderFile
 
 #include <Standard.hxx>
 #include <Standard_Type.hxx>
@@ -28,20 +26,22 @@ class TDF_Attribute;
 class BinObjMgt_Persistent;
 
 
-class BinMDataStd_NameDriver;
-DEFINE_STANDARD_HANDLE(BinMDataStd_NameDriver, BinMDF_ADriver)
+class BinMDataStd_GenericExtStringDriver;
+DEFINE_STANDARD_HANDLE(BinMDataStd_GenericExtStringDriver, BinMDF_ADriver)
 
 //! TDataStd_Name attribute Driver.
-class BinMDataStd_NameDriver : public BinMDF_ADriver
+class BinMDataStd_GenericExtStringDriver : public BinMDF_ADriver
 {
 
 public:
 
   
-  Standard_EXPORT BinMDataStd_NameDriver(const Handle(Message_Messenger)& theMessageDriver);
+  Standard_EXPORT BinMDataStd_GenericExtStringDriver(const Handle(Message_Messenger)& theMessageDriver);
   
   Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
+
+  Standard_EXPORT virtual Handle(Standard_Type)& SourceType() const Standard_OVERRIDE;
+
   //! persistent -> transient (retrieve)
   Standard_EXPORT Standard_Boolean Paste (const BinObjMgt_Persistent& Source, const Handle(TDF_Attribute)& Target, BinObjMgt_RRelocationTable& RelocTable) const Standard_OVERRIDE;
   
@@ -51,7 +51,7 @@ public:
 
 
 
-  DEFINE_STANDARD_RTTIEXT(BinMDataStd_NameDriver,BinMDF_ADriver)
+  DEFINE_STANDARD_RTTIEXT(BinMDataStd_GenericExtStringDriver,BinMDF_ADriver)
 
 protected:
 
@@ -71,4 +71,4 @@ private:
 
 
 
-#endif // _BinMDataStd_NameDriver_HeaderFile
+#endif // _BinMDataStd_GenericExtStringDriver_HeaderFile
index 6ac2571..5325bdf 100644 (file)
@@ -65,7 +65,6 @@ Standard_Boolean BinMDataStd_IntegerDriver::Paste
        ok = theSource >> aGuid;        
        if (!ok) {
          theSource.SetPosition(aPos);    
-         anAtt->SetID(TDataStd_Integer::GetID());
          ok = Standard_True;
        } else {          
          anAtt->SetID(aGuid);
diff --git a/src/BinMDataStd/BinMDataStd_NoteBookDriver.cxx b/src/BinMDataStd/BinMDataStd_NoteBookDriver.cxx
deleted file mode 100644 (file)
index 35c536c..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-// Created on: 2004-05-13
-// Created by: Sergey ZARITCHNY
-// Copyright (c) 2004-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMDataStd_NoteBookDriver.hxx>
-#include <BinMDF_ADriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDataStd_NoteBook.hxx>
-#include <TDF_Attribute.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMDataStd_NoteBookDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function : BinMDataStd_NoteBookDriver
-//purpose  : 
-//=======================================================================
-BinMDataStd_NoteBookDriver::BinMDataStd_NoteBookDriver
-                        (const Handle(Message_Messenger)& theMsgDriver)
-     : BinMDF_ADriver (theMsgDriver, STANDARD_TYPE(TDataStd_NoteBook)->Name())
-{
-}
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) BinMDataStd_NoteBookDriver::NewEmpty() const
-{
-  return new TDataStd_NoteBook();
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : persistent -> transient (retrieve)
-//=======================================================================
-
-Standard_Boolean BinMDataStd_NoteBookDriver::Paste
-                                (const BinObjMgt_Persistent&,
-                                 const Handle(TDF_Attribute)&,
-                                 BinObjMgt_RRelocationTable& ) const
-{return Standard_True;}
-
-//=======================================================================
-//function : Paste
-//purpose  : transient -> persistent (store)
-//=======================================================================
-
-void BinMDataStd_NoteBookDriver::Paste (const Handle(TDF_Attribute)&,
-                                       BinObjMgt_Persistent&,
-                                       BinObjMgt_SRelocationTable&  ) const
-{}
-
-
diff --git a/src/BinMDataStd/BinMDataStd_NoteBookDriver.hxx b/src/BinMDataStd/BinMDataStd_NoteBookDriver.hxx
deleted file mode 100644 (file)
index 11dee1a..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// Created on: 2004-05-13
-// Created by: Sergey ZARITCHNY <szy@opencascade.com>
-// Copyright (c) 2004-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMDataStd_NoteBookDriver_HeaderFile
-#define _BinMDataStd_NoteBookDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMDataStd_NoteBookDriver;
-DEFINE_STANDARD_HANDLE(BinMDataStd_NoteBookDriver, BinMDF_ADriver)
-
-//! NoteBook attribute Driver.
-class BinMDataStd_NoteBookDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMDataStd_NoteBookDriver(const Handle(Message_Messenger)& theMessageDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& Source, const Handle(TDF_Attribute)& Target, BinObjMgt_RRelocationTable& RelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& Source, BinObjMgt_Persistent& Target, BinObjMgt_SRelocationTable& RelocTable) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(BinMDataStd_NoteBookDriver,BinMDF_ADriver)
-
-protected:
-
-
-
-
-private:
-
-
-
-
-};
-
-
-
-
-
-
-
-#endif // _BinMDataStd_NoteBookDriver_HeaderFile
diff --git a/src/BinMDataStd/BinMDataStd_RelationDriver.cxx b/src/BinMDataStd/BinMDataStd_RelationDriver.cxx
deleted file mode 100644 (file)
index 581a073..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-// Created on: 2001-09-12
-// Created by: Julia DOROVSKIKH
-// Copyright (c) 2001-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMDataStd_RelationDriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDataStd_Relation.hxx>
-#include <TDataStd_Variable.hxx>
-#include <TDF_Attribute.hxx>
-#include <TDF_ListIteratorOfAttributeList.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMDataStd_RelationDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function : BinMDataStd_RelationDriver
-//purpose  : Constructor
-//=======================================================================
-BinMDataStd_RelationDriver::BinMDataStd_RelationDriver
-                        (const Handle(Message_Messenger)& theMsgDriver)
-      : BinMDF_ADriver (theMsgDriver, NULL)
-{}
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) BinMDataStd_RelationDriver::NewEmpty() const
-{
-  return (new TDataStd_Relation());
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : persistent -> transient (retrieve)
-//=======================================================================
-Standard_Boolean BinMDataStd_RelationDriver::Paste
-                        (const BinObjMgt_Persistent&  theSource,
-                         const Handle(TDF_Attribute)& theTarget,
-                         BinObjMgt_RRelocationTable&  theRelocTable) const
-{
-  Handle(TDataStd_Relation) aC = 
-    Handle(TDataStd_Relation)::DownCast(theTarget);
-
-  // variables
-  Standard_Integer nbvar;
-  if (! (theSource >> nbvar) || nbvar < 0)
-    return Standard_False;
-  TDF_AttributeList& aList = aC->GetVariables();
-  for (; nbvar > 0; nbvar--)
-  {
-    Handle(TDF_Attribute) aV;
-    Standard_Integer aNb;
-    if (! (theSource >> aNb))
-      return Standard_False;
-    if (aNb > 0)
-    {
-      if (theRelocTable.IsBound(aNb))
-        aV = Handle(TDataStd_Variable)::DownCast(theRelocTable.Find(aNb));
-      else
-      {
-        aV = new TDataStd_Variable;
-        theRelocTable.Bind(aNb, aV);
-      }
-    }
-    aList.Append(aV);
-  }
-
-  // expression
-  TCollection_ExtendedString aString;
-  if (! (theSource >> aString))
-    return Standard_False;
-  aC->SetRelation(aString);
-
-  return Standard_True;
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : transient -> persistent (store)
-//=======================================================================
-void BinMDataStd_RelationDriver::Paste
-                        (const Handle(TDF_Attribute)& theSource,
-                         BinObjMgt_Persistent&        theTarget,
-                         BinObjMgt_SRelocationTable&  theRelocTable) const
-{
-  Handle(TDataStd_Relation) aC =
-    Handle(TDataStd_Relation)::DownCast(theSource);
-
-  // variables
-  const TDF_AttributeList& aList = aC->GetVariables();
-  Standard_Integer nbvar = aList.Extent();
-  theTarget << nbvar;
-  TDF_ListIteratorOfAttributeList it;
-  for (it.Initialize(aList); it.More(); it.Next())
-  {
-    const Handle(TDF_Attribute)& TV = it.Value();
-    Standard_Integer aNb;
-    if (!TV.IsNull())
-      aNb = theRelocTable.Add(TV);
-    else
-      aNb = -1;
-    theTarget << aNb;
-  }
-
-  // expression
-  TCollection_ExtendedString aName = aC->Name();
-  theTarget << aName;
-}
diff --git a/src/BinMDataStd/BinMDataStd_RelationDriver.hxx b/src/BinMDataStd/BinMDataStd_RelationDriver.hxx
deleted file mode 100644 (file)
index eee881e..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// Created on: 2001-09-12
-// Created by: Julia DOROVSKIKH
-// Copyright (c) 2001-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMDataStd_RelationDriver_HeaderFile
-#define _BinMDataStd_RelationDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMDataStd_RelationDriver;
-DEFINE_STANDARD_HANDLE(BinMDataStd_RelationDriver, BinMDF_ADriver)
-
-//! Attribute Driver.
-class BinMDataStd_RelationDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMDataStd_RelationDriver(const Handle(Message_Messenger)& theMessageDriver);
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT Standard_Boolean Paste (const BinObjMgt_Persistent& Source, const Handle(TDF_Attribute)& Target, BinObjMgt_RRelocationTable& RelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& Source, BinObjMgt_Persistent& Target, BinObjMgt_SRelocationTable& RelocTable) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(BinMDataStd_RelationDriver,BinMDF_ADriver)
-
-protected:
-
-
-
-
-private:
-
-
-
-
-};
-
-
-
-
-
-
-
-#endif // _BinMDataStd_RelationDriver_HeaderFile
diff --git a/src/BinMDataStd/BinMDataStd_TickDriver.hxx b/src/BinMDataStd/BinMDataStd_TickDriver.hxx
deleted file mode 100644 (file)
index 430d972..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// Created on: 2007-05-29
-// Created by: Vlad Romashko
-// Copyright (c) 2007-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMDataStd_TickDriver_HeaderFile
-#define _BinMDataStd_TickDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMDataStd_TickDriver;
-DEFINE_STANDARD_HANDLE(BinMDataStd_TickDriver, BinMDF_ADriver)
-
-//! Tick attribute driver.
-class BinMDataStd_TickDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMDataStd_TickDriver(const Handle(Message_Messenger)& theMessageDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& Source, const Handle(TDF_Attribute)& Target, BinObjMgt_RRelocationTable& RelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& Source, BinObjMgt_Persistent& Target, BinObjMgt_SRelocationTable& RelocTable) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(BinMDataStd_TickDriver,BinMDF_ADriver)
-
-protected:
-
-
-
-
-private:
-
-
-
-
-};
-
-
-
-
-
-
-
-#endif // _BinMDataStd_TickDriver_HeaderFile
index 49f0d5d..35832ae 100644 (file)
@@ -8,10 +8,6 @@ BinMDataStd_BooleanListDriver.cxx
 BinMDataStd_BooleanListDriver.hxx
 BinMDataStd_ByteArrayDriver.cxx
 BinMDataStd_ByteArrayDriver.hxx
-BinMDataStd_CommentDriver.cxx
-BinMDataStd_CommentDriver.hxx
-BinMDataStd_DirectoryDriver.cxx
-BinMDataStd_DirectoryDriver.hxx
 BinMDataStd_ExpressionDriver.cxx
 BinMDataStd_ExpressionDriver.hxx
 BinMDataStd_ExtStringArrayDriver.cxx
@@ -28,10 +24,8 @@ BinMDataStd_IntPackedMapDriver.cxx
 BinMDataStd_IntPackedMapDriver.hxx
 BinMDataStd_NamedDataDriver.cxx
 BinMDataStd_NamedDataDriver.hxx
-BinMDataStd_NameDriver.cxx
-BinMDataStd_NameDriver.hxx
-BinMDataStd_NoteBookDriver.cxx
-BinMDataStd_NoteBookDriver.hxx
+BinMDataStd_GenericExtStringDriver.cxx
+BinMDataStd_GenericExtStringDriver.hxx
 BinMDataStd_RealArrayDriver.cxx
 BinMDataStd_RealArrayDriver.hxx
 BinMDataStd_RealDriver.cxx
@@ -42,10 +36,8 @@ BinMDataStd_ReferenceArrayDriver.cxx
 BinMDataStd_ReferenceArrayDriver.hxx
 BinMDataStd_ReferenceListDriver.cxx
 BinMDataStd_ReferenceListDriver.hxx
-BinMDataStd_RelationDriver.cxx
-BinMDataStd_RelationDriver.hxx
-BinMDataStd_TickDriver.cxx
-BinMDataStd_TickDriver.hxx
+BinMDataStd_GenericEmptyDriver.cxx
+BinMDataStd_GenericEmptyDriver.hxx
 BinMDataStd_TreeNodeDriver.cxx
 BinMDataStd_TreeNodeDriver.hxx
 BinMDataStd_UAttributeDriver.cxx
index 7b967f7..564dbf8 100644 (file)
 // modified   13.04.2009 Sergey Zaritchny
 
 #include <BinMDataXtd.hxx>
-#include <BinMDataXtd_AxisDriver.hxx>
 #include <BinMDataXtd_ConstraintDriver.hxx>
 #include <BinMDataXtd_GeometryDriver.hxx>
 #include <BinMDataXtd_PatternStdDriver.hxx>
-#include <BinMDataXtd_PlacementDriver.hxx>
-#include <BinMDataXtd_PlaneDriver.hxx>
-#include <BinMDataXtd_PointDriver.hxx>
-#include <BinMDataXtd_ShapeDriver.hxx>
 #include <BinMDF_ADriverTable.hxx>
 #include <Message_Messenger.hxx>
 #include <BinMDataXtd_PresentationDriver.hxx>
@@ -42,11 +37,6 @@ void BinMDataXtd::AddDrivers (const Handle(BinMDF_ADriverTable)& theDriverTable,
   theDriverTable->AddDriver (new BinMDataXtd_ConstraintDriver   (theMsgDriver) );
   theDriverTable->AddDriver (new BinMDataXtd_GeometryDriver     (theMsgDriver) );
   theDriverTable->AddDriver (new BinMDataXtd_PatternStdDriver   (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataXtd_ShapeDriver        (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataXtd_PointDriver        (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataXtd_AxisDriver         (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataXtd_PlaneDriver        (theMsgDriver) );
-  theDriverTable->AddDriver (new BinMDataXtd_PlacementDriver    (theMsgDriver) );
   theDriverTable->AddDriver (new BinMDataXtd_TriangulationDriver(theMsgDriver) );
 
   theDriverTable->AddDriver (new BinMDataXtd_PresentationDriver (theMsgDriver) );
index a4f1ac8..d2cb914 100644 (file)
 #include <Standard_Integer.hxx>
 class BinMDF_ADriverTable;
 class Message_Messenger;
-class BinMDataXtd_PointDriver;
-class BinMDataXtd_AxisDriver;
-class BinMDataXtd_PlaneDriver;
 class BinMDataXtd_GeometryDriver;
 class BinMDataXtd_ConstraintDriver;
-class BinMDataXtd_PlacementDriver;
 class BinMDataXtd_PatternStdDriver;
-class BinMDataXtd_ShapeDriver;
 class BinMDataXtd_TriangulationDriver;
 
 //! Storage and Retrieval drivers for modelling attributes.
@@ -62,14 +57,9 @@ private:
 
 
 
-friend class BinMDataXtd_PointDriver;
-friend class BinMDataXtd_AxisDriver;
-friend class BinMDataXtd_PlaneDriver;
 friend class BinMDataXtd_GeometryDriver;
 friend class BinMDataXtd_ConstraintDriver;
-friend class BinMDataXtd_PlacementDriver;
 friend class BinMDataXtd_PatternStdDriver;
-friend class BinMDataXtd_ShapeDriver;
 friend class BinMDataXtd_TriangulationDriver;
 
 };
diff --git a/src/BinMDataXtd/BinMDataXtd_AxisDriver.cxx b/src/BinMDataXtd/BinMDataXtd_AxisDriver.cxx
deleted file mode 100644 (file)
index 149d3c8..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-// Created on: 2004-05-13
-// Created by: Sergey ZARITCHNY
-// Copyright (c) 2004-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMDataXtd_AxisDriver.hxx>
-#include <BinMDF_ADriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDataXtd_Axis.hxx>
-#include <TDF_Attribute.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMDataXtd_AxisDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function : BinMDataXtd_AxisDriver
-//purpose  : 
-//=======================================================================
-BinMDataXtd_AxisDriver::BinMDataXtd_AxisDriver
-                        (const Handle(Message_Messenger)& theMsgDriver)
-     : BinMDF_ADriver (theMsgDriver, STANDARD_TYPE(TDataXtd_Axis)->Name())
-{
-}
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) BinMDataXtd_AxisDriver::NewEmpty() const
-{
-  return new TDataXtd_Axis();
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : persistent -> transient (retrieve)
-//=======================================================================
-
-Standard_Boolean BinMDataXtd_AxisDriver::Paste
-                                (const BinObjMgt_Persistent&,
-                                 const Handle(TDF_Attribute)&,
-                                 BinObjMgt_RRelocationTable& ) const
-{return Standard_True;}
-
-//=======================================================================
-//function : Paste
-//purpose  : transient -> persistent (store)
-//=======================================================================
-
-void BinMDataXtd_AxisDriver::Paste (const Handle(TDF_Attribute)&,
-                                       BinObjMgt_Persistent&,
-                                       BinObjMgt_SRelocationTable&  ) const
-{}
-
diff --git a/src/BinMDataXtd/BinMDataXtd_PlacementDriver.cxx b/src/BinMDataXtd/BinMDataXtd_PlacementDriver.cxx
deleted file mode 100644 (file)
index 51ff6b3..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-// Created on: 2004-05-13
-// Created by: Sergey ZARITCHNY
-// Copyright (c) 2004-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMDataXtd_PlacementDriver.hxx>
-#include <BinMDF_ADriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDataXtd_Placement.hxx>
-#include <TDF_Attribute.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMDataXtd_PlacementDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function : BinMDataXtd_PlacementDriver
-//purpose  : 
-//=======================================================================
-BinMDataXtd_PlacementDriver::BinMDataXtd_PlacementDriver
-                        (const Handle(Message_Messenger)& theMsgDriver)
-     : BinMDF_ADriver (theMsgDriver, STANDARD_TYPE(TDataXtd_Placement)->Name())
-{
-}
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) BinMDataXtd_PlacementDriver::NewEmpty() const
-{
-  return new TDataXtd_Placement();
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : persistent -> transient (retrieve)
-//=======================================================================
-
-Standard_Boolean BinMDataXtd_PlacementDriver::Paste
-                                (const BinObjMgt_Persistent&,
-                                 const Handle(TDF_Attribute)&,
-                                 BinObjMgt_RRelocationTable& ) const
-{return Standard_True;}
-
-//=======================================================================
-//function : Paste
-//purpose  : transient -> persistent (store)
-//=======================================================================
-
-void BinMDataXtd_PlacementDriver::Paste (const Handle(TDF_Attribute)&,
-                                       BinObjMgt_Persistent&,
-                                       BinObjMgt_SRelocationTable&  ) const
-{}
-
-
diff --git a/src/BinMDataXtd/BinMDataXtd_PlacementDriver.hxx b/src/BinMDataXtd/BinMDataXtd_PlacementDriver.hxx
deleted file mode 100644 (file)
index 8378a0f..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// Created on: 2004-05-13
-// Created by: Sergey ZARITCHNY <szy@opencascade.com>
-// Copyright (c) 2004-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMDataXtd_PlacementDriver_HeaderFile
-#define _BinMDataXtd_PlacementDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMDataXtd_PlacementDriver;
-DEFINE_STANDARD_HANDLE(BinMDataXtd_PlacementDriver, BinMDF_ADriver)
-
-//! Placement attribute Driver.
-class BinMDataXtd_PlacementDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMDataXtd_PlacementDriver(const Handle(Message_Messenger)& theMessageDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& Source, const Handle(TDF_Attribute)& Target, BinObjMgt_RRelocationTable& RelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& Source, BinObjMgt_Persistent& Target, BinObjMgt_SRelocationTable& RelocTable) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(BinMDataXtd_PlacementDriver,BinMDF_ADriver)
-
-protected:
-
-
-
-
-private:
-
-
-
-
-};
-
-
-
-
-
-
-
-#endif // _BinMDataXtd_PlacementDriver_HeaderFile
diff --git a/src/BinMDataXtd/BinMDataXtd_PlaneDriver.cxx b/src/BinMDataXtd/BinMDataXtd_PlaneDriver.cxx
deleted file mode 100644 (file)
index 75beee8..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-// Created on: 2004-05-13
-// Created by: Sergey ZARITCHNY
-// Copyright (c) 2004-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMDataXtd_PlaneDriver.hxx>
-#include <BinMDF_ADriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDataXtd_Plane.hxx>
-#include <TDF_Attribute.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMDataXtd_PlaneDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function : BinMDataXtd_PlaneDriver
-//purpose  : 
-//=======================================================================
-BinMDataXtd_PlaneDriver::BinMDataXtd_PlaneDriver
-                        (const Handle(Message_Messenger)& theMsgDriver)
-     : BinMDF_ADriver (theMsgDriver, STANDARD_TYPE(TDataXtd_Plane)->Name())
-{
-}
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) BinMDataXtd_PlaneDriver::NewEmpty() const
-{
-  return new TDataXtd_Plane();
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : persistent -> transient (retrieve)
-//=======================================================================
-
-Standard_Boolean BinMDataXtd_PlaneDriver::Paste
-                                (const BinObjMgt_Persistent&,
-                                 const Handle(TDF_Attribute)&,
-                                 BinObjMgt_RRelocationTable& ) const
-{return Standard_True;}
-
-//=======================================================================
-//function : Paste
-//purpose  : transient -> persistent (store)
-//=======================================================================
-
-void BinMDataXtd_PlaneDriver::Paste (const Handle(TDF_Attribute)&,
-                                       BinObjMgt_Persistent&,
-                                       BinObjMgt_SRelocationTable&  ) const
-{}
-
diff --git a/src/BinMDataXtd/BinMDataXtd_PlaneDriver.hxx b/src/BinMDataXtd/BinMDataXtd_PlaneDriver.hxx
deleted file mode 100644 (file)
index 19b6fb4..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// Created on: 2004-05-13
-// Created by: Sergey ZARITCHNY <szy@opencascade.com>
-// Copyright (c) 2004-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMDataXtd_PlaneDriver_HeaderFile
-#define _BinMDataXtd_PlaneDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMDataXtd_PlaneDriver;
-DEFINE_STANDARD_HANDLE(BinMDataXtd_PlaneDriver, BinMDF_ADriver)
-
-//! Plane attribute Driver.
-class BinMDataXtd_PlaneDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMDataXtd_PlaneDriver(const Handle(Message_Messenger)& theMessageDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& Source, const Handle(TDF_Attribute)& Target, BinObjMgt_RRelocationTable& RelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& Source, BinObjMgt_Persistent& Target, BinObjMgt_SRelocationTable& RelocTable) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(BinMDataXtd_PlaneDriver,BinMDF_ADriver)
-
-protected:
-
-
-
-
-private:
-
-
-
-
-};
-
-
-
-
-
-
-
-#endif // _BinMDataXtd_PlaneDriver_HeaderFile
diff --git a/src/BinMDataXtd/BinMDataXtd_PointDriver.cxx b/src/BinMDataXtd/BinMDataXtd_PointDriver.cxx
deleted file mode 100644 (file)
index 8371af9..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-// Created on: 2004-05-13
-// Created by: Sergey ZARITCHNY
-// Copyright (c) 2004-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMDataXtd_PointDriver.hxx>
-#include <BinMDF_ADriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDataXtd_Point.hxx>
-#include <TDF_Attribute.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMDataXtd_PointDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function : BinMDataXtd_PointDriver
-//purpose  : 
-//=======================================================================
-BinMDataXtd_PointDriver::BinMDataXtd_PointDriver
-                        (const Handle(Message_Messenger)& theMsgDriver)
-     : BinMDF_ADriver (theMsgDriver, STANDARD_TYPE(TDataXtd_Point)->Name())
-{
-}
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) BinMDataXtd_PointDriver::NewEmpty() const
-{
-  return new TDataXtd_Point();
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : persistent -> transient (retrieve)
-//=======================================================================
-
-Standard_Boolean BinMDataXtd_PointDriver::Paste
-                                (const BinObjMgt_Persistent&,
-                                 const Handle(TDF_Attribute)&,
-                                 BinObjMgt_RRelocationTable& ) const
-{return Standard_True;}
-
-//=======================================================================
-//function : Paste
-//purpose  : transient -> persistent (store)
-//=======================================================================
-
-void BinMDataXtd_PointDriver::Paste (const Handle(TDF_Attribute)&,
-                                       BinObjMgt_Persistent&,
-                                       BinObjMgt_SRelocationTable&  ) const
-{}
-
-
diff --git a/src/BinMDataXtd/BinMDataXtd_PointDriver.hxx b/src/BinMDataXtd/BinMDataXtd_PointDriver.hxx
deleted file mode 100644 (file)
index 4c8ddad..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// Created on: 2004-05-13
-// Created by: Sergey ZARITCHNY <szy@opencascade.com>
-// Copyright (c) 2004-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMDataXtd_PointDriver_HeaderFile
-#define _BinMDataXtd_PointDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMDataXtd_PointDriver;
-DEFINE_STANDARD_HANDLE(BinMDataXtd_PointDriver, BinMDF_ADriver)
-
-//! Point attribute Driver.
-class BinMDataXtd_PointDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMDataXtd_PointDriver(const Handle(Message_Messenger)& theMessageDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& Source, const Handle(TDF_Attribute)& Target, BinObjMgt_RRelocationTable& RelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& Source, BinObjMgt_Persistent& Target, BinObjMgt_SRelocationTable& RelocTable) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(BinMDataXtd_PointDriver,BinMDF_ADriver)
-
-protected:
-
-
-
-
-private:
-
-
-
-
-};
-
-
-
-
-
-
-
-#endif // _BinMDataXtd_PointDriver_HeaderFile
diff --git a/src/BinMDataXtd/BinMDataXtd_ShapeDriver.cxx b/src/BinMDataXtd/BinMDataXtd_ShapeDriver.cxx
deleted file mode 100644 (file)
index 5696019..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-// Created on: 2004-05-13
-// Created by: Sergey ZARITCHNY
-// Copyright (c) 2004-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMDataXtd_ShapeDriver.hxx>
-#include <BinMDF_ADriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDataXtd_Shape.hxx>
-#include <TDF_Attribute.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMDataXtd_ShapeDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function : BinMDataXtd_ShapeDriver
-//purpose  : 
-//=======================================================================
-BinMDataXtd_ShapeDriver::BinMDataXtd_ShapeDriver
-                        (const Handle(Message_Messenger)& theMsgDriver)
-     : BinMDF_ADriver (theMsgDriver, STANDARD_TYPE(TDataXtd_Shape)->Name())
-{
-}
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) BinMDataXtd_ShapeDriver::NewEmpty() const
-{
-  return new TDataXtd_Shape();
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : persistent -> transient (retrieve)
-//=======================================================================
-
-Standard_Boolean BinMDataXtd_ShapeDriver::Paste
-                                (const BinObjMgt_Persistent&,
-                                 const Handle(TDF_Attribute)&,
-                                 BinObjMgt_RRelocationTable& ) const
-{return Standard_True;}
-
-//=======================================================================
-//function : Paste
-//purpose  : transient -> persistent (store)
-//=======================================================================
-
-void BinMDataXtd_ShapeDriver::Paste (const Handle(TDF_Attribute)&,
-                                       BinObjMgt_Persistent&,
-                                       BinObjMgt_SRelocationTable&  ) const
-{}
diff --git a/src/BinMDataXtd/BinMDataXtd_ShapeDriver.hxx b/src/BinMDataXtd/BinMDataXtd_ShapeDriver.hxx
deleted file mode 100644 (file)
index cb8b06e..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// Created on: 2004-05-13
-// Created by: Sergey ZARITCHNY <szy@opencascade.com>
-// Copyright (c) 2004-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMDataXtd_ShapeDriver_HeaderFile
-#define _BinMDataXtd_ShapeDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMDataXtd_ShapeDriver;
-DEFINE_STANDARD_HANDLE(BinMDataXtd_ShapeDriver, BinMDF_ADriver)
-
-//! Shape attribute Driver.
-class BinMDataXtd_ShapeDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMDataXtd_ShapeDriver(const Handle(Message_Messenger)& theMessageDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& Source, const Handle(TDF_Attribute)& Target, BinObjMgt_RRelocationTable& RelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& Source, BinObjMgt_Persistent& Target, BinObjMgt_SRelocationTable& RelocTable) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(BinMDataXtd_ShapeDriver,BinMDF_ADriver)
-
-protected:
-
-
-
-
-private:
-
-
-
-
-};
-
-
-
-
-
-
-
-#endif // _BinMDataXtd_ShapeDriver_HeaderFile
index a66405e..fb15e59 100644 (file)
@@ -1,21 +1,11 @@
 BinMDataXtd.cxx
 BinMDataXtd.hxx
-BinMDataXtd_AxisDriver.cxx
-BinMDataXtd_AxisDriver.hxx
 BinMDataXtd_ConstraintDriver.cxx
 BinMDataXtd_ConstraintDriver.hxx
 BinMDataXtd_GeometryDriver.cxx
 BinMDataXtd_GeometryDriver.hxx
 BinMDataXtd_PatternStdDriver.cxx
 BinMDataXtd_PatternStdDriver.hxx
-BinMDataXtd_PlacementDriver.cxx
-BinMDataXtd_PlacementDriver.hxx
-BinMDataXtd_PlaneDriver.cxx
-BinMDataXtd_PlaneDriver.hxx
-BinMDataXtd_PointDriver.cxx
-BinMDataXtd_PointDriver.hxx
-BinMDataXtd_ShapeDriver.cxx
-BinMDataXtd_ShapeDriver.hxx
 BinMDataXtd_PresentationDriver.hxx
 BinMDataXtd_PresentationDriver.cxx
 BinMDataXtd_PositionDriver.hxx
index 930ccd6..b458ebe 100644 (file)
 #include <BinMNaming_NamedShapeDriver.hxx>
 #include <BinMXCAFDoc.hxx>
 #include <BinMXCAFDoc_AssemblyItemRefDriver.hxx>
-#include <BinMXCAFDoc_AreaDriver.hxx>
 #include <BinMXCAFDoc_CentroidDriver.hxx>
 #include <BinMXCAFDoc_ColorDriver.hxx>
-#include <BinMXCAFDoc_ColorToolDriver.hxx>
 #include <BinMXCAFDoc_DatumDriver.hxx>
-#include <BinMXCAFDoc_GeomToleranceDriver.hxx>
-#include <BinMXCAFDoc_DimensionDriver.hxx>
 #include <BinMXCAFDoc_DimTolDriver.hxx>
-#include <BinMXCAFDoc_DimTolToolDriver.hxx>
-#include <BinMXCAFDoc_DocumentToolDriver.hxx>
 #include <BinMXCAFDoc_GraphNodeDriver.hxx>
-#include <BinMXCAFDoc_LayerToolDriver.hxx>
 #include <BinMXCAFDoc_LocationDriver.hxx>
 #include <BinMXCAFDoc_MaterialDriver.hxx>
-#include <BinMXCAFDoc_MaterialToolDriver.hxx>
 #include <BinMXCAFDoc_NoteDriver.hxx>
-#include <BinMXCAFDoc_NoteBalloonDriver.hxx>
 #include <BinMXCAFDoc_NoteBinDataDriver.hxx>
 #include <BinMXCAFDoc_NoteCommentDriver.hxx>
-#include <BinMXCAFDoc_NotesToolDriver.hxx>
-#include <BinMXCAFDoc_ShapeToolDriver.hxx>
-#include <BinMXCAFDoc_ViewDriver.hxx>
-#include <BinMXCAFDoc_ViewToolDriver.hxx>
 #include <BinMXCAFDoc_VisMaterialDriver.hxx>
 #include <BinMXCAFDoc_VisMaterialToolDriver.hxx>
-#include <BinMXCAFDoc_VolumeDriver.hxx>
 #include <Message_Messenger.hxx>
 #include <TNaming_NamedShape.hxx>
 
@@ -54,7 +40,6 @@
 void BinMXCAFDoc::AddDrivers(const Handle(BinMDF_ADriverTable)& theDriverTable,
                              const Handle(Message_Messenger)&   theMsgDrv) 
 {
-  theDriverTable->AddDriver( new BinMXCAFDoc_AreaDriver     (theMsgDrv));
   theDriverTable->AddDriver( new BinMXCAFDoc_CentroidDriver (theMsgDrv));
   theDriverTable->AddDriver( new BinMXCAFDoc_ColorDriver    (theMsgDrv));
   theDriverTable->AddDriver( new BinMXCAFDoc_GraphNodeDriver(theMsgDrv));
@@ -73,25 +58,11 @@ void BinMXCAFDoc::AddDrivers(const Handle(BinMDF_ADriverTable)& theDriverTable,
   
   theDriverTable->AddDriver( aLocationDriver);
   theDriverTable->AddDriver( new BinMXCAFDoc_AssemblyItemRefDriver(theMsgDrv));
-  theDriverTable->AddDriver( new BinMXCAFDoc_VolumeDriver      (theMsgDrv));
   theDriverTable->AddDriver( new BinMXCAFDoc_DatumDriver       (theMsgDrv));
-  theDriverTable->AddDriver( new BinMXCAFDoc_GeomToleranceDriver (theMsgDrv));
-  theDriverTable->AddDriver( new BinMXCAFDoc_DimensionDriver   (theMsgDrv));
   theDriverTable->AddDriver( new BinMXCAFDoc_DimTolDriver      (theMsgDrv));
   theDriverTable->AddDriver( new BinMXCAFDoc_MaterialDriver    (theMsgDrv));
   theDriverTable->AddDriver( new BinMXCAFDoc_VisMaterialDriver (theMsgDrv));
-  theDriverTable->AddDriver( new BinMXCAFDoc_NoteBalloonDriver (theMsgDrv));
   theDriverTable->AddDriver( new BinMXCAFDoc_NoteBinDataDriver (theMsgDrv));
   theDriverTable->AddDriver( new BinMXCAFDoc_NoteCommentDriver (theMsgDrv));
-  theDriverTable->AddDriver( new BinMXCAFDoc_ViewDriver        (theMsgDrv));
-
-  theDriverTable->AddDriver( new BinMXCAFDoc_ColorToolDriver   (theMsgDrv));
-  theDriverTable->AddDriver( new BinMXCAFDoc_DocumentToolDriver(theMsgDrv));
-  theDriverTable->AddDriver( new BinMXCAFDoc_LayerToolDriver   (theMsgDrv));
-  theDriverTable->AddDriver( new BinMXCAFDoc_ShapeToolDriver   (theMsgDrv));
-  theDriverTable->AddDriver( new BinMXCAFDoc_DimTolToolDriver  (theMsgDrv));
-  theDriverTable->AddDriver( new BinMXCAFDoc_MaterialToolDriver(theMsgDrv));
   theDriverTable->AddDriver( new BinMXCAFDoc_VisMaterialToolDriver(theMsgDrv));
-  theDriverTable->AddDriver( new BinMXCAFDoc_NotesToolDriver   (theMsgDrv));
-  theDriverTable->AddDriver( new BinMXCAFDoc_ViewToolDriver    (theMsgDrv));
 }
index bfd6213..503c243 100644 (file)
 
 class BinMDF_ADriverTable;
 class Message_Messenger;
-class BinMXCAFDoc_AreaDriver;
 class BinMXCAFDoc_CentroidDriver;
-class BinMXCAFDoc_ClippingPlaneToolDriver;
 class BinMXCAFDoc_ColorDriver;
 class BinMXCAFDoc_GraphNodeDriver;
 class BinMXCAFDoc_LocationDriver;
-class BinMXCAFDoc_VolumeDriver;
 class BinMXCAFDoc_DatumDriver;
-class BinMXCAFDoc_GeomToleranceDriver;
-class BinMXCAFDoc_DimensionDriver;
 class BinMXCAFDoc_DimTolDriver;
 class BinMXCAFDoc_MaterialDriver;
-class BinMXCAFDoc_ColorToolDriver;
-class BinMXCAFDoc_DocumentToolDriver;
-class BinMXCAFDoc_LayerToolDriver;
-class BinMXCAFDoc_ShapeToolDriver;
-class BinMXCAFDoc_DimTolToolDriver;
-class BinMXCAFDoc_MaterialToolDriver;
-class BinMXCAFDoc_ViewDriver;
-class BinMXCAFDoc_ViewToolDriver;
 
 
 
@@ -69,26 +56,13 @@ private:
 
 
 
-friend class BinMXCAFDoc_AreaDriver;
 friend class BinMXCAFDoc_CentroidDriver;
-friend class BinMXCAFDoc_ClippingPlaneToolDriver;
 friend class BinMXCAFDoc_ColorDriver;
 friend class BinMXCAFDoc_GraphNodeDriver;
 friend class BinMXCAFDoc_LocationDriver;
-friend class BinMXCAFDoc_VolumeDriver;
 friend class BinMXCAFDoc_DatumDriver;
-friend class BinMXCAFDoc_GeomToleranceDriver;
-friend class BinMXCAFDoc_DimensionDriver;
 friend class BinMXCAFDoc_DimTolDriver;
 friend class BinMXCAFDoc_MaterialDriver;
-friend class BinMXCAFDoc_ColorToolDriver;
-friend class BinMXCAFDoc_DocumentToolDriver;
-friend class BinMXCAFDoc_LayerToolDriver;
-friend class BinMXCAFDoc_ShapeToolDriver;
-friend class BinMXCAFDoc_DimTolToolDriver;
-friend class BinMXCAFDoc_MaterialToolDriver;
-friend class BinMXCAFDoc_ViewDriver;
-friend class BinMXCAFDoc_ViewToolDriver;
 
 };
 
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_AreaDriver.cxx b/src/BinMXCAFDoc/BinMXCAFDoc_AreaDriver.cxx
deleted file mode 100644 (file)
index bbb29fe..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-// Created on: 2005-05-17
-// Created by: Eugeny NAPALKOV
-// Copyright (c) 2005-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMXCAFDoc_AreaDriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDF_Attribute.hxx>
-#include <XCAFDoc_Area.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMXCAFDoc_AreaDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-BinMXCAFDoc_AreaDriver::BinMXCAFDoc_AreaDriver(const Handle(Message_Messenger)& theMsgDriver) 
-     : BinMDF_ADriver(theMsgDriver, STANDARD_TYPE(XCAFDoc_Area)->Name()) {
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) BinMXCAFDoc_AreaDriver::NewEmpty() const {
-  return new XCAFDoc_Area();
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-Standard_Boolean BinMXCAFDoc_AreaDriver::Paste(const BinObjMgt_Persistent& theSource,
-                                              const Handle(TDF_Attribute)& theTarget,
-                                              BinObjMgt_RRelocationTable& ) const 
-{
-  Handle(XCAFDoc_Area) anAtt = Handle(XCAFDoc_Area)::DownCast(theTarget);
-  Standard_Real aValue;
-  Standard_Boolean isOk = theSource >> aValue;
-  if(isOk)
-    anAtt->Set(aValue);
-  return isOk;
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-void BinMXCAFDoc_AreaDriver::Paste(const Handle(TDF_Attribute)& theSource,
-                                  BinObjMgt_Persistent& theTarget,
-                                  BinObjMgt_SRelocationTable& ) const 
-{
-  Handle(XCAFDoc_Area) anAtt = Handle(XCAFDoc_Area)::DownCast(theSource);
-  theTarget << anAtt->Get();
-}
-
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_AreaDriver.hxx b/src/BinMXCAFDoc/BinMXCAFDoc_AreaDriver.hxx
deleted file mode 100644 (file)
index 4e2e2e1..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// Created on: 2005-05-17
-// Created by: Eugeny NAPALKOV <eugeny.napalkov@opencascade.com>
-// Copyright (c) 2005-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMXCAFDoc_AreaDriver_HeaderFile
-#define _BinMXCAFDoc_AreaDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMXCAFDoc_AreaDriver;
-DEFINE_STANDARD_HANDLE(BinMXCAFDoc_AreaDriver, BinMDF_ADriver)
-
-
-class BinMXCAFDoc_AreaDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMXCAFDoc_AreaDriver(const Handle(Message_Messenger)& theMsgDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& theSource, const Handle(TDF_Attribute)& theTarget, BinObjMgt_RRelocationTable& theRelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& theSource, BinObjMgt_Persistent& theTarget, BinObjMgt_SRelocationTable& theRelocTable) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(BinMXCAFDoc_AreaDriver,BinMDF_ADriver)
-
-protected:
-
-
-
-
-private:
-
-
-
-
-};
-
-
-
-
-
-
-
-#endif // _BinMXCAFDoc_AreaDriver_HeaderFile
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_ClippingPlaneToolDriver.cxx b/src/BinMXCAFDoc/BinMXCAFDoc_ClippingPlaneToolDriver.cxx
deleted file mode 100644 (file)
index 9727b5c..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-// Created on: 2016-11-30
-// Created by: Irina KRYLOVA
-// Copyright (c) 2016 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMXCAFDoc_ClippingPlaneToolDriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDF_Attribute.hxx>
-#include <XCAFDoc_ClippingPlaneTool.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMXCAFDoc_ClippingPlaneToolDriver, BinMDF_ADriver)
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-BinMXCAFDoc_ClippingPlaneToolDriver::BinMXCAFDoc_ClippingPlaneToolDriver
-  (const Handle(Message_Messenger)& theMsgDriver)
-  : BinMDF_ADriver(theMsgDriver, STANDARD_TYPE(XCAFDoc_ClippingPlaneTool)->Name())
-{
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) BinMXCAFDoc_ClippingPlaneToolDriver::NewEmpty() const
-{
-  return new XCAFDoc_ClippingPlaneTool();
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-Standard_Boolean BinMXCAFDoc_ClippingPlaneToolDriver::Paste
-  (const BinObjMgt_Persistent& /*theSource*/,
-  const Handle(TDF_Attribute)& /*theTarget*/,
-  BinObjMgt_RRelocationTable& /*theRelocTable*/) const
-{
-  return Standard_True;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void BinMXCAFDoc_ClippingPlaneToolDriver::Paste
-  (const Handle(TDF_Attribute)& /*theSource*/,
-   BinObjMgt_Persistent& /*theTarget*/,
-   BinObjMgt_SRelocationTable& /*theRelocTable*/) const {
-}
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_ClippingPlaneToolDriver.hxx b/src/BinMXCAFDoc/BinMXCAFDoc_ClippingPlaneToolDriver.hxx
deleted file mode 100644 (file)
index 2eaf230..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-// Created on: 2016-11-30
-// Created by: Irina KRYLOVA
-// Copyright (c) 2016 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMXCAFDoc_ClippingPlaneToolDriver_HeaderFile
-#define _BinMXCAFDoc_ClippingPlaneToolDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMXCAFDoc_ClippingPlaneToolDriver;
-DEFINE_STANDARD_HANDLE(BinMXCAFDoc_ClippingPlaneToolDriver, BinMDF_ADriver)
-
-
-class BinMXCAFDoc_ClippingPlaneToolDriver : public BinMDF_ADriver
-{
-public:
-
-  Standard_EXPORT BinMXCAFDoc_ClippingPlaneToolDriver(const Handle(Message_Messenger)& theMsgDriver);
-
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-
-  Standard_EXPORT virtual Standard_Boolean Paste(const BinObjMgt_Persistent& theSource, const Handle(TDF_Attribute)& theTarget, BinObjMgt_RRelocationTable& theRelocTable) const Standard_OVERRIDE;
-
-  Standard_EXPORT virtual void Paste(const Handle(TDF_Attribute)& theSource, BinObjMgt_Persistent& theTarget, BinObjMgt_SRelocationTable& theRelocTable) const Standard_OVERRIDE;
-
-  DEFINE_STANDARD_RTTIEXT(BinMXCAFDoc_ClippingPlaneToolDriver, BinMDF_ADriver)
-
-};
-#endif // _BinMXCAFDoc_ClippingPlaneToolDriver_HeaderFile
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_ColorToolDriver.cxx b/src/BinMXCAFDoc/BinMXCAFDoc_ColorToolDriver.cxx
deleted file mode 100644 (file)
index 604a1fa..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-// Created on: 2005-05-17
-// Created by: Eugeny NAPALKOV
-// Copyright (c) 2005-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMXCAFDoc_ColorToolDriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDF_Attribute.hxx>
-#include <XCAFDoc_ColorTool.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMXCAFDoc_ColorToolDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-BinMXCAFDoc_ColorToolDriver::BinMXCAFDoc_ColorToolDriver(const Handle(Message_Messenger)& theMsgDriver)
-     : BinMDF_ADriver(theMsgDriver, STANDARD_TYPE(XCAFDoc_ColorTool)->Name()) {
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) BinMXCAFDoc_ColorToolDriver::NewEmpty() const {
-  return new XCAFDoc_ColorTool();
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-Standard_Boolean BinMXCAFDoc_ColorToolDriver::Paste(const BinObjMgt_Persistent& /*theSource*/,
-                                                   const Handle(TDF_Attribute)& /*theTarget*/,
-                                                   BinObjMgt_RRelocationTable& /*theRelocTable*/) const 
-{
-  return Standard_True;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void BinMXCAFDoc_ColorToolDriver::Paste(const Handle(TDF_Attribute)& /*theSource*/,
-                                       BinObjMgt_Persistent& /*theTarget*/,
-                                       BinObjMgt_SRelocationTable& /*theRelocTable*/) const {
-}
-
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_ColorToolDriver.hxx b/src/BinMXCAFDoc/BinMXCAFDoc_ColorToolDriver.hxx
deleted file mode 100644 (file)
index d18e4fc..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// Created on: 2005-05-17
-// Created by: Eugeny NAPALKOV <eugeny.napalkov@opencascade.com>
-// Copyright (c) 2005-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMXCAFDoc_ColorToolDriver_HeaderFile
-#define _BinMXCAFDoc_ColorToolDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMXCAFDoc_ColorToolDriver;
-DEFINE_STANDARD_HANDLE(BinMXCAFDoc_ColorToolDriver, BinMDF_ADriver)
-
-
-class BinMXCAFDoc_ColorToolDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMXCAFDoc_ColorToolDriver(const Handle(Message_Messenger)& theMsgDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& theSource, const Handle(TDF_Attribute)& theTarget, BinObjMgt_RRelocationTable& theRelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& theSource, BinObjMgt_Persistent& theTarget, BinObjMgt_SRelocationTable& theRelocTable) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(BinMXCAFDoc_ColorToolDriver,BinMDF_ADriver)
-
-protected:
-
-
-
-
-private:
-
-
-
-
-};
-
-
-
-
-
-
-
-#endif // _BinMXCAFDoc_ColorToolDriver_HeaderFile
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_DimTolToolDriver.cxx b/src/BinMXCAFDoc/BinMXCAFDoc_DimTolToolDriver.cxx
deleted file mode 100644 (file)
index 0044d1e..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-// Created on: 2008-12-10
-// Created by: Pavel TELKOV
-// Copyright (c) 2008-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMXCAFDoc_DimTolToolDriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDF_Attribute.hxx>
-#include <XCAFDoc_DimTolTool.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMXCAFDoc_DimTolToolDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-BinMXCAFDoc_DimTolToolDriver::BinMXCAFDoc_DimTolToolDriver
-  (const Handle(Message_Messenger)& theMsgDriver)
-: BinMDF_ADriver(theMsgDriver, STANDARD_TYPE(XCAFDoc_DimTolTool)->Name())
-{
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) BinMXCAFDoc_DimTolToolDriver::NewEmpty() const
-{
-  return new XCAFDoc_DimTolTool();
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-Standard_Boolean BinMXCAFDoc_DimTolToolDriver::Paste
-  (const BinObjMgt_Persistent& /*theSource*/,
-   const Handle(TDF_Attribute)& /*theTarget*/,
-   BinObjMgt_RRelocationTable& /*theRelocTable*/) const 
-{
-  return Standard_True;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void BinMXCAFDoc_DimTolToolDriver::Paste
-  (const Handle(TDF_Attribute)& /*theSource*/,
-   BinObjMgt_Persistent& /*theTarget*/,
-   BinObjMgt_SRelocationTable& /*theRelocTable*/) const {
-}
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_DimTolToolDriver.hxx b/src/BinMXCAFDoc/BinMXCAFDoc_DimTolToolDriver.hxx
deleted file mode 100644 (file)
index ae484d6..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// Created on: 2008-12-10
-// Created by: Pavel TELKOV
-// Copyright (c) 2008-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMXCAFDoc_DimTolToolDriver_HeaderFile
-#define _BinMXCAFDoc_DimTolToolDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMXCAFDoc_DimTolToolDriver;
-DEFINE_STANDARD_HANDLE(BinMXCAFDoc_DimTolToolDriver, BinMDF_ADriver)
-
-
-class BinMXCAFDoc_DimTolToolDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMXCAFDoc_DimTolToolDriver(const Handle(Message_Messenger)& theMsgDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& theSource, const Handle(TDF_Attribute)& theTarget, BinObjMgt_RRelocationTable& theRelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& theSource, BinObjMgt_Persistent& theTarget, BinObjMgt_SRelocationTable& theRelocTable) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(BinMXCAFDoc_DimTolToolDriver,BinMDF_ADriver)
-
-protected:
-
-
-
-
-private:
-
-
-
-
-};
-
-
-
-
-
-
-
-#endif // _BinMXCAFDoc_DimTolToolDriver_HeaderFile
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_DimensionDriver.cxx b/src/BinMXCAFDoc/BinMXCAFDoc_DimensionDriver.cxx
deleted file mode 100644 (file)
index 7c780f1..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-// Created on: 
-// Created by: 
-// Copyright (c) 2015 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMXCAFDoc_DimensionDriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TCollection_HAsciiString.hxx>
-#include <TColStd_Array1OfReal.hxx>
-#include <TColStd_HArray1OfReal.hxx>
-#include <TDF_Attribute.hxx>
-#include <XCAFDoc_Dimension.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMXCAFDoc_DimensionDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function : Constructor
-//purpose  : 
-//=======================================================================
-BinMXCAFDoc_DimensionDriver::BinMXCAFDoc_DimensionDriver (const Handle(Message_Messenger)& theMsgDriver)
-: BinMDF_ADriver(theMsgDriver, STANDARD_TYPE(XCAFDoc_Dimension)->Name())
-{
-}
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) BinMXCAFDoc_DimensionDriver::NewEmpty() const
-{
-  return new XCAFDoc_Dimension();
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-Standard_Boolean BinMXCAFDoc_DimensionDriver::Paste (const BinObjMgt_Persistent&  /*theSource*/,
-                                                     const Handle(TDF_Attribute)& /*theTarget*/,
-                                                     BinObjMgt_RRelocationTable&  /*theRelocTable*/) const
-{
-  //Handle(XCAFDoc_Dimension) anAtt = Handle(XCAFDoc_Dimension)::DownCast(theTarget);
-  return Standard_True;
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-void BinMXCAFDoc_DimensionDriver::Paste (const Handle(TDF_Attribute)&  /*theSource*/,
-                                         BinObjMgt_Persistent&         /*theTarget*/,
-                                         BinObjMgt_SRelocationTable&   /*theRelocTable*/) const
-{
-  //Handle(XCAFDoc_Dimension) anAtt = Handle(XCAFDoc_Dimension)::DownCast(theSource);
-}
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_DimensionDriver.hxx b/src/BinMXCAFDoc/BinMXCAFDoc_DimensionDriver.hxx
deleted file mode 100644 (file)
index 665dcfb..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-// Created on: 
-// Created by: 
-// Copyright (c) 20015 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMXCAFDoc_DimensionDriver_HeaderFile
-#define _BinMXCAFDoc_DimensionDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-class BinMXCAFDoc_DimensionDriver;
-DEFINE_STANDARD_HANDLE(BinMXCAFDoc_DimensionDriver, BinMDF_ADriver)
-
-class BinMXCAFDoc_DimensionDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMXCAFDoc_DimensionDriver (const Handle(Message_Messenger)& theMsgDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& theSource,
-                                                  const Handle(TDF_Attribute)& theTarget,
-                                                  BinObjMgt_RRelocationTable& theRelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& theSource,
-                                      BinObjMgt_Persistent& theTarget,
-                                      BinObjMgt_SRelocationTable& theRelocTable) const Standard_OVERRIDE;
-
-  DEFINE_STANDARD_RTTIEXT(BinMXCAFDoc_DimensionDriver,BinMDF_ADriver)
-
-};
-
-#endif // _BinMXCAFDoc_DimensionDriver_HeaderFile
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_DocumentToolDriver.cxx b/src/BinMXCAFDoc/BinMXCAFDoc_DocumentToolDriver.cxx
deleted file mode 100644 (file)
index 59720c1..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-// Created on: 2005-05-17
-// Created by: Eugeny NAPALKOV
-// Copyright (c) 2005-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMXCAFDoc_DocumentToolDriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDF_Attribute.hxx>
-#include <XCAFDoc_DocumentTool.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMXCAFDoc_DocumentToolDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-BinMXCAFDoc_DocumentToolDriver::BinMXCAFDoc_DocumentToolDriver(const Handle(Message_Messenger)& theMsgDriver) 
-     : BinMDF_ADriver(theMsgDriver, STANDARD_TYPE(XCAFDoc_DocumentTool)->Name()) {
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) BinMXCAFDoc_DocumentToolDriver::NewEmpty() const {
-  return new XCAFDoc_DocumentTool();
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-Standard_Boolean BinMXCAFDoc_DocumentToolDriver::Paste(const BinObjMgt_Persistent& /*theSource*/,
-                                                        const Handle(TDF_Attribute)& theTarget,
-                                                        BinObjMgt_RRelocationTable& /*theRelocTable*/) const
-{
-  Handle(XCAFDoc_DocumentTool) T = Handle(XCAFDoc_DocumentTool)::DownCast(theTarget);
-  T->Init();
-  return Standard_True;
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-void BinMXCAFDoc_DocumentToolDriver::Paste(const Handle(TDF_Attribute)& /*theSource*/,
-                                          BinObjMgt_Persistent& /*theTarget*/,
-                                          BinObjMgt_SRelocationTable& /*theRelocTable*/) const
-{
-}
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_DocumentToolDriver.hxx b/src/BinMXCAFDoc/BinMXCAFDoc_DocumentToolDriver.hxx
deleted file mode 100644 (file)
index e591150..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// Created on: 2005-05-17
-// Created by: Eugeny NAPALKOV <eugeny.napalkov@opencascade.com>
-// Copyright (c) 2005-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMXCAFDoc_DocumentToolDriver_HeaderFile
-#define _BinMXCAFDoc_DocumentToolDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMXCAFDoc_DocumentToolDriver;
-DEFINE_STANDARD_HANDLE(BinMXCAFDoc_DocumentToolDriver, BinMDF_ADriver)
-
-
-class BinMXCAFDoc_DocumentToolDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMXCAFDoc_DocumentToolDriver(const Handle(Message_Messenger)& theMsgDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& theSource, const Handle(TDF_Attribute)& theTarget, BinObjMgt_RRelocationTable& theRelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& theSource, BinObjMgt_Persistent& theTarget, BinObjMgt_SRelocationTable& theRelocTable) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(BinMXCAFDoc_DocumentToolDriver,BinMDF_ADriver)
-
-protected:
-
-
-
-
-private:
-
-
-
-
-};
-
-
-
-
-
-
-
-#endif // _BinMXCAFDoc_DocumentToolDriver_HeaderFile
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_GeomToleranceDriver.cxx b/src/BinMXCAFDoc/BinMXCAFDoc_GeomToleranceDriver.cxx
deleted file mode 100644 (file)
index e9f81b9..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-// Created on: 
-// Created by: 
-// Copyright (c) 2015 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMXCAFDoc_GeomToleranceDriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TCollection_HAsciiString.hxx>
-#include <TColStd_Array1OfReal.hxx>
-#include <TColStd_HArray1OfReal.hxx>
-#include <TDF_Attribute.hxx>
-#include <XCAFDoc_GeomTolerance.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMXCAFDoc_GeomToleranceDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function : Constructor
-//purpose  : 
-//=======================================================================
-BinMXCAFDoc_GeomToleranceDriver::BinMXCAFDoc_GeomToleranceDriver (const Handle(Message_Messenger)& theMsgDriver)
-: BinMDF_ADriver(theMsgDriver, STANDARD_TYPE(XCAFDoc_GeomTolerance)->Name())
-{
-}
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) BinMXCAFDoc_GeomToleranceDriver::NewEmpty() const
-{
-  return new XCAFDoc_GeomTolerance();
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-Standard_Boolean BinMXCAFDoc_GeomToleranceDriver::Paste (const BinObjMgt_Persistent&  /*theSource*/,
-                                                         const Handle(TDF_Attribute)& /*theTarget*/,
-                                                         BinObjMgt_RRelocationTable&  /*theRelocTable*/) const
-{
-  //Handle(XCAFDoc_GeomTolerance) anAtt = Handle(XCAFDoc_GeomTolerance)::DownCast(theTarget);
-  return Standard_True;
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-void BinMXCAFDoc_GeomToleranceDriver::Paste (const Handle(TDF_Attribute)&  /*theSource*/,
-                                             BinObjMgt_Persistent&         /*theTarget*/,
-                                             BinObjMgt_SRelocationTable&   /*theRelocTable*/) const
-{
-  //Handle(XCAFDoc_GeomTolerance) anAtt = Handle(XCAFDoc_GeomTolerance)::DownCast(theSource);
-}
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_GeomToleranceDriver.hxx b/src/BinMXCAFDoc/BinMXCAFDoc_GeomToleranceDriver.hxx
deleted file mode 100644 (file)
index cc4a4c7..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-// Created on: 
-// Created by: 
-// Copyright (c) 20015 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMXCAFDoc_GeomToleranceDriver_HeaderFile
-#define _BinMXCAFDoc_GeomToleranceDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-class BinMXCAFDoc_GeomToleranceDriver;
-DEFINE_STANDARD_HANDLE(BinMXCAFDoc_GeomToleranceDriver, BinMDF_ADriver)
-
-class BinMXCAFDoc_GeomToleranceDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMXCAFDoc_GeomToleranceDriver (const Handle(Message_Messenger)& theMsgDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& theSource,
-                                                  const Handle(TDF_Attribute)& theTarget,
-                                                  BinObjMgt_RRelocationTable& theRelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& theSource,
-                                      BinObjMgt_Persistent& theTarget,
-                                      BinObjMgt_SRelocationTable& theRelocTable) const Standard_OVERRIDE;
-
-  DEFINE_STANDARD_RTTIEXT(BinMXCAFDoc_GeomToleranceDriver,BinMDF_ADriver)
-
-};
-
-#endif // _BinMXCAFDoc_GeomToleranceDriver_HeaderFile
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_LayerToolDriver.cxx b/src/BinMXCAFDoc/BinMXCAFDoc_LayerToolDriver.cxx
deleted file mode 100644 (file)
index 6afe0c3..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-// Created on: 2005-05-17
-// Created by: Eugeny NAPALKOV
-// Copyright (c) 2005-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMXCAFDoc_LayerToolDriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDF_Attribute.hxx>
-#include <XCAFDoc_LayerTool.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMXCAFDoc_LayerToolDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-BinMXCAFDoc_LayerToolDriver::BinMXCAFDoc_LayerToolDriver(const Handle(Message_Messenger)& theMsgDriver)
-     : BinMDF_ADriver(theMsgDriver, STANDARD_TYPE(XCAFDoc_LayerTool)->Name()) {
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) BinMXCAFDoc_LayerToolDriver::NewEmpty() const {
-  return new XCAFDoc_LayerTool();
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-Standard_Boolean BinMXCAFDoc_LayerToolDriver::Paste(const BinObjMgt_Persistent& /*theSource*/,
-                                                    const Handle(TDF_Attribute)& /*theTarget*/,
-                                                    BinObjMgt_RRelocationTable& /*theRelocTable*/) const
-{
-  return Standard_True;
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-void BinMXCAFDoc_LayerToolDriver::Paste(const Handle(TDF_Attribute)& /*theSource*/,
-                                        BinObjMgt_Persistent& /*theTarget*/,
-                                        BinObjMgt_SRelocationTable& /*theRelocTable*/) const
-{
-}
-
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_LayerToolDriver.hxx b/src/BinMXCAFDoc/BinMXCAFDoc_LayerToolDriver.hxx
deleted file mode 100644 (file)
index b336f5b..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// Created on: 2005-05-17
-// Created by: Eugeny NAPALKOV <eugeny.napalkov@opencascade.com>
-// Copyright (c) 2005-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMXCAFDoc_LayerToolDriver_HeaderFile
-#define _BinMXCAFDoc_LayerToolDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMXCAFDoc_LayerToolDriver;
-DEFINE_STANDARD_HANDLE(BinMXCAFDoc_LayerToolDriver, BinMDF_ADriver)
-
-
-class BinMXCAFDoc_LayerToolDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMXCAFDoc_LayerToolDriver(const Handle(Message_Messenger)& theMsgDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& theSource, const Handle(TDF_Attribute)& theTarget, BinObjMgt_RRelocationTable& theRelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& theSource, BinObjMgt_Persistent& theTarget, BinObjMgt_SRelocationTable& theRelocTable) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(BinMXCAFDoc_LayerToolDriver,BinMDF_ADriver)
-
-protected:
-
-
-
-
-private:
-
-
-
-
-};
-
-
-
-
-
-
-
-#endif // _BinMXCAFDoc_LayerToolDriver_HeaderFile
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_MaterialToolDriver.cxx b/src/BinMXCAFDoc/BinMXCAFDoc_MaterialToolDriver.cxx
deleted file mode 100644 (file)
index 4adc8f3..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-// Created on: 2008-12-10
-// Created by: Pavel TELKOV
-// Copyright (c) 2008-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMXCAFDoc_MaterialToolDriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDF_Attribute.hxx>
-#include <XCAFDoc_MaterialTool.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMXCAFDoc_MaterialToolDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-BinMXCAFDoc_MaterialToolDriver::BinMXCAFDoc_MaterialToolDriver
-  (const Handle(Message_Messenger)& theMsgDriver)
-: BinMDF_ADriver(theMsgDriver, STANDARD_TYPE(XCAFDoc_MaterialTool)->Name())
-{
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) BinMXCAFDoc_MaterialToolDriver::NewEmpty() const
-{
-  return new XCAFDoc_MaterialTool();
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-Standard_Boolean BinMXCAFDoc_MaterialToolDriver::Paste
-  (const BinObjMgt_Persistent& /*theSource*/,
-   const Handle(TDF_Attribute)& /*theTarget*/,
-   BinObjMgt_RRelocationTable& /*theRelocTable*/) const 
-{
-  return Standard_True;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void BinMXCAFDoc_MaterialToolDriver::Paste
-  (const Handle(TDF_Attribute)& /*theSource*/,
-   BinObjMgt_Persistent& /*theTarget*/,
-   BinObjMgt_SRelocationTable& /*theRelocTable*/) const {
-}
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_MaterialToolDriver.hxx b/src/BinMXCAFDoc/BinMXCAFDoc_MaterialToolDriver.hxx
deleted file mode 100644 (file)
index 908fb5b..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// Created on: 2008-12-10
-// Created by: Pavel TELKOV
-// Copyright (c) 2008-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMXCAFDoc_MaterialToolDriver_HeaderFile
-#define _BinMXCAFDoc_MaterialToolDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMXCAFDoc_MaterialToolDriver;
-DEFINE_STANDARD_HANDLE(BinMXCAFDoc_MaterialToolDriver, BinMDF_ADriver)
-
-
-class BinMXCAFDoc_MaterialToolDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMXCAFDoc_MaterialToolDriver(const Handle(Message_Messenger)& theMsgDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& theSource, const Handle(TDF_Attribute)& theTarget, BinObjMgt_RRelocationTable& theRelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& theSource, BinObjMgt_Persistent& theTarget, BinObjMgt_SRelocationTable& theRelocTable) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(BinMXCAFDoc_MaterialToolDriver,BinMDF_ADriver)
-
-protected:
-
-
-
-
-private:
-
-
-
-
-};
-
-
-
-
-
-
-
-#endif // _BinMXCAFDoc_MaterialToolDriver_HeaderFile
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_NoteBalloonDriver.cxx b/src/BinMXCAFDoc/BinMXCAFDoc_NoteBalloonDriver.cxx
deleted file mode 100644 (file)
index cf7bf92..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-// Created on: 2017-08-10
-// Created by: Eugeny NIKONOV
-// Copyright (c) 2005-2017 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#include <BinObjMgt_Persistent.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDF_Attribute.hxx>
-#include <BinMXCAFDoc_NoteBalloonDriver.hxx>
-#include <XCAFDoc_NoteBalloon.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMXCAFDoc_NoteBalloonDriver, BinMXCAFDoc_NoteCommentDriver)
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-BinMXCAFDoc_NoteBalloonDriver::BinMXCAFDoc_NoteBalloonDriver(const Handle(Message_Messenger)& theMsgDriver)
-  : BinMXCAFDoc_NoteCommentDriver(theMsgDriver, STANDARD_TYPE(XCAFDoc_NoteBalloon)->Name())
-{
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) BinMXCAFDoc_NoteBalloonDriver::NewEmpty() const
-{
-  return new XCAFDoc_NoteBalloon();
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-BinMXCAFDoc_NoteBalloonDriver::BinMXCAFDoc_NoteBalloonDriver(const Handle(Message_Messenger)& theMsgDriver,
-                                                             Standard_CString                 theName)
-  : BinMXCAFDoc_NoteCommentDriver(theMsgDriver, theName)
-{
-
-}
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_NoteBalloonDriver.hxx b/src/BinMXCAFDoc/BinMXCAFDoc_NoteBalloonDriver.hxx
deleted file mode 100644 (file)
index 516f3a7..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-// Created on: 2017-08-10
-// Created by: Sergey NIKONOV
-// Copyright (c) 2005-2017 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMXCAFDoc_NoteBalloonDriver_HeaderFile
-#define _BinMXCAFDoc_NoteBalloonDriver_HeaderFile
-
-#include <BinMXCAFDoc_NoteCommentDriver.hxx>
-
-class BinMXCAFDoc_NoteBalloonDriver;
-DEFINE_STANDARD_HANDLE(BinMXCAFDoc_NoteBalloonDriver, BinMXCAFDoc_NoteCommentDriver)
-
-class BinMXCAFDoc_NoteBalloonDriver : public BinMXCAFDoc_NoteCommentDriver
-{
-public:
-  
-  Standard_EXPORT BinMXCAFDoc_NoteBalloonDriver(const Handle(Message_Messenger)& theMsgDriver);
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  DEFINE_STANDARD_RTTIEXT(BinMXCAFDoc_NoteBalloonDriver, BinMXCAFDoc_NoteCommentDriver)
-
-
-protected:
-
-  BinMXCAFDoc_NoteBalloonDriver(const Handle(Message_Messenger)& theMsgDriver,
-                                Standard_CString                 theName);
-
-};
-
-#endif // _BinMXCAFDoc_NoteCommentDriver_HeaderFile
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_NotesToolDriver.cxx b/src/BinMXCAFDoc/BinMXCAFDoc_NotesToolDriver.cxx
deleted file mode 100644 (file)
index f100f09..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-// Created on: 2017-02-10
-// Created by: Eugeny NIKONOV
-// Copyright (c) 2005-2017 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#include <BinObjMgt_Persistent.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDF_Attribute.hxx>
-#include <BinMXCAFDoc_NotesToolDriver.hxx>
-#include <XCAFDoc_NotesTool.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMXCAFDoc_NotesToolDriver, BinMDF_ADriver)
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-BinMXCAFDoc_NotesToolDriver::BinMXCAFDoc_NotesToolDriver(const Handle(Message_Messenger)& theMsgDriver)
-  : BinMDF_ADriver(theMsgDriver, STANDARD_TYPE(XCAFDoc_NotesTool)->Name())
-{
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) BinMXCAFDoc_NotesToolDriver::NewEmpty() const 
-{
-  return new XCAFDoc_NotesTool();
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-Standard_Boolean BinMXCAFDoc_NotesToolDriver::Paste(const BinObjMgt_Persistent&  /*theSource*/,
-                                                    const Handle(TDF_Attribute)& /*theTarget*/,
-                                                    BinObjMgt_RRelocationTable&  /*theRelocTable*/) const
-{
-  return Standard_True;
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-void BinMXCAFDoc_NotesToolDriver::Paste(const Handle(TDF_Attribute)& /*theSource*/,
-                                        BinObjMgt_Persistent&        /*theTarget*/,
-                                        BinObjMgt_SRelocationTable&  /*theRelocTable*/) const
-{
-}
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_NotesToolDriver.hxx b/src/BinMXCAFDoc/BinMXCAFDoc_NotesToolDriver.hxx
deleted file mode 100644 (file)
index 61129f0..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-// Created on: 2017-02-10
-// Created by: Sergey NIKONOV
-// Copyright (c) 2005-2017 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMXCAFDoc_NotesToolDriver_HeaderFile
-#define _BinMXCAFDoc_NotesToolDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-class BinMXCAFDoc_NotesToolDriver;
-DEFINE_STANDARD_HANDLE(BinMXCAFDoc_NotesToolDriver, BinMDF_ADriver)
-
-class BinMXCAFDoc_NotesToolDriver : public BinMDF_ADriver
-{
-public:
-  
-  Standard_EXPORT BinMXCAFDoc_NotesToolDriver(const Handle(Message_Messenger)& theMsgDriver);
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT Standard_Boolean Paste (const BinObjMgt_Persistent&  theSource, 
-                                          const Handle(TDF_Attribute)& theTarget, 
-                                          BinObjMgt_RRelocationTable&  theRelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& theSource, 
-                              BinObjMgt_Persistent&        theTarget, 
-                              BinObjMgt_SRelocationTable&  theRelocTable) const Standard_OVERRIDE;
-
-  DEFINE_STANDARD_RTTIEXT(BinMXCAFDoc_NotesToolDriver, BinMDF_ADriver)
-
-};
-
-#endif // _BinMXCAFDoc_NotesToolDriver_HeaderFile
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_ShapeToolDriver.cxx b/src/BinMXCAFDoc/BinMXCAFDoc_ShapeToolDriver.cxx
deleted file mode 100644 (file)
index 6b2897f..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-// Created on: 2005-05-17
-// Created by: Eugeny NAPALKOV
-// Copyright (c) 2005-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMXCAFDoc_ShapeToolDriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDF_Attribute.hxx>
-#include <XCAFDoc_ShapeTool.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMXCAFDoc_ShapeToolDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-BinMXCAFDoc_ShapeToolDriver::BinMXCAFDoc_ShapeToolDriver(const Handle(Message_Messenger)& theMsgDriver)
-     : BinMDF_ADriver(theMsgDriver, STANDARD_TYPE(XCAFDoc_ShapeTool)->Name())
-{
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) BinMXCAFDoc_ShapeToolDriver::NewEmpty() const {
-  return new XCAFDoc_ShapeTool();
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-Standard_Boolean BinMXCAFDoc_ShapeToolDriver::Paste(const BinObjMgt_Persistent& /*theSource*/,
-                                                    const Handle(TDF_Attribute)& /*theTarget*/,
-                                                    BinObjMgt_RRelocationTable& /*theRelocTable*/) const
-{
-  return Standard_True;
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-void BinMXCAFDoc_ShapeToolDriver::Paste(const Handle(TDF_Attribute)& /*theSource*/,
-                                        BinObjMgt_Persistent& /*theTarget*/,
-                                        BinObjMgt_SRelocationTable& /*theRelocTable*/) const
-{
-}
-
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_ShapeToolDriver.hxx b/src/BinMXCAFDoc/BinMXCAFDoc_ShapeToolDriver.hxx
deleted file mode 100644 (file)
index 94a4b40..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// Created on: 2005-05-17
-// Created by: Eugeny NAPALKOV <eugeny.napalkov@opencascade.com>
-// Copyright (c) 2005-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMXCAFDoc_ShapeToolDriver_HeaderFile
-#define _BinMXCAFDoc_ShapeToolDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMXCAFDoc_ShapeToolDriver;
-DEFINE_STANDARD_HANDLE(BinMXCAFDoc_ShapeToolDriver, BinMDF_ADriver)
-
-
-class BinMXCAFDoc_ShapeToolDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMXCAFDoc_ShapeToolDriver(const Handle(Message_Messenger)& theMsgDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& theSource, const Handle(TDF_Attribute)& theTarget, BinObjMgt_RRelocationTable& theRelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& theSource, BinObjMgt_Persistent& theTarget, BinObjMgt_SRelocationTable& theRelocTable) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(BinMXCAFDoc_ShapeToolDriver,BinMDF_ADriver)
-
-protected:
-
-
-
-
-private:
-
-
-
-
-};
-
-
-
-
-
-
-
-#endif // _BinMXCAFDoc_ShapeToolDriver_HeaderFile
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_ViewDriver.cxx b/src/BinMXCAFDoc/BinMXCAFDoc_ViewDriver.cxx
deleted file mode 100644 (file)
index 1708c44..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-// Created on: 2016-10-24
-// Created by: Irina KRYLOVA
-// Copyright (c) 2016 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMXCAFDoc_ViewDriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDF_Attribute.hxx>
-#include <XCAFDoc_View.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMXCAFDoc_ViewDriver, BinMDF_ADriver)
-
-//=======================================================================
-//function : Constructor
-//purpose  : 
-//=======================================================================
-BinMXCAFDoc_ViewDriver::BinMXCAFDoc_ViewDriver (const Handle(Message_Messenger)& theMsgDriver)
-: BinMDF_ADriver(theMsgDriver, STANDARD_TYPE(XCAFDoc_View)->Name())
-{
-}
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) BinMXCAFDoc_ViewDriver::NewEmpty() const
-{
-  return new XCAFDoc_View();
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-Standard_Boolean BinMXCAFDoc_ViewDriver::Paste (const BinObjMgt_Persistent&  /*theSource*/,
-                                                const Handle(TDF_Attribute)& /*theTarget*/,
-                                                BinObjMgt_RRelocationTable&  /*theRelocTable*/) const
-{
-  return Standard_True;
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-void BinMXCAFDoc_ViewDriver::Paste (const Handle(TDF_Attribute)&  /*theSource*/,
-                                    BinObjMgt_Persistent&         /*theTarget*/,
-                                    BinObjMgt_SRelocationTable&   /*theRelocTable*/) const
-{
-}
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_ViewDriver.hxx b/src/BinMXCAFDoc/BinMXCAFDoc_ViewDriver.hxx
deleted file mode 100644 (file)
index 0c01111..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-// Created on: 2016-10-24
-// Created by: Irina KRYLOVA
-// Copyright (c) 2016 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMXCAFDoc_ViewDriver_HeaderFile
-#define _BinMXCAFDoc_ViewDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-class BinMXCAFDoc_ViewDriver;
-DEFINE_STANDARD_HANDLE(BinMXCAFDoc_ViewDriver, BinMDF_ADriver)
-
-class BinMXCAFDoc_ViewDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMXCAFDoc_ViewDriver (const Handle(Message_Messenger)& theMsgDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& theSource,
-                                                  const Handle(TDF_Attribute)& theTarget,
-                                                  BinObjMgt_RRelocationTable& theRelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& theSource,
-                                      BinObjMgt_Persistent& theTarget,
-                                      BinObjMgt_SRelocationTable& theRelocTable) const Standard_OVERRIDE;
-
-  DEFINE_STANDARD_RTTIEXT(BinMXCAFDoc_ViewDriver, BinMDF_ADriver)
-
-};
-
-#endif // _BinMXCAFDoc_ViewDriver_HeaderFile
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_ViewToolDriver.cxx b/src/BinMXCAFDoc/BinMXCAFDoc_ViewToolDriver.cxx
deleted file mode 100644 (file)
index bd80bc3..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-// Created on: 2016-10-24
-// Created by: Irina KRYLOVA
-// Copyright (c) 2016 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMXCAFDoc_ViewToolDriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDF_Attribute.hxx>
-#include <XCAFDoc_ViewTool.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMXCAFDoc_ViewToolDriver, BinMDF_ADriver)
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-BinMXCAFDoc_ViewToolDriver::BinMXCAFDoc_ViewToolDriver
-  (const Handle(Message_Messenger)& theMsgDriver)
-: BinMDF_ADriver(theMsgDriver, STANDARD_TYPE(XCAFDoc_ViewTool)->Name())
-{
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) BinMXCAFDoc_ViewToolDriver::NewEmpty() const
-{
-  return new XCAFDoc_ViewTool();
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-Standard_Boolean BinMXCAFDoc_ViewToolDriver::Paste
-  (const BinObjMgt_Persistent& /*theSource*/,
-   const Handle(TDF_Attribute)& /*theTarget*/,
-   BinObjMgt_RRelocationTable& /*theRelocTable*/) const 
-{
-  return Standard_True;
-}
-
-//=======================================================================
-//function : 
-//purpose  : 
-//=======================================================================
-void BinMXCAFDoc_ViewToolDriver::Paste
-  (const Handle(TDF_Attribute)& /*theSource*/,
-   BinObjMgt_Persistent& /*theTarget*/,
-   BinObjMgt_SRelocationTable& /*theRelocTable*/) const {
-}
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_ViewToolDriver.hxx b/src/BinMXCAFDoc/BinMXCAFDoc_ViewToolDriver.hxx
deleted file mode 100644 (file)
index 46430fb..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-// Created on: 2016-10-24
-// Created by: Irina KRYLOVA
-// Copyright (c) 2016 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMXCAFDoc_ViewToolDriver_HeaderFile
-#define _BinMXCAFDoc_ViewToolDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMXCAFDoc_ViewToolDriver;
-DEFINE_STANDARD_HANDLE(BinMXCAFDoc_ViewToolDriver, BinMDF_ADriver)
-
-
-class BinMXCAFDoc_ViewToolDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMXCAFDoc_ViewToolDriver(const Handle(Message_Messenger)& theMsgDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& theSource, const Handle(TDF_Attribute)& theTarget, BinObjMgt_RRelocationTable& theRelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& theSource, BinObjMgt_Persistent& theTarget, BinObjMgt_SRelocationTable& theRelocTable) const Standard_OVERRIDE;
-
-  DEFINE_STANDARD_RTTIEXT(BinMXCAFDoc_ViewToolDriver, BinMDF_ADriver)
-
-};
-#endif // _BinMXCAFDoc_ViewToolDriver_HeaderFile
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_VolumeDriver.cxx b/src/BinMXCAFDoc/BinMXCAFDoc_VolumeDriver.cxx
deleted file mode 100644 (file)
index d40dccf..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-// Created on: 2005-05-17
-// Created by: Eugeny NAPALKOV
-// Copyright (c) 2005-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-
-#include <BinMXCAFDoc_VolumeDriver.hxx>
-#include <BinObjMgt_Persistent.hxx>
-#include <Message_Messenger.hxx>
-#include <Standard_Type.hxx>
-#include <TDF_Attribute.hxx>
-#include <XCAFDoc_Volume.hxx>
-
-IMPLEMENT_STANDARD_RTTIEXT(BinMXCAFDoc_VolumeDriver,BinMDF_ADriver)
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-BinMXCAFDoc_VolumeDriver::BinMXCAFDoc_VolumeDriver(const Handle(Message_Messenger)& theMsgDriver)
-     : BinMDF_ADriver(theMsgDriver, STANDARD_TYPE(XCAFDoc_Volume)->Name()) {
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) BinMXCAFDoc_VolumeDriver::NewEmpty() const {
-  return new XCAFDoc_Volume();
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-Standard_Boolean BinMXCAFDoc_VolumeDriver::Paste(const BinObjMgt_Persistent& theSource,
-                                                 const Handle(TDF_Attribute)& theTarget,
-                                                 BinObjMgt_RRelocationTable& /*theRelocTable*/) const
-{
-  Handle(XCAFDoc_Volume) anAtt = Handle(XCAFDoc_Volume)::DownCast(theTarget);
-  Standard_Real aVol;
-  Standard_Boolean isOk = theSource >> aVol;
-  if(isOk)
-    anAtt->Set(aVol);
-  return isOk;
-}
-
-//=======================================================================
-//function :
-//purpose  : 
-//=======================================================================
-void BinMXCAFDoc_VolumeDriver::Paste(const Handle(TDF_Attribute)& theSource,
-                                     BinObjMgt_Persistent& theTarget,
-                                     BinObjMgt_SRelocationTable& /*theRelocTable*/) const
-{
-  Handle(XCAFDoc_Volume) anAtt = Handle(XCAFDoc_Volume)::DownCast(theSource);
-  theTarget << anAtt->Get();
-}
-
diff --git a/src/BinMXCAFDoc/BinMXCAFDoc_VolumeDriver.hxx b/src/BinMXCAFDoc/BinMXCAFDoc_VolumeDriver.hxx
deleted file mode 100644 (file)
index 8741d36..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-// Created on: 2005-05-17
-// Created by: Eugeny NAPALKOV <eugeny.napalkov@opencascade.com>
-// Copyright (c) 2005-2014 OPEN CASCADE SAS
-//
-// This file is part of Open CASCADE Technology software library.
-//
-// This library is free software; you can redistribute it and/or modify it under
-// the terms of the GNU Lesser General Public License version 2.1 as published
-// by the Free Software Foundation, with special exception defined in the file
-// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-// distribution for complete text of the license and disclaimer of any warranty.
-//
-// Alternatively, this file may be used under the terms of Open CASCADE
-// commercial license or contractual agreement.
-
-#ifndef _BinMXCAFDoc_VolumeDriver_HeaderFile
-#define _BinMXCAFDoc_VolumeDriver_HeaderFile
-
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <BinMDF_ADriver.hxx>
-#include <Standard_Boolean.hxx>
-#include <BinObjMgt_RRelocationTable.hxx>
-#include <BinObjMgt_SRelocationTable.hxx>
-class Message_Messenger;
-class TDF_Attribute;
-class BinObjMgt_Persistent;
-
-
-class BinMXCAFDoc_VolumeDriver;
-DEFINE_STANDARD_HANDLE(BinMXCAFDoc_VolumeDriver, BinMDF_ADriver)
-
-
-class BinMXCAFDoc_VolumeDriver : public BinMDF_ADriver
-{
-
-public:
-
-  
-  Standard_EXPORT BinMXCAFDoc_VolumeDriver(const Handle(Message_Messenger)& theMsgDriver);
-  
-  Standard_EXPORT virtual Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_Boolean Paste (const BinObjMgt_Persistent& theSource, const Handle(TDF_Attribute)& theTarget, BinObjMgt_RRelocationTable& theRelocTable) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void Paste (const Handle(TDF_Attribute)& theSource, BinObjMgt_Persistent& theTarget, BinObjMgt_SRelocationTable& theRelocTable) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(BinMXCAFDoc_VolumeDriver,BinMDF_ADriver)
-
-protected:
-
-
-
-
-private:
-
-
-
-
-};
-
-
-
-
-
-
-
-#endif // _BinMXCAFDoc_VolumeDriver_HeaderFile
index 22daf02..68f84fa 100644 (file)
@@ -2,58 +2,28 @@ BinMXCAFDoc.cxx
 BinMXCAFDoc.hxx
 BinMXCAFDoc_AssemblyItemRefDriver.cxx
 BinMXCAFDoc_AssemblyItemRefDriver.hxx
-BinMXCAFDoc_AreaDriver.cxx
-BinMXCAFDoc_AreaDriver.hxx
 BinMXCAFDoc_CentroidDriver.cxx
 BinMXCAFDoc_CentroidDriver.hxx
-BinMXCAFDoc_ClippingPlaneToolDriver.cxx
-BinMXCAFDoc_ClippingPlaneToolDriver.hxx
 BinMXCAFDoc_ColorDriver.cxx
 BinMXCAFDoc_ColorDriver.hxx
-BinMXCAFDoc_ColorToolDriver.cxx
-BinMXCAFDoc_ColorToolDriver.hxx
 BinMXCAFDoc_DatumDriver.cxx
 BinMXCAFDoc_DatumDriver.hxx
-BinMXCAFDoc_DimensionDriver.cxx
-BinMXCAFDoc_DimensionDriver.hxx
 BinMXCAFDoc_DimTolDriver.cxx
 BinMXCAFDoc_DimTolDriver.hxx
-BinMXCAFDoc_DimTolToolDriver.cxx
-BinMXCAFDoc_DimTolToolDriver.hxx
-BinMXCAFDoc_DocumentToolDriver.cxx
-BinMXCAFDoc_DocumentToolDriver.hxx
-BinMXCAFDoc_GeomToleranceDriver.cxx
-BinMXCAFDoc_GeomToleranceDriver.hxx
 BinMXCAFDoc_GraphNodeDriver.cxx
 BinMXCAFDoc_GraphNodeDriver.hxx
-BinMXCAFDoc_LayerToolDriver.cxx
-BinMXCAFDoc_LayerToolDriver.hxx
 BinMXCAFDoc_LocationDriver.cxx
 BinMXCAFDoc_LocationDriver.hxx
 BinMXCAFDoc_LocationDriver.lxx
 BinMXCAFDoc_MaterialDriver.cxx
 BinMXCAFDoc_MaterialDriver.hxx
-BinMXCAFDoc_MaterialToolDriver.cxx
-BinMXCAFDoc_MaterialToolDriver.hxx
 BinMXCAFDoc_NoteDriver.cxx
 BinMXCAFDoc_NoteDriver.hxx
-BinMXCAFDoc_NoteBalloonDriver.cxx
-BinMXCAFDoc_NoteBalloonDriver.hxx
 BinMXCAFDoc_NoteCommentDriver.cxx
 BinMXCAFDoc_NoteCommentDriver.hxx
 BinMXCAFDoc_NoteBinDataDriver.cxx
 BinMXCAFDoc_NoteBinDataDriver.hxx
-BinMXCAFDoc_NotesToolDriver.cxx
-BinMXCAFDoc_NotesToolDriver.hxx
-BinMXCAFDoc_ShapeToolDriver.cxx
-BinMXCAFDoc_ShapeToolDriver.hxx
-BinMXCAFDoc_ViewDriver.cxx
-BinMXCAFDoc_ViewDriver.hxx
-BinMXCAFDoc_ViewToolDriver.cxx
-BinMXCAFDoc_ViewToolDriver.hxx
 BinMXCAFDoc_VisMaterialDriver.cxx
 BinMXCAFDoc_VisMaterialDriver.hxx
 BinMXCAFDoc_VisMaterialToolDriver.cxx
 BinMXCAFDoc_VisMaterialToolDriver.hxx
-BinMXCAFDoc_VolumeDriver.cxx
-BinMXCAFDoc_VolumeDriver.hxx
index de9dbb8..a3994bd 100644 (file)
@@ -54,6 +54,7 @@
 #include <TDF_Label.hxx>
 #include <TDF_RelocationTable.hxx>
 #include <TDF_Tool.hxx>
+#include <TDF_DerivedAttribute.hxx>
 
 //=======================================================================
 //function : Children
@@ -114,6 +115,37 @@ static Standard_Integer DDF_Attributes (Draw_Interpretor& di,
   return 0;
 }
 
+//=======================================================================
+//function : SetEmptyAttribute
+//purpose  : Adds an empty attribute to the label by its dynamic type.
+//=======================================================================
+
+static Standard_Integer DDF_SetEmptyAttribute (Draw_Interpretor& di, 
+  Standard_Integer  n, 
+  const char**            a)
+{
+  if (n != 4) return 1;
+
+  Handle(TDF_Data) DF;
+
+  if (!DDF::GetDF (a[1], DF)) return 1;
+
+  TDF_Label lab;
+  TDF_Tool::Label(DF,a[2],lab);
+
+  if (lab.IsNull()) return 1;
+
+  Handle(TDF_Attribute) anAttrByType = TDF_DerivedAttribute::Attribute(a[3]);
+  if (anAttrByType.IsNull()) {
+    di<<"DDF: Not registered attribute type '"<<a[3]<<"'\n";
+    return 1;
+  }
+
+  lab.AddAttribute(anAttrByType);
+
+  return 0;
+}
+
 
 //=======================================================================
 //function : ForgetAll
@@ -140,7 +172,7 @@ static Standard_Integer DDF_ForgetAll(Draw_Interpretor& /*di*/,
 
 //=======================================================================
 //function : ForgetAttribute
-//purpose  : "ForgetAtt dfname Label guid"
+//purpose  : "ForgetAtt dfname Label guid_or_type"
 //=======================================================================
 
 static Standard_Integer DDF_ForgetAttribute(Draw_Interpretor& di,
@@ -156,6 +188,12 @@ static Standard_Integer DDF_ForgetAttribute(Draw_Interpretor& di,
   if (aLabel.IsNull()) return 1;
   if (!Standard_GUID::CheckGUIDFormat(a[3]))
   {
+    // check this may be derived attribute by its type
+    Handle(TDF_Attribute) anAttrByType = TDF_DerivedAttribute::Attribute(a[3]);
+    if (!anAttrByType.IsNull()) {
+      aLabel.ForgetAttribute(anAttrByType->ID());
+      return 0;
+    }
     di<<"DDF: The format of GUID is invalid\n";
     return 1;
   }
@@ -297,12 +335,16 @@ void DDF::BasicCommands (Draw_Interpretor& theCommands)
                    " Returns the list of label attributes: Attributes DF label",
                    __FILE__, DDF_Attributes, g);
 
+  theCommands.Add ("SetEmptyAttribute",
+                   "Sets an empty attribute by its type (like TDataStd_Tick): SetEmptyAttribute DF label type",
+                   __FILE__, DDF_SetEmptyAttribute, g);
+
   theCommands.Add ("ForgetAll",
                    "Forgets all attributes from the label: ForgetAll DF Label",
                    __FILE__, DDF_ForgetAll, g);
 
   theCommands.Add ("ForgetAtt",
-                   "Forgets the specified by guid attribute from the label: ForgetAtt DF Label guid",
+                   "Forgets the specified by guid attribute or type from the label: ForgetAtt DF Label guid_or_type",
                    __FILE__, DDF_ForgetAttribute, g);
 
   theCommands.Add ("Label",
index 581f1bc..b6f97ec 100755 (executable)
@@ -60,6 +60,8 @@ TDF_DeltaOnRemoval.cxx
 TDF_DeltaOnRemoval.hxx
 TDF_DeltaOnResume.cxx
 TDF_DeltaOnResume.hxx
+TDF_DerivedAttribute.cxx
+TDF_DerivedAttribute.hxx
 TDF_DoubleMapIteratorOfAttributeDoubleMap.hxx
 TDF_DoubleMapIteratorOfGUIDProgIDMap.hxx
 TDF_DoubleMapIteratorOfLabelDoubleMap.hxx
diff --git a/src/TDF/TDF_DerivedAttribute.cxx b/src/TDF/TDF_DerivedAttribute.cxx
new file mode 100644 (file)
index 0000000..1a852bc
--- /dev/null
@@ -0,0 +1,162 @@
+// Copyright (c) 2020 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#include <TDF_DerivedAttribute.hxx>
+
+#include <NCollection_DataMap.hxx>
+#include <Standard_Mutex.hxx>
+#include <TCollection_AsciiString.hxx>
+
+namespace TDF_DerivedAttributeGlobals
+{
+
+  //! Data for the derived attribute correct creation
+  struct CreatorData
+  {
+    TDF_DerivedAttribute::NewDerived myCreator;
+    Standard_CString                 myNameSpace;
+    Standard_CString                 myTypeName;
+  };
+
+  //! List that contains the methods that create all registered derived attributes
+  static NCollection_List<CreatorData>& Creators()
+  {
+    static NCollection_List<CreatorData> THE_CREATORS_LIST;
+    return THE_CREATORS_LIST;
+  }
+  //! Global map of the string-type of derived attribute -> instance of such attribute
+  static NCollection_DataMap<Standard_CString, Handle(TDF_Attribute)>& Attributes()
+  {
+    static NCollection_DataMap<Standard_CString, Handle(TDF_Attribute)> THE_DERIVED;
+    return THE_DERIVED;
+  }
+
+  //! Global map of the string-type of derived attribute -> type name to identify this attribute
+  static NCollection_DataMap<Standard_CString, TCollection_AsciiString*>& Types()
+  {
+    static NCollection_DataMap<Standard_CString, TCollection_AsciiString*> THE_DERIVED_TYPES;
+    return THE_DERIVED_TYPES;
+  }
+
+  //! To minimize simultaneous access to global "DERIVED" maps from parallel threads
+  static Standard_Mutex& Mutex()
+  {
+    static Standard_Mutex THE_DERIVED_MUTEX;
+    return THE_DERIVED_MUTEX;
+  }
+} // namespace TDF_DerivedAttributeGlobals
+
+//=======================================================================
+// function : Register
+// purpose  : Registers a derived by the pointer to a method that creates a new derived attribute instance
+//=======================================================================
+TDF_DerivedAttribute::NewDerived TDF_DerivedAttribute::Register (NewDerived       theNewAttributeFunction,
+                                                                 Standard_CString theNameSpace,
+                                                                 Standard_CString theTypeName)
+{
+  TDF_DerivedAttributeGlobals::CreatorData aData = {theNewAttributeFunction, theNameSpace, theTypeName};
+  Standard_Mutex::Sentry                   aSentry (TDF_DerivedAttributeGlobals::Mutex());
+  TDF_DerivedAttributeGlobals::Creators().Append (aData);
+  return theNewAttributeFunction;
+}
+
+//=======================================================================
+// function : Initialize
+// purpose  : Checks synchronization and performs initialization of derived attributes maps if needed
+//=======================================================================
+static void Initialize()
+{
+  if (!TDF_DerivedAttributeGlobals::Creators().IsEmpty())
+  { // initialization
+    NCollection_List<TDF_DerivedAttributeGlobals::CreatorData>::Iterator aCreator;
+    for (aCreator.Initialize (TDF_DerivedAttributeGlobals::Creators()); aCreator.More(); aCreator.Next())
+    {
+      Handle(TDF_Attribute) aDerived      = aCreator.Value().myCreator();
+      Standard_CString aDerivedDynamicType = aDerived->DynamicType()->Name();
+
+      TCollection_AsciiString aTypeName;
+      if (aCreator.Value().myNameSpace != NULL)
+      {
+        if (aCreator.Value().myNameSpace[0] != '\0')
+        {
+          aTypeName = aCreator.Value().myNameSpace;
+          aTypeName += ':';
+        }
+      }
+      if (aCreator.Value().myTypeName == NULL)
+      {
+        aTypeName += aDerivedDynamicType;
+      }
+      else
+      {
+        aTypeName += aCreator.Value().myTypeName;
+      }
+
+      // persistent storage of types strings: they are not changed like maps on resize
+      static NCollection_List<TCollection_AsciiString> THE_TYPES_STORAGE;
+      THE_TYPES_STORAGE.Append(aTypeName);
+      TDF_DerivedAttributeGlobals::Types().Bind (aDerivedDynamicType, &(THE_TYPES_STORAGE.Last()));
+      TDF_DerivedAttributeGlobals::Attributes().Bind (aDerivedDynamicType, aDerived);
+    }
+    TDF_DerivedAttributeGlobals::Creators().Clear();
+  }
+}
+
+//=======================================================================
+// function : Attribute
+// purpose  :
+//=======================================================================
+Handle(TDF_Attribute) TDF_DerivedAttribute::Attribute (Standard_CString theType)
+{
+  Standard_Mutex::Sentry aSentry (TDF_DerivedAttributeGlobals::Mutex());
+  Initialize();
+  if (const Handle(TDF_Attribute)* aResult = TDF_DerivedAttributeGlobals::Attributes().Seek (theType))
+  {
+    return *aResult;
+  }
+
+  static const Handle(TDF_Attribute) aNullAttrib;
+  return aNullAttrib;
+}
+
+//=======================================================================
+// function : TypeName
+// purpose  :
+//=======================================================================
+const TCollection_AsciiString& TDF_DerivedAttribute::TypeName (Standard_CString theType)
+{
+  Standard_Mutex::Sentry aSentry (TDF_DerivedAttributeGlobals::Mutex());
+  Initialize();
+  if (TCollection_AsciiString *const* aResult = TDF_DerivedAttributeGlobals::Types().Seek (theType))
+  {
+    return **aResult;
+  }
+
+  static const TCollection_AsciiString anEmpty;
+  return anEmpty;
+}
+
+//=======================================================================
+// function : Attributes
+// purpose  :
+//=======================================================================
+void TDF_DerivedAttribute::Attributes (NCollection_List<Handle(TDF_Attribute)>& theList)
+{
+  Standard_Mutex::Sentry aSentry (TDF_DerivedAttributeGlobals::Mutex());
+  Initialize();
+  NCollection_DataMap<Standard_CString, Handle(TDF_Attribute)>::Iterator anAttrIter;
+  for (anAttrIter.Initialize (TDF_DerivedAttributeGlobals::Attributes()); anAttrIter.More(); anAttrIter.Next())
+  {
+    theList.Append (anAttrIter.Value());
+  }
+}
diff --git a/src/TDF/TDF_DerivedAttribute.hxx b/src/TDF/TDF_DerivedAttribute.hxx
new file mode 100644 (file)
index 0000000..3bd8df1
--- /dev/null
@@ -0,0 +1,73 @@
+// Copyright (c) 2020 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#ifndef _TDF_DerivedAttribute_HeaderFile
+#define _TDF_DerivedAttribute_HeaderFile
+
+#include <NCollection_List.hxx>
+#include <TDF_Attribute.hxx>
+
+class TCollection_AsciiString;
+
+//! @def DEFINE_DERIVED_ATTRIBUTE
+//! Defines declaration of Handle method and declares methods for serialization
+//! of derived attribute
+#define DEFINE_DERIVED_ATTRIBUTE(Class, Base) \
+  DEFINE_STANDARD_RTTIEXT(Class, Base); \
+  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
+
+//! @def IMPLEMENT_DERIVED_ATTRIBUTE
+//! Defines implementation of Handle method, serialization methods and registers the derived attribute
+#define IMPLEMENT_DERIVED_ATTRIBUTE(Class, Base) \
+  IMPLEMENT_STANDARD_RTTIEXT(Class, Base) \
+  static Handle(TDF_Attribute) TDF_DERIVED_New##Class() { return new Class(); } \
+  static TDF_DerivedAttribute::NewDerived TDF_DERIVED_##Class( \
+    TDF_DerivedAttribute::Register(TDF_DERIVED_New##Class)); \
+  Handle(TDF_Attribute) Class::NewEmpty() const { return TDF_DERIVED_##Class(); } \
+
+
+//! @def IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE
+//! Defines implementation of Handle method and registers the derived attribute
+#define IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE(Class, Base, NameSpace, TypeName) \
+  IMPLEMENT_STANDARD_RTTIEXT(Class, Base) \
+  static Handle(TDF_Attribute) TDF_DERIVED_New##Class() { return new Class(); } \
+  static TDF_DerivedAttribute::NewDerived TDF_DERIVED_##Class( \
+    TDF_DerivedAttribute::Register(TDF_DERIVED_New##Class, NameSpace, TypeName)); \
+  Handle(TDF_Attribute) Class::NewEmpty() const { return TDF_DERIVED_##Class(); } \
+
+//! Class provides global access (through static methods) to all derived attributres information.
+//! It is used internally by macros for registration of derived attributes and driver-tables
+//! for getting this data.
+class TDF_DerivedAttribute
+{
+public:
+  /// A function of derived attribute that returns a new attribute instance
+  typedef Handle(TDF_Attribute) (*NewDerived) ();
+
+  //! Registers a derived by the pointer to a method that creates a new derived attribute instance
+  Standard_EXPORT static NewDerived Register (NewDerived       theNewAttributeFunction,
+                                              Standard_CString theNameSpace = NULL,
+                                              Standard_CString theTypeName  = NULL);
+
+  //! Returns the derived registered attribute by its type.
+  Standard_EXPORT static Handle(TDF_Attribute) Attribute (Standard_CString theType);
+
+  //! Returns the type name of the registered attribute by its type.
+  Standard_EXPORT static const TCollection_AsciiString& TypeName (Standard_CString theType);
+
+  //! Returns all the derived registered attributes list.
+  Standard_EXPORT static void Attributes (NCollection_List<Handle(TDF_Attribute)>& theList);
+
+};
+
+#endif // _TDF_DerivedAttribute_HeaderFile
index e4a26f6..9e00969 100644 (file)
@@ -14,6 +14,10 @@ TDataStd_Comment.cxx
 TDataStd_Comment.hxx
 TDataStd_Current.cxx
 TDataStd_Current.hxx
+TDataStd_GenericEmpty.cxx
+TDataStd_GenericEmpty.hxx
+TDataStd_GenericExtString.cxx
+TDataStd_GenericExtString.hxx
 TDataStd_DataMapIteratorOfDataMapOfStringByte.hxx
 TDataStd_DataMapIteratorOfDataMapOfStringHArray1OfInteger.hxx
 TDataStd_DataMapIteratorOfDataMapOfStringHArray1OfReal.hxx
index cc2d0f7..cfc36ab 100644 (file)
 #include <TDataStd_Comment.hxx>
 
 #include <Standard_Dump.hxx>
-#include <Standard_GUID.hxx>
-#include <Standard_Type.hxx>
-#include <TCollection_AsciiString.hxx>
-#include <TCollection_ExtendedString.hxx>
-#include <TDataStd_Integer.hxx>
-#include <TDataStd_Real.hxx>
-#include <TDF_Attribute.hxx>
-#include <TDF_ChildIDIterator.hxx>
-#include <TDF_ChildIterator.hxx>
 #include <TDF_Label.hxx>
-#include <TDF_RelocationTable.hxx>
-#include <TDF_Tool.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(TDataStd_Comment,TDF_Attribute)
-
-#define lid1 45
-#define lid2 36
+IMPLEMENT_DERIVED_ATTRIBUTE(TDataStd_Comment, TDataStd_GenericExtString)
 
 //=======================================================================
 //function : GetID
@@ -46,8 +32,6 @@ const Standard_GUID& TDataStd_Comment::GetID ()
   return TDataStd_CommentID;
 }
 
-
-
 //=======================================================================
 //function : Set
 //purpose  : 
@@ -65,7 +49,6 @@ Handle(TDataStd_Comment) TDataStd_Comment::Set (const TDF_Label& L,
   return A;
 }
 
-
 //=======================================================================
 //function : Set
 //purpose  : 
@@ -81,78 +64,51 @@ Handle(TDataStd_Comment) TDataStd_Comment::Set (const TDF_Label& L)
   return A;
 }
 
-
 //=======================================================================
 //function : TDataStd_Comment
 //purpose  : 
 //=======================================================================
-TDataStd_Comment::TDataStd_Comment () { }
-
 
+TDataStd_Comment::TDataStd_Comment () {
+  myID = GetID();
+}
 
 //=======================================================================
 //function : Set
-//purpose  : 
+//purpose  :
 //=======================================================================
-void TDataStd_Comment::Set (const TCollection_ExtendedString& S) 
+
+void TDataStd_Comment::Set (const TCollection_ExtendedString& S)
 {
   // OCC2932 correction
   if(myString == S) return;
 
   Backup();
-
   myString = S;
 }
 
-
-
-//=======================================================================
-//function : Get
-//purpose  : 
-//=======================================================================
-const TCollection_ExtendedString& TDataStd_Comment::Get () const
-{
-  return myString;
-}
-
-//=======================================================================
-//function : ID
-//purpose  : 
-//=======================================================================
-
-const Standard_GUID& TDataStd_Comment::ID () const { return GetID(); }
-
-
 //=======================================================================
-//function : NewEmpty
-//purpose  : 
+//function : SetID
+//purpose  :
 //=======================================================================
 
-Handle(TDF_Attribute) TDataStd_Comment::NewEmpty () const
+void TDataStd_Comment::SetID( const Standard_GUID&  theGuid)
 {  
-  return new TDataStd_Comment(); 
-}
+  if(myID == theGuid) return;
 
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void TDataStd_Comment::Restore(const Handle(TDF_Attribute)& with) 
-{
-  myString = Handle(TDataStd_Comment)::DownCast (with)->Get ();
-  return;
+  Backup();
+  myID = theGuid;
 }
 
 //=======================================================================
-//function : Paste
-//purpose  : 
+//function : SetID
+//purpose  : sets default ID
 //=======================================================================
 
-void TDataStd_Comment::Paste (const Handle(TDF_Attribute)& into,
-                              const Handle(TDF_RelocationTable)& /*RT*/) const
+void TDataStd_Comment::SetID()
 {
-  Handle(TDataStd_Comment)::DownCast (into)->Set (myString);
+  Backup();
+  myID = GetID();
 }
 
 //=======================================================================
@@ -163,24 +119,6 @@ void TDataStd_Comment::Paste (const Handle(TDF_Attribute)& into,
 Standard_OStream& TDataStd_Comment::Dump (Standard_OStream& anOS) const
 { 
   TDF_Attribute::Dump(anOS);
-  anOS << "Comment=|"<<myString<<"|";
+  anOS << "Comment=|"<<Get()<<"|";
   return anOS;
 }
-Standard_Boolean TDataStd_Comment::
-AfterRetrieval(const Standard_Boolean)
-{
-  return Standard_True;
-}
-
-//=======================================================================
-//function : DumpJson
-//purpose  : 
-//=======================================================================
-void TDataStd_Comment::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
-{
-  OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
-  
-  OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute)
-  
-  OCCT_DUMP_FIELD_VALUE_STRING (theOStream, myString)
-}
index a26056e..03d286d 100644 (file)
 #ifndef _TDataStd_Comment_HeaderFile
 #define _TDataStd_Comment_HeaderFile
 
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <TCollection_ExtendedString.hxx>
-#include <TDF_Attribute.hxx>
-#include <Standard_OStream.hxx>
-#include <Standard_Boolean.hxx>
-class Standard_GUID;
-class TDF_Label;
-class TCollection_ExtendedString;
-class TDF_Attribute;
-class TDF_RelocationTable;
-
+#include <TDataStd_GenericExtString.hxx>
 
 class TDataStd_Comment;
-DEFINE_STANDARD_HANDLE(TDataStd_Comment, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(TDataStd_Comment, TDataStd_GenericExtString)
 
 //! Comment attribute. may be  associated to any label
 //! to store user comment.
-class TDataStd_Comment : public TDF_Attribute
+class TDataStd_Comment : public TDataStd_GenericExtString
 {
 
 public:
@@ -58,50 +46,19 @@ public:
   Standard_EXPORT static Handle(TDataStd_Comment) Set (const TDF_Label& label, const TCollection_ExtendedString& string);
   
   Standard_EXPORT TDataStd_Comment();
-  
-  Standard_EXPORT void Set (const TCollection_ExtendedString& S);
-  
-
-  //! Returns the comment attribute.
-  Standard_EXPORT const TCollection_ExtendedString& Get() const;
-  
-  Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual Standard_OStream& Dump (Standard_OStream& anOS) const Standard_OVERRIDE;
-  
-  Standard_EXPORT Standard_Boolean AfterRetrieval (const Standard_Boolean forceIt = Standard_False) Standard_OVERRIDE;
-  
-  //! Dumps the content of me into the stream
-  Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
-
-
 
+  Standard_EXPORT void Set (const TCollection_ExtendedString& S) Standard_OVERRIDE;
 
-  DEFINE_STANDARD_RTTIEXT(TDataStd_Comment,TDF_Attribute)
+  //! Sets the explicit user defined GUID  to the attribute.
+  Standard_EXPORT void SetID (const Standard_GUID& guid) Standard_OVERRIDE;
 
-protected:
-
-
-
-
-private:
-
-
-  TCollection_ExtendedString myString;
+  //! Sets default GUID for the attribute.
+  Standard_EXPORT void SetID() Standard_OVERRIDE;
 
+  Standard_EXPORT virtual Standard_OStream& Dump (Standard_OStream& anOS) const Standard_OVERRIDE;
+  
+  DEFINE_DERIVED_ATTRIBUTE(TDataStd_Comment, TDataStd_GenericExtString)
 
 };
 
-
-
-
-
-
-
 #endif // _TDataStd_Comment_HeaderFile
index b592f25..6746a4b 100644 (file)
 #include <Standard_GUID.hxx>
 #include <Standard_Type.hxx>
 #include <TDataStd.hxx>
-#include <TDF_Attribute.hxx>
 #include <TDF_DataSet.hxx>
 #include <TDF_Label.hxx>
 #include <TDF_RelocationTable.hxx>
 #include <TDF_TagSource.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(TDataStd_Directory,TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE(TDataStd_Directory,TDataStd_GenericEmpty)
 
 //=======================================================================
 //function : Find
@@ -115,7 +114,6 @@ TDataStd_Directory::TDataStd_Directory()
 {
 }
 
-
 //=======================================================================
 //function : ID
 //purpose  : 
@@ -130,38 +128,10 @@ const Standard_GUID& TDataStd_Directory::ID() const
 //purpose  : 
 //=======================================================================
 
-Handle(TDF_Attribute) TDataStd_Directory::NewEmpty () const
-{  
-  return new TDataStd_Directory(); 
-}
-
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void TDataStd_Directory::Restore(const Handle(TDF_Attribute)&) 
-{  
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-
-void TDataStd_Directory::Paste (const Handle(TDF_Attribute)&,
-                                           const Handle(TDF_RelocationTable)& ) const
-{  
-}
-
-//=======================================================================
-//function : References
-//purpose  : 
-//=======================================================================
-
-void TDataStd_Directory::References (const Handle(TDF_DataSet)&) const
-{  
-}
+//Handle(TDF_Attribute) TDataStd_Directory::NewEmpty () const
+//{  
+//  return new TDataStd_Directory(); 
+//}
 
 //=======================================================================
 //function : Dump
@@ -173,14 +143,3 @@ Standard_OStream& TDataStd_Directory::Dump (Standard_OStream& anOS) const
   anOS << "Directory";
   return anOS;
 }
-
-//=======================================================================
-//function : DumpJson
-//purpose  : 
-//=======================================================================
-void TDataStd_Directory::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
-{
-  OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
-
-  OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute)
-}
index 726f974..82523c3 100644 (file)
@@ -20,7 +20,7 @@
 #include <Standard.hxx>
 #include <Standard_Type.hxx>
 
-#include <TDF_Attribute.hxx>
+#include <TDataStd_GenericEmpty.hxx>
 #include <Standard_Boolean.hxx>
 #include <Standard_OStream.hxx>
 class TDF_Label;
@@ -31,13 +31,13 @@ class TDF_DataSet;
 
 
 class TDataStd_Directory;
-DEFINE_STANDARD_HANDLE(TDataStd_Directory, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(TDataStd_Directory, TDataStd_GenericEmpty)
 
 //! Associates a directory in the data framework with
 //! a TDataStd_TagSource attribute.
 //! You can create a new directory label and add
 //! sub-directory or object labels to it,
-class TDataStd_Directory : public TDF_Attribute
+class TDataStd_Directory : public TDataStd_GenericEmpty
 {
 
 public:
@@ -51,7 +51,7 @@ public:
   //! and the attribute found is set as D.
   Standard_EXPORT static Standard_Boolean Find (const TDF_Label& current, Handle(TDataStd_Directory)& D);
   
-  //! Creates  an  enpty   Directory attribute,  located  at
+  //! Creates  an  empty   Directory attribute,  located  at
   //! <label>. Raises if <label> has attribute
   Standard_EXPORT static Handle(TDataStd_Directory) New (const TDF_Label& label);
   
@@ -71,23 +71,10 @@ public:
   
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
   
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
-  Standard_EXPORT virtual void References (const Handle(TDF_DataSet)& DS) const Standard_OVERRIDE;
-  
   Standard_EXPORT virtual Standard_OStream& Dump (Standard_OStream& anOS) const Standard_OVERRIDE;
   
-  //! Dumps the content of me into the stream
-  Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
-
-
-
 
-  DEFINE_STANDARD_RTTIEXT(TDataStd_Directory,TDF_Attribute)
+  DEFINE_DERIVED_ATTRIBUTE(TDataStd_Directory,TDataStd_GenericEmpty)
 
 protected:
 
index 04a358a..bf48a1e 100644 (file)
@@ -128,6 +128,7 @@ void TDataStd_Expression::Restore(const Handle(TDF_Attribute)& With)
   myExpression = EXPR->GetExpression();
 
   Handle(TDataStd_Variable) V;
+  myVariables.Clear();
   for (TDF_ListIteratorOfAttributeList it (EXPR->GetVariables()); it.More(); it.Next()) {
     V = Handle(TDataStd_Variable)::DownCast(it.Value());
     myVariables.Append(V);
index f105330..e84b012 100644 (file)
@@ -22,7 +22,7 @@
 
 #include <TCollection_ExtendedString.hxx>
 #include <TDF_AttributeList.hxx>
-#include <TDF_Attribute.hxx>
+#include <TDF_DerivedAttribute.hxx>
 #include <Standard_OStream.hxx>
 class Standard_GUID;
 class TDF_Label;
@@ -82,22 +82,12 @@ public:
   Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
 
 
-
-
   DEFINE_STANDARD_RTTIEXT(TDataStd_Expression,TDF_Attribute)
 
 protected:
 
-
-
-
-private:
-
-
   TCollection_ExtendedString myExpression;
   TDF_AttributeList myVariables;
-
-
 };
 
 
diff --git a/src/TDataStd/TDataStd_GenericEmpty.cxx b/src/TDataStd/TDataStd_GenericEmpty.cxx
new file mode 100644 (file)
index 0000000..3de26a1
--- /dev/null
@@ -0,0 +1,28 @@
+// Copyright (c) 2020 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#include <TDataStd_GenericEmpty.hxx>
+#include <Standard_Dump.hxx>
+
+IMPLEMENT_STANDARD_RTTIEXT(TDataStd_GenericEmpty,TDF_Attribute)
+
+//=======================================================================
+//function : DumpJson
+//purpose  : 
+//=======================================================================
+void TDataStd_GenericEmpty::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
+{
+  OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+
+  OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute)
+}
diff --git a/src/TDataStd/TDataStd_GenericEmpty.hxx b/src/TDataStd/TDataStd_GenericEmpty.hxx
new file mode 100644 (file)
index 0000000..86c91d1
--- /dev/null
@@ -0,0 +1,49 @@
+// Copyright (c) 2020 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#ifndef _TDataStd_GenericEmpty_HeaderFile
+#define _TDataStd_GenericEmpty_HeaderFile
+
+#include <Standard.hxx>
+#include <Standard_Type.hxx>
+
+#include <TDF_DerivedAttribute.hxx>
+
+class Standard_GUID;
+class TDF_Label;
+class TDF_Attribute;
+class TDF_RelocationTable;
+
+class TDataStd_GenericEmpty;
+DEFINE_STANDARD_HANDLE(TDataStd_GenericEmpty, TDF_Attribute)
+
+//! An ancestor attibute for all attributes which have no fields.
+//! If an attribute inherits this one it should not have drivers for persistence.
+class TDataStd_GenericEmpty : public TDF_Attribute
+{
+
+public:
+
+  Standard_EXPORT void Restore (const Handle(TDF_Attribute)&) Standard_OVERRIDE {};
+
+  Standard_EXPORT void Paste (const Handle(TDF_Attribute)&, const Handle(TDF_RelocationTable)&) const Standard_OVERRIDE {}
+  
+  //! Dumps the content of me into the stream
+  Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
+
+
+  DEFINE_STANDARD_RTTIEXT(TDataStd_GenericEmpty,TDF_Attribute)
+
+};
+
+#endif // _TDataStd_GenericEmpty_HeaderFile
diff --git a/src/TDataStd/TDataStd_GenericExtString.cxx b/src/TDataStd/TDataStd_GenericExtString.cxx
new file mode 100644 (file)
index 0000000..538c969
--- /dev/null
@@ -0,0 +1,91 @@
+// Copyright (c) 2020 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#include <TDataStd_GenericExtString.hxx>
+#include <Standard_Dump.hxx>
+
+IMPLEMENT_STANDARD_RTTIEXT(TDataStd_GenericExtString,TDF_Attribute)
+
+//=======================================================================
+//function : Set
+//purpose  : 
+//=======================================================================
+void TDataStd_GenericExtString::Set (const TCollection_ExtendedString& S) 
+{
+  if(myString == S) return;
+  Backup();
+  myString = S;
+}
+
+//=======================================================================
+//function : Get
+//purpose  : 
+//=======================================================================
+const TCollection_ExtendedString& TDataStd_GenericExtString::Get () const
+{
+  return myString;
+}
+
+//=======================================================================
+//function : SetID
+//purpose  :
+//=======================================================================
+void TDataStd_GenericExtString::SetID( const Standard_GUID&  theGuid)
+{  
+  if(myID == theGuid) return;
+
+  Backup();
+  myID = theGuid;
+}
+
+//=======================================================================
+//function : ID
+//purpose  : 
+//=======================================================================
+const Standard_GUID& TDataStd_GenericExtString::ID () const { return myID; }
+
+//=======================================================================
+//function : Restore
+//purpose  : 
+//=======================================================================
+void TDataStd_GenericExtString::Restore(const Handle(TDF_Attribute)& with) 
+{
+   Handle(TDataStd_GenericExtString) anAtt = Handle(TDataStd_GenericExtString)::DownCast (with);
+   myString = anAtt->Get();
+   myID = anAtt->ID();
+}
+
+//=======================================================================
+//function : Paste
+//purpose  : 
+//=======================================================================
+void TDataStd_GenericExtString::Paste (const Handle(TDF_Attribute)& into,
+                                       const Handle(TDF_RelocationTable)&/* RT*/) const
+{
+  Handle(TDataStd_GenericExtString) anAtt = Handle(TDataStd_GenericExtString)::DownCast (into);
+  anAtt->Set(myString);
+  anAtt->SetID(myID);
+}
+
+//=======================================================================
+//function : DumpJson
+//purpose  : 
+//=======================================================================
+void TDataStd_GenericExtString::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
+{
+  OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
+  OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute)
+  OCCT_DUMP_FIELD_VALUE_STRING (theOStream, Get())
+  OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myID)
+}
diff --git a/src/TDataStd/TDataStd_GenericExtString.hxx b/src/TDataStd/TDataStd_GenericExtString.hxx
new file mode 100644 (file)
index 0000000..0b94776
--- /dev/null
@@ -0,0 +1,65 @@
+// Copyright (c) 2020 OPEN CASCADE SAS
+//
+// This file is part of Open CASCADE Technology software library.
+//
+// This library is free software; you can redistribute it and/or modify it under
+// the terms of the GNU Lesser General Public License version 2.1 as published
+// by the Free Software Foundation, with special exception defined in the file
+// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
+// distribution for complete text of the license and disclaimer of any warranty.
+//
+// Alternatively, this file may be used under the terms of Open CASCADE
+// commercial license or contractual agreement.
+
+#ifndef _TDataStd_GenericExtString_HeaderFile
+#define _TDataStd_GenericExtString_HeaderFile
+
+#include <TDF_DerivedAttribute.hxx>
+#include <TCollection_ExtendedString.hxx>
+#include <Standard_GUID.hxx>
+
+class Standard_GUID;
+class TDF_Label;
+class TDF_RelocationTable;
+
+class TDataStd_GenericExtString;
+DEFINE_STANDARD_HANDLE(TDataStd_GenericExtString, TDF_Attribute)
+
+//! An ancestor attibute for all attributes which have TCollection_ExtendedString field.
+//! If an attribute inherits this one it should not have drivers for persistence.
+//! Also this attribute provides functionality to have on the same label same attributes with different IDs.
+class TDataStd_GenericExtString : public TDF_Attribute
+{
+
+public:
+
+  //! Sets <S> as name. Raises if <S> is not a valid name.
+  Standard_EXPORT virtual void Set (const TCollection_ExtendedString& S);
+  
+  //! Sets the explicit user defined GUID  to the attribute.
+  Standard_EXPORT void SetID (const Standard_GUID& guid) Standard_OVERRIDE;
+
+  //! Returns the name contained in this name attribute.
+  Standard_EXPORT virtual const TCollection_ExtendedString& Get() const;
+  
+  //! Returns the ID of the attribute.
+  Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
+
+  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with) Standard_OVERRIDE;
+
+  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
+
+  //! Dumps the content of me into the stream
+  Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
+
+  DEFINE_STANDARD_RTTIEXT(TDataStd_GenericExtString,TDF_Attribute)
+
+protected:
+  //! A string field of the attribute, participated in persistence.
+  TCollection_ExtendedString myString;
+  //! A private GUID of the attribute.
+  Standard_GUID myID;
+
+};
+
+#endif // _TDataStd_GenericExtString_HeaderFile
index 279c14d..4c6a96a 100644 (file)
 // commercial license or contractual agreement.
 
 #include <TDataStd_Name.hxx>
-
-#include <Standard_DomainError.hxx>
-#include <Standard_Dump.hxx>
-#include <Standard_GUID.hxx>
-#include <Standard_Type.hxx>
-#include <TCollection_AsciiString.hxx>
-#include <TCollection_ExtendedString.hxx>
-#include <TDF_Attribute.hxx>
-#include <TDF_ChildIterator.hxx>
 #include <TDF_Label.hxx>
-#include <TDF_ListIteratorOfAttributeList.hxx>
-#include <TDF_RelocationTable.hxx>
-#include <TDF_Tool.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(TDataStd_Name,TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE(TDataStd_Name,TDataStd_GenericExtString)
 
 //=======================================================================
 //function : GetID
@@ -52,7 +40,7 @@ static Handle(TDataStd_Name) SetAttr(const TDF_Label&       label,
   Handle(TDataStd_Name) N;
   if (!label.FindAttribute(theGuid, N)) {
     N = new TDataStd_Name ();
-    N->SetID(theGuid);
+    N->SetID (theGuid);
     label.AddAttribute(N);
   }
   N->Set (theString); 
@@ -81,13 +69,15 @@ Handle(TDataStd_Name) TDataStd_Name::Set (const TDF_Label&    label,
 {
   return SetAttr(label, theString, theGuid);
 }
+
 //=======================================================================
 //function : TDataStd_Name
-//purpose  : Empty Constructor
+//purpose  :
 //=======================================================================
-
-TDataStd_Name::TDataStd_Name () : myID(GetID())
-{}
+TDataStd_Name::TDataStd_Name()
+{
+  myID = GetID();
+}
 
 //=======================================================================
 //function : Set
@@ -101,22 +91,10 @@ void TDataStd_Name::Set (const TCollection_ExtendedString& S)
   myString = S;
 }
 
-
-
-//=======================================================================
-//function : Get
-//purpose  : 
-//=======================================================================
-const TCollection_ExtendedString& TDataStd_Name::Get () const
-{
-  return myString;
-}
-
 //=======================================================================
 //function : SetID
 //purpose  :
 //=======================================================================
-
 void TDataStd_Name::SetID( const Standard_GUID&  theGuid)
 {  
   if(myID == theGuid) return;
@@ -129,6 +107,7 @@ void TDataStd_Name::SetID( const Standard_GUID&  theGuid)
 //function : SetID
 //purpose  : sets default ID
 //=======================================================================
+
 void TDataStd_Name::SetID()
 {
   Backup();
@@ -137,49 +116,6 @@ void TDataStd_Name::SetID()
 
 // TDF_Attribute methods
 //=======================================================================
-//function : ID
-//purpose  : 
-//=======================================================================
-
-const Standard_GUID& TDataStd_Name::ID () const { return myID; }
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) TDataStd_Name::NewEmpty () const
-{
-  return new TDataStd_Name();
-}
-
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void TDataStd_Name::Restore(const Handle(TDF_Attribute)& with) 
-{
-   Handle(TDataStd_Name) anAtt = Handle(TDataStd_Name)::DownCast (with);
-   myString = anAtt->Get();
-   myID = anAtt->ID();
-}
-
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-
-void TDataStd_Name::Paste (const Handle(TDF_Attribute)& into,
-                           const Handle(TDF_RelocationTable)&/* RT*/) const
-{
-  Handle(TDataStd_Name) anAtt = Handle(TDataStd_Name)::DownCast (into);
-  anAtt->Set (myString);
-  anAtt->SetID(myID);
-}
-
-//=======================================================================
 //function : Dump
 //purpose  : 
 //=======================================================================
@@ -193,17 +129,3 @@ Standard_OStream& TDataStd_Name::Dump (Standard_OStream& anOS) const
   anOS << sguid << std::endl;
   return anOS;
 }
-
-//=======================================================================
-//function : DumpJson
-//purpose  : 
-//=======================================================================
-void TDataStd_Name::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
-{
-  OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
-
-  OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute)
-
-  OCCT_DUMP_FIELD_VALUE_STRING (theOStream, myString)
-  OCCT_DUMP_FIELD_VALUE_GUID (theOStream, myID)
-}
index 1ccfdba..3513be5 100644 (file)
 #ifndef _TDataStd_Name_HeaderFile
 #define _TDataStd_Name_HeaderFile
 
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <TCollection_ExtendedString.hxx>
-#include <TDF_Attribute.hxx>
+#include <TDataStd_GenericExtString.hxx>
 #include <Standard_OStream.hxx>
-#include <Standard_GUID.hxx>
 
 class Standard_DomainError;
 class TDF_Label;
@@ -33,14 +28,13 @@ class TDF_RelocationTable;
 
 
 class TDataStd_Name;
-DEFINE_STANDARD_HANDLE(TDataStd_Name, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(TDataStd_Name, TDataStd_GenericExtString)
 
 //! Used to define a name attribute containing a string which specifies the name.
-class TDataStd_Name : public TDF_Attribute
+class TDataStd_Name : public TDataStd_GenericExtString
 {
 
 public:
-
   
   //! class methods working on the name itself
   //! ========================================
@@ -75,10 +69,11 @@ public:
   //! The Name attribute  is  returned. 
   Standard_EXPORT static Handle(TDataStd_Name) Set (const TDF_Label& label, const Standard_GUID& guid,
                                    const TCollection_ExtendedString& string);
+
   Standard_EXPORT TDataStd_Name();
   
   //! Sets <S> as name. Raises if <S> is not a valid name.
-  Standard_EXPORT void Set (const TCollection_ExtendedString& S);
+  Standard_EXPORT void Set (const TCollection_ExtendedString& S) Standard_OVERRIDE;
   
   //! Sets the explicit user defined GUID  to the attribute.
   Standard_EXPORT void SetID (const Standard_GUID& guid) Standard_OVERRIDE;
@@ -86,37 +81,10 @@ public:
   //! Sets default GUID for the attribute.
   Standard_EXPORT void SetID() Standard_OVERRIDE;
 
-  //! Returns the name contained in this name attribute.
-  Standard_EXPORT const TCollection_ExtendedString& Get() const;
-  
-  Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
   Standard_EXPORT virtual Standard_OStream& Dump (Standard_OStream& anOS) const Standard_OVERRIDE;
   
-  //! Dumps the content of me into the stream
-  Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(TDataStd_Name,TDF_Attribute)
-
-protected:
-
-
-
-
-private:
-
 
-  TCollection_ExtendedString myString;
-  Standard_GUID myID;
+  DEFINE_DERIVED_ATTRIBUTE(TDataStd_Name, TDataStd_GenericExtString)
 
 };
 
index a385f35..3265e93 100644 (file)
 #include <Standard_Type.hxx>
 #include <TDataStd_Integer.hxx>
 #include <TDataStd_Real.hxx>
-#include <TDF_Attribute.hxx>
 #include <TDF_Label.hxx>
 #include <TDF_RelocationTable.hxx>
 #include <TDF_TagSource.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(TDataStd_NoteBook,TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE(TDataStd_NoteBook,TDataStd_GenericEmpty)
 
 //=======================================================================
 //function : Find
@@ -128,35 +127,6 @@ const Standard_GUID& TDataStd_NoteBook::ID() const
 
 
 //=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) TDataStd_NoteBook::NewEmpty () const
-{  
-  return new TDataStd_NoteBook(); 
-}
-
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void TDataStd_NoteBook::Restore(const Handle(TDF_Attribute)& ) 
-{
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-
-void TDataStd_NoteBook::Paste (const Handle(TDF_Attribute)& ,
-                              const Handle(TDF_RelocationTable)& ) const
-{
-}
-
-//=======================================================================
 //function : Dump
 //purpose  : 
 //=======================================================================
@@ -166,14 +136,3 @@ Standard_OStream& TDataStd_NoteBook::Dump (Standard_OStream& anOS) const
   anOS << "NoteBook";
   return anOS;
 }
-
-//=======================================================================
-//function : DumpJson
-//purpose  : 
-//=======================================================================
-void TDataStd_NoteBook::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
-{
-  OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
-
-  OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute)
-}
index 12d6a13..d0ae1cf 100644 (file)
@@ -20,7 +20,7 @@
 #include <Standard.hxx>
 #include <Standard_Type.hxx>
 
-#include <TDF_Attribute.hxx>
+#include <TDataStd_GenericEmpty.hxx>
 #include <Standard_Boolean.hxx>
 #include <Standard_Real.hxx>
 #include <Standard_Integer.hxx>
@@ -34,10 +34,10 @@ class TDF_RelocationTable;
 
 
 class TDataStd_NoteBook;
-DEFINE_STANDARD_HANDLE(TDataStd_NoteBook, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(TDataStd_NoteBook, TDataStd_GenericEmpty)
 
 //! NoteBook Object attribute
-class TDataStd_NoteBook : public TDF_Attribute
+class TDataStd_NoteBook : public TDataStd_GenericEmpty
 {
 
 public:
@@ -72,21 +72,11 @@ public:
   
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
   
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
   Standard_EXPORT virtual Standard_OStream& Dump (Standard_OStream& anOS) const Standard_OVERRIDE;
   
-  //! Dumps the content of me into the stream
-  Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
-
-
 
 
-  DEFINE_STANDARD_RTTIEXT(TDataStd_NoteBook,TDF_Attribute)
+  DEFINE_DERIVED_ATTRIBUTE(TDataStd_NoteBook, TDataStd_GenericEmpty)
 
 protected:
 
index 48bb135..bb7105e 100644 (file)
@@ -22,7 +22,7 @@
 
 #include <Standard_Real.hxx>
 #include <TDataStd_RealEnum.hxx>
-#include <TDF_Attribute.hxx>
+#include <TDF_DerivedAttribute.hxx>
 #include <Standard_Boolean.hxx>
 #include <Standard_OStream.hxx>
 #include <Standard_GUID.hxx>
@@ -109,17 +109,10 @@ public:
 
 protected:
 
-
-
-
-private:
-
-
   Standard_Real myValue;
   //! An obsolete field that will be removed in next versions.
   TDataStd_RealEnum myDimension;
   Standard_GUID myID;
-
 };
 
 
index d4de4a9..11eb945 100644 (file)
@@ -27,7 +27,7 @@
 #include <TDF_ListIteratorOfAttributeList.hxx>
 #include <TDF_RelocationTable.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(TDataStd_Relation,TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE(TDataStd_Relation,TDF_Attribute)
 
 //=======================================================================
 //function : GetID
@@ -63,16 +63,6 @@ TDataStd_Relation::TDataStd_Relation()
 {
 }
 
-
-//=======================================================================
-//function : Name
-//purpose  : 
-//=======================================================================
-TCollection_ExtendedString TDataStd_Relation::Name () const 
-{  
-  return myRelation;  // ->String();
-}
-
 //=======================================================================
 //function : SetRelation
 //purpose  : 
@@ -80,11 +70,7 @@ TCollection_ExtendedString TDataStd_Relation::Name () const
 
 void TDataStd_Relation::SetRelation(const TCollection_ExtendedString& R)
 {
-  // OCC2932 correction
-  if(myRelation == R) return;
-
-  Backup();
-  myRelation = R;
+  SetExpression(R);
 }
 
 //=======================================================================
@@ -94,17 +80,7 @@ void TDataStd_Relation::SetRelation(const TCollection_ExtendedString& R)
 
 const TCollection_ExtendedString& TDataStd_Relation::GetRelation() const
 {
-  return myRelation;
-}
-
-//=======================================================================
-//function : GetVariables
-//purpose  : 
-//=======================================================================
-
-TDF_AttributeList& TDataStd_Relation::GetVariables()
-{
-  return myVariables;
+  return GetExpression();
 }
 
 //=======================================================================
@@ -118,52 +94,6 @@ const Standard_GUID& TDataStd_Relation::ID() const
 }
 
 //=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void TDataStd_Relation::Restore(const Handle(TDF_Attribute)& With) 
-{  
-  Handle(TDataStd_Relation) REL = Handle(TDataStd_Relation)::DownCast (With);
-  myRelation = REL->GetRelation();
-  Handle(TDataStd_Variable) V;
-  myVariables.Clear();
-  for (TDF_ListIteratorOfAttributeList it (REL->GetVariables()); it.More(); it.Next()) {
-    V = Handle(TDataStd_Variable)::DownCast(it.Value());
-    myVariables.Append(V);
-  }
-}
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) TDataStd_Relation::NewEmpty() const
-{
-  return new TDataStd_Relation();
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-
-void TDataStd_Relation::Paste(const Handle(TDF_Attribute)& Into,
-                                    const Handle(TDF_RelocationTable)& RT) const
-{  
-  Handle(TDataStd_Relation) REL = Handle(TDataStd_Relation)::DownCast (Into); 
-  REL->SetRelation(myRelation);  
-  Handle(TDataStd_Variable) V1;
-  for (TDF_ListIteratorOfAttributeList it (myVariables); it.More(); it.Next()) {
-    V1 = Handle(TDataStd_Variable)::DownCast(it.Value());
-    Handle(TDF_Attribute) V2;
-    RT->HasRelocation (V1,V2);
-    REL->GetVariables().Append(V2);
-  }
-}
-
-//=======================================================================
 //function : Dump
 //purpose  : 
 //=======================================================================
@@ -184,11 +114,11 @@ void TDataStd_Relation::DumpJson (Standard_OStream& theOStream, Standard_Integer
 
   OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute)
 
-  OCCT_DUMP_FIELD_VALUE_STRING (theOStream, myRelation)
+  OCCT_DUMP_FIELD_VALUE_STRING (theOStream, GetRelation())
 
   for (TDF_AttributeList::Iterator aVariableIt (myVariables); aVariableIt.More(); aVariableIt.Next())
   {
     const Handle(TDF_Attribute)& aVariable = aVariableIt.Value();
     OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, aVariable.get())
   }
-}
+}
\ No newline at end of file
index 25387a2..b5cf108 100644 (file)
 #ifndef _TDataStd_Relation_HeaderFile
 #define _TDataStd_Relation_HeaderFile
 
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <TCollection_ExtendedString.hxx>
-#include <TDF_AttributeList.hxx>
-#include <TDF_Attribute.hxx>
-#include <Standard_OStream.hxx>
-class Standard_GUID;
-class TDF_Label;
-class TCollection_ExtendedString;
-class TDF_Attribute;
-class TDF_RelocationTable;
-
+#include <TDataStd_Expression.hxx>
 
 class TDataStd_Relation;
-DEFINE_STANDARD_HANDLE(TDataStd_Relation, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(TDataStd_Relation, TDataStd_Expression)
 
 //! Relation attribute.
 //! ==================
@@ -42,7 +30,7 @@ DEFINE_STANDARD_HANDLE(TDataStd_Relation, TDF_Attribute)
 //!
 //! Warning:  To be consistent,  each  Variable  referenced by  the
 //! relation must have its equivalent in the string
-class TDataStd_Relation : public TDF_Attribute
+class TDataStd_Relation : public TDataStd_Expression
 {
 
 public:
@@ -59,23 +47,12 @@ public:
   
   Standard_EXPORT TDataStd_Relation();
   
-  //! build and return the relation name
-  Standard_EXPORT TCollection_ExtendedString Name() const;
-  
   Standard_EXPORT void SetRelation (const TCollection_ExtendedString& E);
   
   Standard_EXPORT const TCollection_ExtendedString& GetRelation() const;
   
-  Standard_EXPORT TDF_AttributeList& GetVariables();
-  
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
   
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& With) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& Into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
   Standard_EXPORT virtual Standard_OStream& Dump (Standard_OStream& anOS) const Standard_OVERRIDE;
 
   //! Dumps the content of me into the stream
@@ -83,27 +60,7 @@ public:
 
 
 
-
-  DEFINE_STANDARD_RTTIEXT(TDataStd_Relation,TDF_Attribute)
-
-protected:
-
-
-
-
-private:
-
-
-  TCollection_ExtendedString myRelation;
-  TDF_AttributeList myVariables;
-
-
+  DEFINE_DERIVED_ATTRIBUTE(TDataStd_Relation,TDataStd_Expression)
 };
 
-
-
-
-
-
-
 #endif // _TDataStd_Relation_HeaderFile
index 6b25ec3..f703861 100644 (file)
 
 #include <TDataStd_Tick.hxx>
 
-#include <Standard_Dump.hxx>
-#include <Standard_GUID.hxx>
-#include <Standard_Type.hxx>
-#include <TDF_Attribute.hxx>
 #include <TDF_Label.hxx>
-#include <TDF_RelocationTable.hxx>
+#include <Standard_GUID.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(TDataStd_Tick,TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE(TDataStd_Tick,TDataStd_GenericEmpty)
 
 //=======================================================================
 //function : GetID
@@ -67,34 +63,6 @@ const Standard_GUID& TDataStd_Tick::ID () const
 }
 
 //=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) TDataStd_Tick::NewEmpty() const
-{ 
-  return new TDataStd_Tick(); 
-}
-
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-void TDataStd_Tick::Restore (const Handle(TDF_Attribute)& ) 
-{
-  // There are no fields in this attribute.
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-void TDataStd_Tick::Paste(const Handle(TDF_Attribute)& ,
-                         const Handle(TDF_RelocationTable)& ) const
-{
-  // There are no fields in this attribute.
-}    
-
-//=======================================================================
 //function : Dump
 //purpose  : 
 //=======================================================================
@@ -103,14 +71,3 @@ Standard_OStream& TDataStd_Tick::Dump (Standard_OStream& anOS) const
   anOS << "Tick";
   return anOS;
 }
-
-//=======================================================================
-//function : DumpJson
-//purpose  : 
-//=======================================================================
-void TDataStd_Tick::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
-{
-  OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
-
-  OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute)
-}
index 8427f8f..b09047b 100644 (file)
 #ifndef _TDataStd_Tick_HeaderFile
 #define _TDataStd_Tick_HeaderFile
 
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <TDF_Attribute.hxx>
+#include <TDataStd_GenericEmpty.hxx>
 #include <Standard_OStream.hxx>
 class Standard_GUID;
 class TDF_Label;
@@ -28,12 +25,12 @@ class TDF_RelocationTable;
 
 
 class TDataStd_Tick;
-DEFINE_STANDARD_HANDLE(TDataStd_Tick, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(TDataStd_Tick, TDataStd_GenericEmpty)
 
 //! Defines a boolean attribute.
 //! If it exists at a label - true,
 //! Otherwise - false.
-class TDataStd_Tick : public TDF_Attribute
+class TDataStd_Tick : public TDataStd_GenericEmpty
 {
 
 public:
@@ -52,31 +49,10 @@ public:
   
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
   
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& With) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& Into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
   Standard_EXPORT virtual Standard_OStream& Dump (Standard_OStream& anOS) const Standard_OVERRIDE;
 
-  //! Dumps the content of me into the stream
-  Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
-
-
-
-
-  DEFINE_STANDARD_RTTIEXT(TDataStd_Tick,TDF_Attribute)
-
-protected:
-
-
-
-
-private:
-
-
 
+  DEFINE_DERIVED_ATTRIBUTE(TDataStd_Tick, TDataStd_GenericEmpty)
 
 };
 
index b64dcf6..186fa82 100644 (file)
@@ -37,7 +37,7 @@
 #include <TopoDS.hxx>
 #include <TopoDS_Edge.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(TDataXtd_Axis,TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE(TDataXtd_Axis, TDataStd_GenericEmpty)
 
 //=======================================================================
 //function : GetID
@@ -120,31 +120,6 @@ const Standard_GUID& TDataXtd_Axis::ID() const {  return GetID(); }
 
 
 //=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) TDataXtd_Axis::NewEmpty () const
-{  
-  return new TDataXtd_Axis(); 
-}
-
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void TDataXtd_Axis::Restore (const Handle(TDF_Attribute)&) { }
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-
-void TDataXtd_Axis::Paste (const Handle(TDF_Attribute)&, const Handle(TDF_RelocationTable)&) const { }
-
-
-//=======================================================================
 //function : Dump
 //purpose  : 
 //=======================================================================
index 1fd6a24..34ded02 100644 (file)
 #ifndef _TDataXtd_Axis_HeaderFile
 #define _TDataXtd_Axis_HeaderFile
 
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <TDF_Attribute.hxx>
-#include <Standard_OStream.hxx>
-class Standard_GUID;
+#include <TDataStd_GenericEmpty.hxx>
 class TDF_Label;
 class gp_Lin;
-class TDF_Attribute;
-class TDF_RelocationTable;
-
 
 class TDataXtd_Axis;
-DEFINE_STANDARD_HANDLE(TDataXtd_Axis, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(TDataXtd_Axis, TDataStd_GenericEmpty)
 
 //! The basis to define an axis attribute.
 //!
 //! Warning: Use TDataXtd_Geometry  attribute  to retrieve  the
 //! gp_Lin of the Axis attribute
-class TDataXtd_Axis : public TDF_Attribute
+class TDataXtd_Axis : public TDataStd_GenericEmpty
 {
 
 public:
@@ -64,18 +56,10 @@ public:
   
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
   
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
   Standard_EXPORT virtual Standard_OStream& Dump (Standard_OStream& anOS) const Standard_OVERRIDE;
 
 
-
-
-  DEFINE_STANDARD_RTTIEXT(TDataXtd_Axis,TDF_Attribute)
+  DEFINE_DERIVED_ATTRIBUTE(TDataXtd_Axis, TDataStd_GenericEmpty)
 
 protected:
 
index a652cfa..97be1b5 100644 (file)
@@ -21,7 +21,7 @@
 #include <TDF_Label.hxx>
 #include <TDF_RelocationTable.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(TDataXtd_Placement,TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE(TDataXtd_Placement,TDataStd_GenericEmpty)
 
 //=======================================================================
 //function : GetID
@@ -68,38 +68,6 @@ const Standard_GUID& TDataXtd_Placement::ID () const { return GetID(); }
 
 
 //=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) TDataXtd_Placement::NewEmpty() const
-{ 
-  return new TDataXtd_Placement(); 
-}
-
-
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void TDataXtd_Placement::Restore (const Handle(TDF_Attribute)&) 
-{
-
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-
-void TDataXtd_Placement::Paste(const Handle(TDF_Attribute)&,
-                              const Handle(TDF_RelocationTable)&) const
-{
-
-}    
-
-//=======================================================================
 //function : Dump
 //purpose  : 
 //=======================================================================
index 0176acb..3ccc965 100644 (file)
 #ifndef _TDataXtd_Placement_HeaderFile
 #define _TDataXtd_Placement_HeaderFile
 
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <TDF_Attribute.hxx>
-#include <Standard_OStream.hxx>
-class Standard_GUID;
+#include <TDataStd_GenericEmpty.hxx>
 class TDF_Label;
-class TDF_Attribute;
-class TDF_RelocationTable;
-
 
 class TDataXtd_Placement;
-DEFINE_STANDARD_HANDLE(TDataXtd_Placement, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(TDataXtd_Placement, TDataStd_GenericEmpty)
 
 
-class TDataXtd_Placement : public TDF_Attribute
+class TDataXtd_Placement : public TDataStd_GenericEmpty
 {
 
 public:
@@ -51,18 +43,10 @@ public:
   
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
   
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& With) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& Into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
   Standard_EXPORT virtual Standard_OStream& Dump (Standard_OStream& anOS) const Standard_OVERRIDE;
 
 
-
-
-  DEFINE_STANDARD_RTTIEXT(TDataXtd_Placement,TDF_Attribute)
+  DEFINE_DERIVED_ATTRIBUTE(TDataXtd_Placement, TDataStd_GenericEmpty)
 
 protected:
 
index bd928a6..f9e583d 100644 (file)
@@ -35,7 +35,7 @@
 #include <TopoDS.hxx>
 #include <TopoDS_Face.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(TDataXtd_Plane,TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE(TDataXtd_Plane, TDataStd_GenericEmpty)
 
 //=======================================================================
 //function : GetID
@@ -119,31 +119,6 @@ TDataXtd_Plane::TDataXtd_Plane () { }
 const Standard_GUID& TDataXtd_Plane::ID() const { return GetID(); }
 
 //=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) TDataXtd_Plane::NewEmpty () const
-{  
-  return new TDataXtd_Plane(); 
-}
-
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void TDataXtd_Plane::Restore(const Handle(TDF_Attribute)&)  {}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-
-void TDataXtd_Plane::Paste (const Handle(TDF_Attribute)&, const Handle(TDF_RelocationTable)&) const { }
-
-
-//=======================================================================
 //function : Dump
 //purpose  : 
 //=======================================================================
index fef5d02..5945655 100644 (file)
 #ifndef _TDataXtd_Plane_HeaderFile
 #define _TDataXtd_Plane_HeaderFile
 
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <TDF_Attribute.hxx>
-#include <Standard_OStream.hxx>
-class Standard_GUID;
+#include <TDataStd_GenericEmpty.hxx>
 class TDF_Label;
 class gp_Pln;
-class TDF_Attribute;
-class TDF_RelocationTable;
 
 
 class TDataXtd_Plane;
-DEFINE_STANDARD_HANDLE(TDataXtd_Plane, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(TDataXtd_Plane, TDataStd_GenericEmpty)
 
 //! The basis to define a plane attribute.
 //! Warning:  Use TDataXtd_Geometry  attribute  to retrieve  the
 //! gp_Pln of the Plane attribute
-class TDataXtd_Plane : public TDF_Attribute
+class TDataXtd_Plane : public TDataStd_GenericEmpty
 {
 
 public:
@@ -63,18 +56,10 @@ public:
   
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
   
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& With) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& Into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
   Standard_EXPORT virtual Standard_OStream& Dump (Standard_OStream& anOS) const Standard_OVERRIDE;
 
 
-
-
-  DEFINE_STANDARD_RTTIEXT(TDataXtd_Plane,TDF_Attribute)
+  DEFINE_DERIVED_ATTRIBUTE(TDataXtd_Plane, TDataStd_GenericEmpty)
 
 protected:
 
index 6fc5eb6..d3fc872 100644 (file)
@@ -33,7 +33,7 @@
 #include <TopoDS.hxx>
 #include <TopoDS_Vertex.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(TDataXtd_Point,TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE(TDataXtd_Point, TDataStd_GenericEmpty)
 
 //=======================================================================
 //function : GetID
@@ -107,34 +107,6 @@ const Standard_GUID& TDataXtd_Point::ID() const { return GetID ();}
 
 
 //=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) TDataXtd_Point::NewEmpty () const
-{  
-  return new TDataXtd_Point(); 
-}
-
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void TDataXtd_Point::Restore(const Handle(TDF_Attribute)&) 
-{
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-
-void TDataXtd_Point::Paste (const Handle(TDF_Attribute)&, const Handle(TDF_RelocationTable)&) const 
-{
-}
-
-//=======================================================================
 //function : Dump
 //purpose  : 
 //=======================================================================
index c079383..fc27d8c 100644 (file)
 #ifndef _TDataXtd_Point_HeaderFile
 #define _TDataXtd_Point_HeaderFile
 
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <TDF_Attribute.hxx>
-#include <Standard_OStream.hxx>
-class Standard_GUID;
+#include <TDataStd_GenericEmpty.hxx>
 class TDF_Label;
 class gp_Pnt;
-class TDF_Attribute;
-class TDF_RelocationTable;
 
 
 class TDataXtd_Point;
-DEFINE_STANDARD_HANDLE(TDataXtd_Point, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(TDataXtd_Point, TDataStd_GenericEmpty)
 
 
 //! The basis to define a point attribute.
@@ -38,7 +31,7 @@ DEFINE_STANDARD_HANDLE(TDataXtd_Point, TDF_Attribute)
 //!
 //! Warning:  Use TDataXtd_Geometry  attribute  to retrieve the
 //! gp_Pnt of the Point attribute
-class TDataXtd_Point : public TDF_Attribute
+class TDataXtd_Point : public TDataStd_GenericEmpty
 {
 
 public:
@@ -66,18 +59,10 @@ public:
   
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
   
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& With) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& Into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
   Standard_EXPORT virtual Standard_OStream& Dump (Standard_OStream& anOS) const Standard_OVERRIDE;
 
 
-
-
-  DEFINE_STANDARD_RTTIEXT(TDataXtd_Point,TDF_Attribute)
+  DEFINE_DERIVED_ATTRIBUTE(TDataXtd_Point, TDataStd_GenericEmpty)
 
 protected:
 
index aafd1ae..8a89135 100644 (file)
@@ -31,7 +31,7 @@
 #include <TopoDS_Shape.hxx>
 #include <TopoDS_Solid.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(TDataXtd_Shape,TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE(TDataXtd_Shape, TDataStd_GenericEmpty)
 
 //=======================================================================
 //function : Find
@@ -146,35 +146,6 @@ const Standard_GUID& TDataXtd_Shape::ID() const
 
 
 //=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) TDataXtd_Shape::NewEmpty () const
-{  
-  return new TDataXtd_Shape(); 
-}
-
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void TDataXtd_Shape::Restore(const Handle(TDF_Attribute)& ) 
-{  
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-
-void TDataXtd_Shape::Paste (const Handle(TDF_Attribute)&,
-                          const Handle(TDF_RelocationTable)&) const
-{  
-}
-
-//=======================================================================
 //function : References
 //purpose  : 
 //=======================================================================
index 5764f34..bac9367 100644 (file)
 #ifndef _TDataXtd_Shape_HeaderFile
 #define _TDataXtd_Shape_HeaderFile
 
-#include <Standard.hxx>
-#include <Standard_Type.hxx>
-
-#include <TDF_Attribute.hxx>
-#include <Standard_Boolean.hxx>
-#include <Standard_OStream.hxx>
-class TDF_Label;
+#include <TDataStd_GenericEmpty.hxx>
 class TopoDS_Shape;
-class Standard_GUID;
-class TDF_Attribute;
-class TDF_RelocationTable;
 class TDF_DataSet;
 
 
 class TDataXtd_Shape;
-DEFINE_STANDARD_HANDLE(TDataXtd_Shape, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(TDataXtd_Shape, TDataStd_GenericEmpty)
 
 //! A Shape is associated in the framework with :
 //! a NamedShape attribute
-class TDataXtd_Shape : public TDF_Attribute
+class TDataXtd_Shape : public TDataStd_GenericEmpty
 {
 
 public:
@@ -68,20 +59,12 @@ public:
   
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
   
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
   Standard_EXPORT virtual void References (const Handle(TDF_DataSet)& DS) const Standard_OVERRIDE;
   
   Standard_EXPORT virtual Standard_OStream& Dump (Standard_OStream& anOS) const Standard_OVERRIDE;
 
 
-
-
-  DEFINE_STANDARD_RTTIEXT(TDataXtd_Shape,TDF_Attribute)
+  DEFINE_DERIVED_ATTRIBUTE(TDataXtd_Shape, TDataStd_GenericEmpty)
 
 protected:
 
index fa9d84e..47d05bc 100644 (file)
@@ -22,7 +22,7 @@
 #include <TDF_Label.hxx>
 #include <TDF_RelocationTable.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(XCAFDoc_Area,TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE(XCAFDoc_Area,TDataStd_Real,"xcaf","Area")
 
 //=======================================================================
 //function : Constructor
@@ -76,8 +76,7 @@ Handle(XCAFDoc_Area) XCAFDoc_Area::Set (const TDF_Label& L,const Standard_Real V
 
 void XCAFDoc_Area::Set (const Standard_Real V) 
 {
-  Backup();
-  myValue = V;
+  TDataStd_Real::Set(V);
 }
 
 //=======================================================================
@@ -85,7 +84,10 @@ void XCAFDoc_Area::Set (const Standard_Real V)
 //purpose  : 
 //=======================================================================
 
-Standard_Real XCAFDoc_Area::Get() const { return myValue; }
+Standard_Real XCAFDoc_Area::Get() const
+{
+  return TDataStd_Real::Get();
+}
 
 //=======================================================================
 //function : Get
@@ -103,40 +105,6 @@ Standard_Boolean XCAFDoc_Area::Get(const TDF_Label& label,Standard_Real& area)
 }
 
 //=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) XCAFDoc_Area::NewEmpty () const
-{  
-  return new XCAFDoc_Area(); 
-}
-
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_Area::Restore(const Handle(TDF_Attribute)& With) 
-{
-  Handle(XCAFDoc_Area) R = Handle(XCAFDoc_Area)::DownCast (With);
-  myValue = R->Get();
-}
-
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_Area::Paste (const Handle(TDF_Attribute)& Into,
-                          const Handle(TDF_RelocationTable)& /* RT */) const
-{ 
-  Handle(XCAFDoc_Area) R = Handle(XCAFDoc_Area)::DownCast (Into);
-  R->Set(myValue);
-}
-
-//=======================================================================
 //function : Dump
 //purpose  : 
 //=======================================================================
index 76de1b8..41ea1f3 100644 (file)
@@ -20,7 +20,7 @@
 #include <Standard_Type.hxx>
 
 #include <Standard_Real.hxx>
-#include <TDF_Attribute.hxx>
+#include <TDataStd_Real.hxx>
 #include <Standard_Boolean.hxx>
 #include <Standard_OStream.hxx>
 class Standard_GUID;
@@ -30,10 +30,10 @@ class TDF_RelocationTable;
 
 
 class XCAFDoc_Area;
-DEFINE_STANDARD_HANDLE(XCAFDoc_Area, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(XCAFDoc_Area, TDataStd_Real)
 
 //! attribute to store area
-class XCAFDoc_Area : public TDF_Attribute
+class XCAFDoc_Area : public TDataStd_Real
 {
 
 public:
@@ -59,32 +59,13 @@ public:
   //! returns false if no such attribute at the <label>
   Standard_EXPORT static Standard_Boolean Get (const TDF_Label& label, Standard_Real& area);
   
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& With) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& Into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
   Standard_EXPORT virtual Standard_OStream& Dump (Standard_OStream& anOS) const Standard_OVERRIDE;
   
   //! Dumps the content of me into the stream
   Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
 
 
-
-
-  DEFINE_STANDARD_RTTIEXT(XCAFDoc_Area,TDF_Attribute)
-
-protected:
-
-
-
-
-private:
-
-
-  Standard_Real myValue;
-
+  DEFINE_DERIVED_ATTRIBUTE(XCAFDoc_Area,TDataStd_Real)
 
 };
 
index 366f26c..7d00948 100644 (file)
@@ -25,7 +25,7 @@
 #include <TDF_ChildIDIterator.hxx>
 #include <XCAFDoc.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(XCAFDoc_ClippingPlaneTool, TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE(XCAFDoc_ClippingPlaneTool,TDataStd_GenericEmpty,"xcaf","ClippingPlaneTool")
 
 //=======================================================================
 //function : BaseLabel
@@ -308,35 +308,6 @@ const Standard_GUID& XCAFDoc_ClippingPlaneTool::ID() const
 }
 
 //=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_ClippingPlaneTool::Restore(const Handle(TDF_Attribute)& /*with*/)
-{
-}
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) XCAFDoc_ClippingPlaneTool::NewEmpty() const
-{
-  return new XCAFDoc_ClippingPlaneTool;
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_ClippingPlaneTool::Paste(const Handle(TDF_Attribute)& /*into*/,
-  const Handle(TDF_RelocationTable)& /*RT*/) const
-{
-}
-
-//=======================================================================
 //function : XCAFDoc_ClippingPlaneTool
 //purpose  : 
 //=======================================================================
@@ -344,15 +315,3 @@ void XCAFDoc_ClippingPlaneTool::Paste(const Handle(TDF_Attribute)& /*into*/,
 XCAFDoc_ClippingPlaneTool::XCAFDoc_ClippingPlaneTool()
 {
 }
-
-//=======================================================================
-//function : DumpJson
-//purpose  : 
-//=======================================================================
-void XCAFDoc_ClippingPlaneTool::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
-{
-  OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
-
-  OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute)
-}
-
index d0cb8a5..81e95c5 100644 (file)
 
 #include <gp_Pln.hxx>
 #include <TDF_LabelSequence.hxx>
+#include <TDataStd_GenericEmpty.hxx>
 
 class XCAFDoc_ClippingPlaneTool;
-DEFINE_STANDARD_HANDLE(XCAFDoc_ClippingPlaneTool, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(XCAFDoc_ClippingPlaneTool, TDataStd_GenericEmpty)
 
 //! Provide tool for management of ClippingPlane section of document.
 //! Provide tool to store, retrieve, remove and modify clipping planes.
 //! Each clipping plane consists of gp_Pln and its name.
-class XCAFDoc_ClippingPlaneTool : public TDF_Attribute
+class XCAFDoc_ClippingPlaneTool : public TDataStd_GenericEmpty
 {
 
 public:
@@ -100,19 +101,9 @@ public:
   
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
   
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with) Standard_OVERRIDE;
   
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
-  //! Dumps the content of me into the stream
-  Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
-
-
-
 
-  DEFINE_STANDARD_RTTIEXT(XCAFDoc_ClippingPlaneTool, TDF_Attribute)
+  DEFINE_DERIVED_ATTRIBUTE(XCAFDoc_ClippingPlaneTool, TDataStd_GenericEmpty)
 
 };
 #endif // _XCAFDoc_ClippingPlaneTool_HeaderFile
index 7a9e577..22bc754 100644 (file)
@@ -32,7 +32,7 @@
 #include <XCAFDoc_GraphNode.hxx>
 #include <XCAFDoc_ShapeTool.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(XCAFDoc_ColorTool,TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE(XCAFDoc_ColorTool,TDataStd_GenericEmpty,"xcaf","ColorTool")
 
 static Standard_Boolean XCAFDoc_ColorTool_AutoNaming = Standard_True;
 
@@ -504,37 +504,6 @@ const Standard_GUID& XCAFDoc_ColorTool::ID() const
 }
 
 //=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_ColorTool::Restore(const Handle(TDF_Attribute)& /*with*/) 
-{
-}
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) XCAFDoc_ColorTool::NewEmpty() const
-{
-  return new XCAFDoc_ColorTool;
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_ColorTool::Paste (const Handle(TDF_Attribute)& /*into*/,
-                              const Handle(TDF_RelocationTable)& /*RT*/) const
-{
-}
-
-/**/
-
-//=======================================================================
 //function : XCAFDoc_ColorTool
 //purpose  : 
 //=======================================================================
index 0169e8a..d8486ef 100644 (file)
@@ -19,7 +19,7 @@
 #include <Standard.hxx>
 #include <Standard_Type.hxx>
 
-#include <TDF_Attribute.hxx>
+#include <TDataStd_GenericEmpty.hxx>
 #include <Standard_Boolean.hxx>
 #include <TDF_LabelSequence.hxx>
 #include <XCAFDoc_ColorType.hxx>
@@ -34,14 +34,14 @@ class TDF_RelocationTable;
 
 
 class XCAFDoc_ColorTool;
-DEFINE_STANDARD_HANDLE(XCAFDoc_ColorTool, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(XCAFDoc_ColorTool, TDataStd_GenericEmpty)
 
 //! Provides tools to store and retrieve attributes (colors)
 //! of TopoDS_Shape in and from TDocStd_Document
 //! A Document is intended to hold different
 //! attributes of ONE shape and it's sub-shapes
 //! Provide tools for management of Colors section of document.
-class XCAFDoc_ColorTool : public TDF_Attribute
+class XCAFDoc_ColorTool : public TDataStd_GenericEmpty
 {
 public:
   //! Returns current auto-naming mode; TRUE by default.
@@ -242,24 +242,11 @@ public:
   
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
   
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
   //! Dumps the content of me into the stream
   Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
 
 
-
-
-  DEFINE_STANDARD_RTTIEXT(XCAFDoc_ColorTool,TDF_Attribute)
-
-protected:
-
-
-
+  DEFINE_DERIVED_ATTRIBUTE(XCAFDoc_ColorTool,TDataStd_GenericEmpty)
 
 private:
 
index f2f9045..8a5da13 100644 (file)
@@ -40,7 +40,7 @@
 #include <XCAFDoc_ShapeTool.hxx>
 
 
-IMPLEMENT_STANDARD_RTTIEXT(XCAFDoc_DimTolTool,TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE(XCAFDoc_DimTolTool,TDataStd_GenericEmpty,"xcaf","DimTolTool")
 
 //=======================================================================
 //function : XCAFDoc_DimTolTool
@@ -964,37 +964,6 @@ const Standard_GUID& XCAFDoc_DimTolTool::ID() const
 
 
 //=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_DimTolTool::Restore(const Handle(TDF_Attribute)& /*with*/) 
-{
-}
-
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) XCAFDoc_DimTolTool::NewEmpty() const
-{
-  return new XCAFDoc_DimTolTool;
-}
-
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_DimTolTool::Paste(const Handle(TDF_Attribute)& /*into*/,
-                               const Handle(TDF_RelocationTable)& /*RT*/) const
-{
-}
-
-//=======================================================================
 //function : GetGDTPresentations
 //purpose  : 
 //=======================================================================
index 0107e59..ae511ab 100644 (file)
@@ -19,7 +19,7 @@
 #include <Standard.hxx>
 #include <Standard_Type.hxx>
 
-#include <TDF_Attribute.hxx>
+#include <TDataStd_GenericEmpty.hxx>
 #include <Standard_Boolean.hxx>
 #include <TDF_LabelSequence.hxx>
 #include <Standard_Integer.hxx>
@@ -37,11 +37,11 @@ class TDF_RelocationTable;
 
 
 class XCAFDoc_DimTolTool;
-DEFINE_STANDARD_HANDLE(XCAFDoc_DimTolTool, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(XCAFDoc_DimTolTool, TDataStd_GenericEmpty)
 
 //! Attribute containing GD&T section of XCAF document.
 //! Provide tools for GD&T section management.
-class XCAFDoc_DimTolTool : public TDF_Attribute
+class XCAFDoc_DimTolTool : public TDataStd_GenericEmpty
 {
 
 public:
@@ -250,24 +250,13 @@ public:
   Standard_EXPORT void Unlock(const TDF_Label& theViewL) const;
     
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
+
   
   //! Dumps the content of me into the stream
   Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
 
 
-
-
-  DEFINE_STANDARD_RTTIEXT(XCAFDoc_DimTolTool,TDF_Attribute)
-
-protected:
-
-
+  DEFINE_DERIVED_ATTRIBUTE(XCAFDoc_DimTolTool,TDataStd_GenericEmpty)
 
 
 private:
index f25f12b..a11e340 100644 (file)
@@ -32,8 +32,7 @@
 #include <TNaming_Tool.hxx>
 #include <TDataStd_Name.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(XCAFDoc_Dimension,TDF_Attribute)
-
+IMPLEMENT_DERIVED_ATTRIBUTE(XCAFDoc_Dimension,TDataStd_GenericEmpty)
 enum ChildLab
 {
   ChildLab_Type = 1,
@@ -430,45 +429,3 @@ const Standard_GUID& XCAFDoc_Dimension::ID() const
 {
   return GetID();
 }
-
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_Dimension::Restore(const Handle(TDF_Attribute)& /*With*/) 
-{
-}
-
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) XCAFDoc_Dimension::NewEmpty() const
-{
-  return new XCAFDoc_Dimension();
-}
-
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_Dimension::Paste(const Handle(TDF_Attribute)& /*Into*/,
-                           const Handle(TDF_RelocationTable)& /*RT*/) const
-{
-}
-
-//=======================================================================
-//function : DumpJson
-//purpose  : 
-//=======================================================================
-void XCAFDoc_Dimension::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
-{
-  OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
-
-  OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute)
-}
index 4d3c1aa..41bfafd 100644 (file)
@@ -19,7 +19,7 @@
 #include <Standard.hxx>
 #include <Standard_Type.hxx>
 
-#include <TDF_Attribute.hxx>
+#include <TDataStd_GenericEmpty.hxx>
 class Standard_GUID;
 class TDF_Label;
 class TDF_Attribute;
@@ -32,12 +32,12 @@ class XCAFDimTolObjects_DimensionObject;
 #endif
 
 class XCAFDoc_Dimension;
-DEFINE_STANDARD_HANDLE(XCAFDoc_Dimension, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(XCAFDoc_Dimension, TDataStd_GenericEmpty)
 
 //! Attribute that identifies a dimension in the GD&T table.
 //! Its parent label is used as a container to store data provided 
 //! by XCAFDimTolObjects_DimensionObject.
-class XCAFDoc_Dimension : public TDF_Attribute
+class XCAFDoc_Dimension : public TDataStd_GenericEmpty
 {
 
 public:
@@ -50,23 +50,15 @@ public:
   
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
   
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& With) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& Into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
   //! Updates parent's label and its sub-labels with data taken from theDimensionObject.
   //! Old data associated with the label will be lost.
   Standard_EXPORT void SetObject (const Handle(XCAFDimTolObjects_DimensionObject)& theDimensionObject);
   
-  //! Returns dimension object data taken from the paren's label and its sub-labels.
+  //! Returns dimension object data taken from the parent's label and its sub-labels.
   Standard_EXPORT Handle(XCAFDimTolObjects_DimensionObject) GetObject() const;
   
-  //! Dumps the content of me into the stream
-  Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
 
-  DEFINE_STANDARD_RTTIEXT(XCAFDoc_Dimension,TDF_Attribute)
+  DEFINE_DERIVED_ATTRIBUTE(XCAFDoc_Dimension,TDataStd_GenericEmpty)
 
 };
 
index 5ed4223..5a662ca 100644 (file)
@@ -35,7 +35,7 @@
 #include <XCAFDoc_ViewTool.hxx>
 #include <XCAFDoc_VisMaterialTool.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(XCAFDoc_DocumentTool,TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE(XCAFDoc_DocumentTool,TDataStd_GenericEmpty,"xcaf","DocumentTool")
 
 //=======================================================================
 //function : GetID
@@ -339,36 +339,15 @@ const Standard_GUID& XCAFDoc_DocumentTool::ID() const
   return GetID();
 }
 
-
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_DocumentTool::Restore(const Handle(TDF_Attribute)& /* with */) 
-{
-}
-
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) XCAFDoc_DocumentTool::NewEmpty() const
-{
-  return new XCAFDoc_DocumentTool;
-}
-
-
 //=======================================================================
-//function : Paste
+//function : AfterRetrieval
 //purpose  : 
 //=======================================================================
 
-void XCAFDoc_DocumentTool::Paste (const Handle(TDF_Attribute)& /* into */,
-                                 const Handle(TDF_RelocationTable)& /* RT */) const
+Standard_Boolean XCAFDoc_DocumentTool::AfterRetrieval (const Standard_Boolean /* forceIt */)
 {
+  Init();
+  return Standard_True;
 }
 
 
@@ -404,14 +383,3 @@ Standard_Boolean XCAFDoc_DocumentTool::IsXCAFDocument(const  Handle(TDocStd_Docu
   Handle(TDataStd_TreeNode) aRootNode;
   return RootL.FindAttribute (aRefGuid, aRootNode);
 }
-
-//=======================================================================
-//function : DumpJson
-//purpose  : 
-//=======================================================================
-void XCAFDoc_DocumentTool::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
-{
-  OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
-
-  OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute)
-}
index 0690323..65a6c7a 100644 (file)
@@ -19,7 +19,7 @@
 #include <Standard.hxx>
 #include <Standard_Type.hxx>
 
-#include <TDF_Attribute.hxx>
+#include <TDataStd_GenericEmpty.hxx>
 #include <Standard_Boolean.hxx>
 class Standard_GUID;
 class TDF_Label;
@@ -38,12 +38,12 @@ class TDF_RelocationTable;
 
 
 class XCAFDoc_DocumentTool;
-DEFINE_STANDARD_HANDLE(XCAFDoc_DocumentTool, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(XCAFDoc_DocumentTool, TDataStd_GenericEmpty)
 
 //! Defines sections structure of an XDE document.
 //! attribute marking CAF document as being DECAF document.
 //! Creates the sections structure of the document.
-class XCAFDoc_DocumentTool : public TDF_Attribute
+class XCAFDoc_DocumentTool : public TDataStd_GenericEmpty
 {
 
 public:
@@ -129,17 +129,11 @@ public:
   
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
   
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with) Standard_OVERRIDE;
+  //! To init this derived attribute after the attribute restore using the base restore-methods
+  Standard_EXPORT Standard_Boolean AfterRetrieval (const Standard_Boolean forceIt = Standard_False) Standard_OVERRIDE;
   
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  //! Dumps the content of me into the stream
-  Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
-
-  DEFINE_STANDARD_RTTIEXT(XCAFDoc_DocumentTool,TDF_Attribute)
 
+  DEFINE_DERIVED_ATTRIBUTE(XCAFDoc_DocumentTool,TDataStd_GenericEmpty)
 };
 
 #endif // _XCAFDoc_DocumentTool_HeaderFile
index 8e9c0ea..af01528 100644 (file)
@@ -29,7 +29,7 @@
 #include <TCollection_ExtendedString.hxx>
 #include <TDataStd_Name.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(XCAFDoc_GeomTolerance,TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE(XCAFDoc_GeomTolerance,TDataStd_GenericEmpty)
 
 enum ChildLab
 {
@@ -400,45 +400,3 @@ const Standard_GUID& XCAFDoc_GeomTolerance::ID() const
 {
   return GetID();
 }
-
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_GeomTolerance::Restore(const Handle(TDF_Attribute)& /*With*/) 
-{
-}
-
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) XCAFDoc_GeomTolerance::NewEmpty() const
-{
-  return new XCAFDoc_GeomTolerance();
-}
-
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_GeomTolerance::Paste(const Handle(TDF_Attribute)& /*Into*/,
-                           const Handle(TDF_RelocationTable)& /*RT*/) const
-{
-}
-
-//=======================================================================
-//function : DumpJson
-//purpose  : 
-//=======================================================================
-void XCAFDoc_GeomTolerance::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
-{
-  OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
-
-  OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute)
-}
index cc1b348..77a587b 100644 (file)
@@ -19,7 +19,7 @@
 #include <Standard.hxx>
 #include <Standard_Type.hxx>
 
-#include <TDF_Attribute.hxx>
+#include <TDataStd_GenericEmpty.hxx>
 class Standard_GUID;
 class TDF_Label;
 class TDF_Attribute;
@@ -32,10 +32,10 @@ class XCAFDimTolObjects_GeomToleranceObject;
 #endif
 
 class XCAFDoc_GeomTolerance;
-DEFINE_STANDARD_HANDLE(XCAFDoc_GeomTolerance, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(XCAFDoc_GeomTolerance, TDataStd_GenericEmpty)
 
 //! Attribute to store dimension and tolerance
-class XCAFDoc_GeomTolerance : public TDF_Attribute
+class XCAFDoc_GeomTolerance : public TDataStd_GenericEmpty
 {
 
 public:
@@ -58,17 +58,8 @@ public:
   
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
   
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& With) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& Into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
-  //! Dumps the content of me into the stream
-  Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
-
-  DEFINE_STANDARD_RTTIEXT(XCAFDoc_GeomTolerance,TDF_Attribute)
 
+  DEFINE_DERIVED_ATTRIBUTE(XCAFDoc_GeomTolerance,TDataStd_GenericEmpty)
 };
 
 #endif
index 95bf9f5..d633539 100644 (file)
@@ -31,7 +31,7 @@
 #include <XCAFDoc_GraphNode.hxx>
 #include <XCAFDoc_ShapeTool.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(XCAFDoc_LayerTool,TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE(XCAFDoc_LayerTool,TDataStd_GenericEmpty,"xcaf","LayerTool")
 
 //=======================================================================
 //function : Constructor
@@ -590,38 +590,6 @@ const Standard_GUID& XCAFDoc_LayerTool::ID() const
   return GetID();
 }
 
-
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_LayerTool::Restore(const Handle(TDF_Attribute)& /* with */) 
-{
-}
-
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) XCAFDoc_LayerTool::NewEmpty() const
-{
-  return new XCAFDoc_LayerTool;
-}
-
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_LayerTool::Paste(const Handle(TDF_Attribute)& /* into */,
-                             const Handle(TDF_RelocationTable)& /* RT */) const
-{
-}
-
 //=======================================================================
 //function : DumpJson
 //purpose  : 
@@ -633,4 +601,4 @@ void XCAFDoc_LayerTool::DumpJson (Standard_OStream& theOStream, Standard_Integer
   OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute)
 
   OCCT_DUMP_FIELD_VALUES_DUMPED (theOStream, theDepth, myShapeTool.get())
-}
+}
\ No newline at end of file
index b3428d3..6e85a90 100644 (file)
@@ -19,7 +19,7 @@
 #include <Standard.hxx>
 #include <Standard_Type.hxx>
 
-#include <TDF_Attribute.hxx>
+#include <TDataStd_GenericEmpty.hxx>
 #include <Standard_Boolean.hxx>
 #include <TDF_LabelSequence.hxx>
 #include <TColStd_HSequenceOfExtendedString.hxx>
@@ -33,14 +33,14 @@ class TDF_RelocationTable;
 
 
 class XCAFDoc_LayerTool;
-DEFINE_STANDARD_HANDLE(XCAFDoc_LayerTool, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(XCAFDoc_LayerTool, TDataStd_GenericEmpty)
 
 //! Provides tools to store and retrieve attributes (Layers)
 //! of TopoDS_Shape in and from TDocStd_Document
 //! A Document is intended to hold different
 //! attributes of ONE shape and it's sub-shapes
 //! Provide tools for management of Layers section of document.
-class XCAFDoc_LayerTool : public TDF_Attribute
+class XCAFDoc_LayerTool : public TDataStd_GenericEmpty
 {
 
 public:
@@ -184,24 +184,12 @@ public:
   Standard_EXPORT Handle(TColStd_HSequenceOfExtendedString) GetLayers (const TopoDS_Shape& Sh);
   
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
+
   //! Dumps the content of me into the stream
   Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
 
 
-
-
-  DEFINE_STANDARD_RTTIEXT(XCAFDoc_LayerTool,TDF_Attribute)
-
-protected:
-
-
+  DEFINE_DERIVED_ATTRIBUTE(XCAFDoc_LayerTool,TDataStd_GenericEmpty)
 
 
 private:
index f50676b..242db45 100644 (file)
@@ -27,7 +27,7 @@
 #include <XCAFDoc_Material.hxx>
 #include <XCAFDoc_ShapeTool.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(XCAFDoc_MaterialTool,TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE(XCAFDoc_MaterialTool,TDataStd_GenericEmpty,"xcaf","MaterialTool")
 
 //=======================================================================
 //function : XCAFDoc_MaterialTool
@@ -234,38 +234,6 @@ const Standard_GUID& XCAFDoc_MaterialTool::ID() const
   return GetID();
 }
 
-
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_MaterialTool::Restore(const Handle(TDF_Attribute)& /*with*/) 
-{
-}
-
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) XCAFDoc_MaterialTool::NewEmpty() const
-{
-  return new XCAFDoc_MaterialTool;
-}
-
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_MaterialTool::Paste(const Handle(TDF_Attribute)& /*into*/,
-                                 const Handle(TDF_RelocationTable)& /*RT*/) const
-{
-}
-
 //=======================================================================
 //function : DumpJson
 //purpose  : 
index 0775186..f283d7c 100644 (file)
@@ -19,7 +19,7 @@
 #include <Standard.hxx>
 #include <Standard_Type.hxx>
 
-#include <TDF_Attribute.hxx>
+#include <TDataStd_GenericEmpty.hxx>
 #include <Standard_Boolean.hxx>
 #include <TDF_LabelSequence.hxx>
 #include <Standard_Real.hxx>
@@ -32,14 +32,14 @@ class TDF_RelocationTable;
 
 
 class XCAFDoc_MaterialTool;
-DEFINE_STANDARD_HANDLE(XCAFDoc_MaterialTool, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(XCAFDoc_MaterialTool, TDataStd_GenericEmpty)
 
 //! Provides tools to store and retrieve attributes (materials)
 //! of TopoDS_Shape in and from TDocStd_Document
 //! A Document is intended to hold different
 //! attributes of ONE shape and it's sub-shapes
 //! Provide tools for management of Materialss section of document.
-class XCAFDoc_MaterialTool : public TDF_Attribute
+class XCAFDoc_MaterialTool : public TDataStd_GenericEmpty
 {
 
 public:
@@ -85,24 +85,12 @@ public:
   Standard_EXPORT static Standard_Real GetDensityForShape (const TDF_Label& ShapeL);
   
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
+
   //! Dumps the content of me into the stream
   Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
 
 
-
-
-  DEFINE_STANDARD_RTTIEXT(XCAFDoc_MaterialTool,TDF_Attribute)
-
-protected:
-
-
+  DEFINE_DERIVED_ATTRIBUTE(XCAFDoc_MaterialTool,TDataStd_GenericEmpty)
 
 
 private:
index d96341d..a48c99c 100644 (file)
@@ -18,7 +18,7 @@
 #include <Standard_Type.hxx>
 #include <TCollection_ExtendedString.hxx>
 #include <OSD_File.hxx>
-#include <TDF_Attribute.hxx>
+#include <TDF_DerivedAttribute.hxx>
 #include <TDF_LabelSequence.hxx>
 #include <XCAFNoteObjects_NoteObject.hxx>
 
index 495d74f..4648f98 100644 (file)
@@ -16,7 +16,7 @@
 #include <Standard_GUID.hxx>
 #include <TDF_Label.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(XCAFDoc_NoteBalloon, XCAFDoc_NoteComment)
+IMPLEMENT_DERIVED_ATTRIBUTE(XCAFDoc_NoteBalloon, XCAFDoc_NoteComment)
 
 // =======================================================================
 // function : GetID
@@ -79,13 +79,3 @@ XCAFDoc_NoteBalloon::ID() const
 {
   return GetID();
 }
-
-// =======================================================================
-// function : NewEmpty
-// purpose  :
-// =======================================================================
-Handle(TDF_Attribute)
-XCAFDoc_NoteBalloon::NewEmpty() const
-{
-  return new XCAFDoc_NoteBalloon();
-}
index 7a48c16..eabd031 100644 (file)
@@ -22,7 +22,7 @@ class XCAFDoc_NoteBalloon : public XCAFDoc_NoteComment
 {
 public:
 
-  DEFINE_STANDARD_RTTIEXT(XCAFDoc_NoteBalloon, XCAFDoc_NoteComment)
+  DEFINE_DERIVED_ATTRIBUTE(XCAFDoc_NoteBalloon, XCAFDoc_NoteComment)
 
   //! Returns default attribute GUID
   Standard_EXPORT static const Standard_GUID& GetID();
@@ -47,8 +47,6 @@ public:
 
   // Overrides TDF_Attribute virtuals
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-
 };
 
 DEFINE_STANDARD_HANDLE(XCAFDoc_NoteBalloon, XCAFDoc_NoteComment)
index bdbecfd..45e3bb9 100644 (file)
@@ -39,7 +39,7 @@ namespace {
 
 }
 
-IMPLEMENT_STANDARD_RTTIEXT(XCAFDoc_NotesTool, TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE(XCAFDoc_NotesTool, XCAFDoc_NoteComment)
 
 enum NotesTool_RootLabels
 {
@@ -1020,35 +1020,6 @@ XCAFDoc_NotesTool::ID() const
 }
 
 // =======================================================================
-// function : NewEmpty
-// purpose  :
-// =======================================================================
-Handle(TDF_Attribute)
-XCAFDoc_NotesTool::NewEmpty() const
-{
-  return new XCAFDoc_NotesTool();
-}
-
-// =======================================================================
-// function : Restore
-// purpose  :
-// =======================================================================
-void
-XCAFDoc_NotesTool::Restore(const Handle(TDF_Attribute)& /*theAttr*/)
-{
-}
-
-// =======================================================================
-// function : Paste
-// purpose  :
-// =======================================================================
-void
-XCAFDoc_NotesTool::Paste(const Handle(TDF_Attribute)&       /*theAttrInto*/,
-                         const Handle(TDF_RelocationTable)& /*theRT*/) const
-{
-}
-
-// =======================================================================
 // function : Dump
 // purpose  :
 // =======================================================================
@@ -1061,14 +1032,3 @@ XCAFDoc_NotesTool::Dump(Standard_OStream& theOS) const
     ;
   return theOS;
 }
-
-//=======================================================================
-//function : DumpJson
-//purpose  : 
-//=======================================================================
-void XCAFDoc_NotesTool::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
-{
-  OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
-
-  OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute)
-}
index 1163ce8..207a06a 100644 (file)
@@ -16,7 +16,7 @@
 
 #include <Standard.hxx>
 #include <Standard_Type.hxx>
-#include <TDF_Attribute.hxx>
+#include <TDataStd_GenericEmpty.hxx>
 #include <TDF_LabelSequence.hxx>
 
 class OSD_File;
@@ -73,11 +73,11 @@ class XCAFDoc_AssemblyItemRef;
 //!   }
 //! }
 //! \endcode
-class XCAFDoc_NotesTool : public TDF_Attribute
+class XCAFDoc_NotesTool : public TDataStd_GenericEmpty
 {
 public:
 
-  DEFINE_STANDARD_RTTIEXT(XCAFDoc_NotesTool, TDF_Attribute)
+  DEFINE_DERIVED_ATTRIBUTE(XCAFDoc_NotesTool, TDataStd_GenericEmpty)
 
   //! Returns default attribute GUID
   Standard_EXPORT static const Standard_GUID& GetID();
@@ -504,17 +504,10 @@ public:
 
   // Overrides TDF_Attribute virtuals
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  Standard_EXPORT void Restore(const Handle(TDF_Attribute)& theAttrFrom) Standard_OVERRIDE;
-  Standard_EXPORT void Paste(const Handle(TDF_Attribute)&       theAttrInto, 
-                             const Handle(TDF_RelocationTable)& theRT) const Standard_OVERRIDE;
   Standard_EXPORT Standard_OStream& Dump(Standard_OStream& theOS) const Standard_OVERRIDE;
   
-  //! Dumps the content of me into the stream
-  Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
-
 };
 
-DEFINE_STANDARD_HANDLE(XCAFDoc_NotesTool, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(XCAFDoc_NotesTool, TDataStd_GenericEmpty)
 
 #endif // _XCAFDoc_NotesTool_HeaderFile
index 1d6677f..5cade76 100644 (file)
@@ -53,7 +53,7 @@
 #include <XCAFDoc_Location.hxx>
 #include <XCAFDoc_ShapeMapTool.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(XCAFDoc_ShapeTool,TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE(XCAFDoc_ShapeTool,TDataStd_GenericEmpty,"xcaf","ShapeTool")
 
 static Standard_Boolean theAutoNaming = Standard_True;
 
@@ -109,35 +109,6 @@ const Standard_GUID& XCAFDoc_ShapeTool::ID() const
   return GetID();
 }
 
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_ShapeTool::Restore(const Handle(TDF_Attribute)& /*with*/) 
-{
-}
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-
-Handle(TDF_Attribute) XCAFDoc_ShapeTool::NewEmpty() const
-{
-  return new XCAFDoc_ShapeTool;
-}
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-
-void XCAFDoc_ShapeTool::Paste (const Handle(TDF_Attribute)& /*into*/,
-                              const Handle(TDF_RelocationTable)& /*RT*/) const
-{
-}
-
 // Auxiliary methods //////////////////////////////////////////////////
 
 //=======================================================================
index 90caaf1..8980edb 100644 (file)
@@ -22,7 +22,7 @@
 #include <XCAFDoc_DataMapOfShapeLabel.hxx>
 #include <Standard_Boolean.hxx>
 #include <TDataStd_NamedData.hxx>
-#include <TDF_Attribute.hxx>
+#include <TDataStd_GenericEmpty.hxx>
 #include <TDF_LabelMap.hxx>
 #include <TDF_LabelSequence.hxx>
 #include <Standard_Integer.hxx>
@@ -40,7 +40,7 @@ class XCAFDoc_GraphNode;
 
 
 class XCAFDoc_ShapeTool;
-DEFINE_STANDARD_HANDLE(XCAFDoc_ShapeTool, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(XCAFDoc_ShapeTool, TDataStd_GenericEmpty)
 
 //! A tool to store shapes in an XDE
 //! document in the form of assembly structure, and to maintain this structure.
@@ -103,7 +103,7 @@ DEFINE_STANDARD_HANDLE(XCAFDoc_ShapeTool, TDF_Attribute)
 //! aLabel = STool->FindShape(aShape [,findInstance]);
 //! if (aLabel.IsNull())
 //! { ... no label found for this shape ... }
-class XCAFDoc_ShapeTool : public TDF_Attribute
+class XCAFDoc_ShapeTool : public TDataStd_GenericEmpty
 {
 
 public:
@@ -332,12 +332,6 @@ public:
   
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
   
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
   //! Returns True if the label is a label of external references, i.e.
   //! there are some reference on the no-step files, which are
   //! described in document only their names
@@ -429,11 +423,8 @@ public:
   //! Dumps the content of me into the stream
   Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
 
-  DEFINE_STANDARD_RTTIEXT(XCAFDoc_ShapeTool,TDF_Attribute)
-
-protected:
-
 
+  DEFINE_DERIVED_ATTRIBUTE(XCAFDoc_ShapeTool,TDataStd_GenericEmpty)
 
 
 private:
index 9e96db2..53b0125 100644 (file)
@@ -29,7 +29,7 @@
 #include <XCAFDoc.hxx>
 #include <XCAFView_Object.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(XCAFDoc_View, TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE(XCAFDoc_View, TDataStd_GenericEmpty)
 
 enum ChildLab
 {
@@ -285,42 +285,3 @@ const Standard_GUID& XCAFDoc_View::ID() const
 {
   return GetID();
 }
-
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-void XCAFDoc_View::Restore(const Handle(TDF_Attribute)& /*With*/) 
-{
-}
-
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) XCAFDoc_View::NewEmpty() const
-{
-  return new XCAFDoc_View();
-}
-
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-void XCAFDoc_View::Paste(const Handle(TDF_Attribute)& /*Into*/,
-                         const Handle(TDF_RelocationTable)& /*RT*/) const
-{
-}
-
-//=======================================================================
-//function : DumpJson
-//purpose  : 
-//=======================================================================
-void XCAFDoc_View::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
-{
-  OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
-
-  OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute)
-}
index a3a12b3..ca2aad9 100644 (file)
@@ -19,7 +19,7 @@
 #include <Standard.hxx>
 #include <Standard_Type.hxx>
 
-#include <TDF_Attribute.hxx>
+#include <TDataStd_GenericEmpty.hxx>
 class Standard_GUID;
 class TDF_Label;
 class TDF_Attribute;
@@ -32,10 +32,10 @@ class XCAFView_Object;
 #endif
 
 class XCAFDoc_View;
-DEFINE_STANDARD_HANDLE(XCAFDoc_View, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(XCAFDoc_View, TDataStd_GenericEmpty)
 
 //! Attribute to store view
-class XCAFDoc_View : public TDF_Attribute
+class XCAFDoc_View : public TDataStd_GenericEmpty
 {
 
 public:
@@ -48,12 +48,6 @@ public:
   
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
   
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& With) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& Into, const Handle(TDF_RelocationTable)& RT) const Standard_OVERRIDE;
-  
   //! Updates parent's label and its sub-labels with data taken from theViewObject.
   //! Old data associated with the label will be lost.
   Standard_EXPORT void SetObject(const Handle(XCAFView_Object)& theViewObject);
@@ -61,10 +55,8 @@ public:
   //! Returns view object data taken from the paren's label and its sub-labels.
   Standard_EXPORT Handle(XCAFView_Object) GetObject() const;
   
-  //! Dumps the content of me into the stream
-  Standard_EXPORT virtual void DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth = -1) const Standard_OVERRIDE;
 
-  DEFINE_STANDARD_RTTIEXT(XCAFDoc_View, TDF_Attribute)
+  DEFINE_DERIVED_ATTRIBUTE(XCAFDoc_View, TDataStd_GenericEmpty)
 
 };
 
index 8a6269a..58c5f8b 100644 (file)
@@ -29,7 +29,7 @@
 #include <XCAFDoc_ShapeTool.hxx>
 #include <XCAFDoc_View.hxx>
 
-IMPLEMENT_STANDARD_RTTIEXT(XCAFDoc_ViewTool, TDF_Attribute)
+IMPLEMENT_DERIVED_ATTRIBUTE_WITH_TYPE(XCAFDoc_ViewTool,TDataStd_GenericEmpty,"xcaf","ViewTool")
 
 //=======================================================================
 //function : XCAFDoc_ViewTool
@@ -761,43 +761,3 @@ const Standard_GUID& XCAFDoc_ViewTool::ID() const
 {
   return GetID();
 }
-
-
-//=======================================================================
-//function : Restore
-//purpose  : 
-//=======================================================================
-void XCAFDoc_ViewTool::Restore(const Handle(TDF_Attribute)& /*with*/) 
-{
-}
-
-
-//=======================================================================
-//function : NewEmpty
-//purpose  : 
-//=======================================================================
-Handle(TDF_Attribute) XCAFDoc_ViewTool::NewEmpty() const
-{
-  return new XCAFDoc_ViewTool;
-}
-
-
-//=======================================================================
-//function : Paste
-//purpose  : 
-//=======================================================================
-void XCAFDoc_ViewTool::Paste(const Handle(TDF_Attribute)& /*into*/,
-                             const Handle(TDF_RelocationTable)& /*RT*/) const
-{
-}
-
-//=======================================================================
-//function : DumpJson
-//purpose  : 
-//=======================================================================
-void XCAFDoc_ViewTool::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
-{
-  OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
-
-  OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute)
-}
index ea1a3b0..61908e5 100644 (file)
@@ -19,7 +19,7 @@
 #include <Standard.hxx>
 #include <Standard_Type.hxx>
 
-#include <TDF_Attribute.hxx>
+#include <TDataStd_GenericEmpty.hxx>
 #include <Standard_Boolean.hxx>
 #include <TDF_LabelSequence.hxx>
 #include <Standard_Integer.hxx>
@@ -32,7 +32,7 @@ class TDF_Attribute;
 
 
 class XCAFDoc_ViewTool;
-DEFINE_STANDARD_HANDLE(XCAFDoc_ViewTool, TDF_Attribute)
+DEFINE_STANDARD_HANDLE(XCAFDoc_ViewTool, TDataStd_GenericEmpty)
 
 //! Provides tools to store and retrieve Views
 //! in and from TDocStd_Document
@@ -40,7 +40,7 @@ DEFINE_STANDARD_HANDLE(XCAFDoc_ViewTool, TDF_Attribute)
 //! with all information about camera and view window.
 //! Also each view contain information of displayed shapes and GDTs
 //! as sets of shape and GDT labels.
-class XCAFDoc_ViewTool : public TDF_Attribute
+class XCAFDoc_ViewTool : public TDataStd_GenericEmpty
 {
 
 public:
@@ -138,17 +138,8 @@ public:
   Standard_EXPORT void Unlock(const TDF_Label& theViewL) const;
   
   Standard_EXPORT const Standard_GUID& ID() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Restore (const Handle(TDF_Attribute)& with) Standard_OVERRIDE;
-  
-  Standard_EXPORT Handle(TDF_Attribute) NewEmpty() const Standard_OVERRIDE;
-  
-  Standard_EXPORT void Paste (const Handle(TDF_Attribute)& into, const Handle(TDF_