occt: master c99ad5d7

Author Committer Branch Timestamp Parent
abv abv master 2020-06-19 20:12:17 master 59e11a2f
Affected Issues  0030773: Application Framework - To allow to inherit existing attributes to reuse persistence mechanisms
Changeset 0030773: Application Framework - To allow to inherit existing attributes to reuse persistence mechanisms

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.
mod - src/BinMDataStd/BinMDataStd.cxx Diff File
mod - src/BinMDataStd/BinMDataStd.hxx Diff File
rm - src/BinMDataStd/BinMDataStd_CommentDriver.cxx Diff File
rm - src/BinMDataStd/BinMDataStd_CommentDriver.hxx Diff File
rm - src/BinMDataStd/BinMDataStd_DirectoryDriver.cxx Diff File
rm - src/BinMDataStd/BinMDataStd_DirectoryDriver.hxx Diff File
mod - src/BinMDataStd/BinMDataStd_IntegerDriver.cxx Diff File
rm - src/BinMDataStd/BinMDataStd_NoteBookDriver.cxx Diff File
rm - src/BinMDataStd/BinMDataStd_NoteBookDriver.hxx Diff File
rm - src/BinMDataStd/BinMDataStd_RelationDriver.cxx Diff File
rm - src/BinMDataStd/BinMDataStd_RelationDriver.hxx Diff File
rm - src/BinMDataStd/BinMDataStd_TickDriver.hxx Diff File
mod - src/BinMDataStd/FILES Diff File
mod - src/BinMDataXtd/BinMDataXtd.cxx Diff File
mod - src/BinMDataXtd/BinMDataXtd.hxx Diff File
rm - src/BinMDataXtd/BinMDataXtd_AxisDriver.cxx Diff File
rm - src/BinMDataXtd/BinMDataXtd_PlacementDriver.cxx Diff File
rm - src/BinMDataXtd/BinMDataXtd_PlacementDriver.hxx Diff File
rm - src/BinMDataXtd/BinMDataXtd_PlaneDriver.cxx Diff File
rm - src/BinMDataXtd/BinMDataXtd_PlaneDriver.hxx Diff File
rm - src/BinMDataXtd/BinMDataXtd_PointDriver.cxx Diff File
rm - src/BinMDataXtd/BinMDataXtd_PointDriver.hxx Diff File
rm - src/BinMDataXtd/BinMDataXtd_ShapeDriver.cxx Diff File
rm - src/BinMDataXtd/BinMDataXtd_ShapeDriver.hxx Diff File
mod - src/BinMDataXtd/FILES Diff File
mod - src/BinMDF/BinMDF_ADriver.cxx Diff File
mod - src/BinMDF/BinMDF_ADriver.hxx Diff File
mod - src/BinMDF/BinMDF_ADriver.lxx Diff File
mod - src/BinMDF/BinMDF_ADriverTable.cxx Diff File
mod - src/BinMDF/BinMDF_ADriverTable.hxx Diff File
mod - src/BinMDF/BinMDF_ADriverTable.lxx Diff File
add - src/BinMDF/BinMDF_DerivedDriver.cxx Diff File
add - src/BinMDF/BinMDF_DerivedDriver.hxx Diff File
mod - src/BinMDF/FILES Diff File
mod - src/BinMXCAFDoc/BinMXCAFDoc.cxx Diff File
mod - src/BinMXCAFDoc/BinMXCAFDoc.hxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_AreaDriver.cxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_AreaDriver.hxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_ClippingPlaneToolDriver.cxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_ClippingPlaneToolDriver.hxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_ColorToolDriver.cxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_ColorToolDriver.hxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_DimensionDriver.cxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_DimensionDriver.hxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_DimTolToolDriver.cxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_DimTolToolDriver.hxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_DocumentToolDriver.cxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_DocumentToolDriver.hxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_GeomToleranceDriver.cxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_GeomToleranceDriver.hxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_LayerToolDriver.cxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_LayerToolDriver.hxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_MaterialToolDriver.cxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_MaterialToolDriver.hxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_NoteBalloonDriver.cxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_NoteBalloonDriver.hxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_NotesToolDriver.cxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_NotesToolDriver.hxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_ShapeToolDriver.cxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_ShapeToolDriver.hxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_ViewDriver.cxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_ViewDriver.hxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_ViewToolDriver.cxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_ViewToolDriver.hxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_VolumeDriver.cxx Diff File
rm - src/BinMXCAFDoc/BinMXCAFDoc_VolumeDriver.hxx Diff File
mod - src/BinMXCAFDoc/FILES Diff File
mod - src/DDF/DDF_BasicCommands.cxx Diff File
mod - src/TDataStd/FILES Diff File
mod - src/TDataStd/TDataStd_Comment.cxx Diff File
mod - src/TDataStd/TDataStd_Comment.hxx Diff File
mod - src/TDataStd/TDataStd_Directory.cxx Diff File
mod - src/TDataStd/TDataStd_Directory.hxx Diff File
mod - src/TDataStd/TDataStd_Expression.cxx Diff File
mod - src/TDataStd/TDataStd_Expression.hxx Diff File
add - src/TDataStd/TDataStd_GenericEmpty.cxx Diff File
add - src/TDataStd/TDataStd_GenericEmpty.hxx Diff File
add - src/TDataStd/TDataStd_GenericExtString.cxx Diff File
add - src/TDataStd/TDataStd_GenericExtString.hxx Diff File
mod - src/TDataStd/TDataStd_Name.cxx Diff File
mod - src/TDataStd/TDataStd_Name.hxx Diff File
mod - src/TDataStd/TDataStd_NoteBook.cxx Diff File
mod - src/TDataStd/TDataStd_NoteBook.hxx Diff File
mod - src/TDataStd/TDataStd_Real.hxx Diff File
mod - src/TDataStd/TDataStd_Relation.cxx Diff File
mod - src/TDataStd/TDataStd_Relation.hxx Diff File
mod - src/TDataStd/TDataStd_Tick.cxx Diff File
mod - src/TDataStd/TDataStd_Tick.hxx Diff File
mod - src/TDataXtd/TDataXtd_Axis.cxx Diff File
mod - src/TDataXtd/TDataXtd_Axis.hxx Diff File
mod - src/TDataXtd/TDataXtd_Placement.cxx Diff File
mod - src/TDataXtd/TDataXtd_Placement.hxx Diff File
mod - src/TDataXtd/TDataXtd_Plane.cxx Diff File
mod - src/TDataXtd/TDataXtd_Plane.hxx Diff File
mod - src/TDataXtd/TDataXtd_Point.cxx Diff File
mod - src/TDataXtd/TDataXtd_Point.hxx Diff File
mod - src/TDataXtd/TDataXtd_Shape.cxx Diff File
mod - src/TDataXtd/TDataXtd_Shape.hxx Diff File
mod - src/TDF/FILES Diff File
add - src/TDF/TDF_DerivedAttribute.cxx Diff File
add - src/TDF/TDF_DerivedAttribute.hxx Diff File
mod - src/XCAFDoc/XCAFDoc_Area.cxx Diff File
mod - src/XCAFDoc/XCAFDoc_Area.hxx Diff File
mod - src/XCAFDoc/XCAFDoc_ClippingPlaneTool.cxx Diff File
mod - src/XCAFDoc/XCAFDoc_ClippingPlaneTool.hxx Diff File
mod - src/XCAFDoc/XCAFDoc_ColorTool.cxx Diff File
mod - src/XCAFDoc/XCAFDoc_ColorTool.hxx Diff File
mod - src/XCAFDoc/XCAFDoc_Dimension.cxx Diff File
mod - src/XCAFDoc/XCAFDoc_Dimension.hxx Diff File
mod - src/XCAFDoc/XCAFDoc_DimTolTool.cxx Diff File
mod - src/XCAFDoc/XCAFDoc_DimTolTool.hxx Diff File
mod - src/XCAFDoc/XCAFDoc_DocumentTool.cxx Diff File
mod - src/XCAFDoc/XCAFDoc_DocumentTool.hxx Diff File
mod - src/XCAFDoc/XCAFDoc_GeomTolerance.cxx Diff File
mod - src/XCAFDoc/XCAFDoc_GeomTolerance.hxx Diff File
mod - src/XCAFDoc/XCAFDoc_LayerTool.cxx Diff File
mod - src/XCAFDoc/XCAFDoc_LayerTool.hxx Diff File
mod - src/XCAFDoc/XCAFDoc_MaterialTool.cxx Diff File
mod - src/XCAFDoc/XCAFDoc_MaterialTool.hxx Diff File
mod - src/XCAFDoc/XCAFDoc_Note.hxx Diff File
mod - src/XCAFDoc/XCAFDoc_NoteBalloon.cxx Diff File
mod - src/XCAFDoc/XCAFDoc_NoteBalloon.hxx Diff File
mod - src/XCAFDoc/XCAFDoc_NotesTool.cxx Diff File
mod - src/XCAFDoc/XCAFDoc_NotesTool.hxx Diff File
mod - src/XCAFDoc/XCAFDoc_ShapeTool.cxx Diff File
mod - src/XCAFDoc/XCAFDoc_ShapeTool.hxx Diff File
mod - src/XCAFDoc/XCAFDoc_View.cxx Diff File
mod - src/XCAFDoc/XCAFDoc_View.hxx Diff File
mod - src/XCAFDoc/XCAFDoc_ViewTool.cxx Diff File
mod - src/XCAFDoc/XCAFDoc_ViewTool.hxx Diff File
mod - src/XCAFDoc/XCAFDoc_Volume.cxx Diff File
mod - src/XCAFDoc/XCAFDoc_Volume.hxx Diff File
mod - src/XmlMDataStd/FILES Diff File
mod - src/XmlMDataStd/XmlMDataStd.cxx Diff File
mod - src/XmlMDataStd/XmlMDataStd.hxx Diff File
rm - src/XmlMDataStd/XmlMDataStd_CommentDriver.cxx Diff File
rm - src/XmlMDataStd/XmlMDataStd_CommentDriver.hxx Diff File
rm - src/XmlMDataStd/XmlMDataStd_DirectoryDriver.cxx Diff File
rm - src/XmlMDataStd/XmlMDataStd_DirectoryDriver.hxx Diff File
mod - src/XmlMDataStd/XmlMDataStd_IntegerDriver.cxx Diff File
rm - src/XmlMDataStd/XmlMDataStd_NoteBookDriver.cxx Diff File
rm - src/XmlMDataStd/XmlMDataStd_NoteBookDriver.hxx Diff File
rm - src/XmlMDataStd/XmlMDataStd_RelationDriver.cxx Diff File
rm - src/XmlMDataStd/XmlMDataStd_RelationDriver.hxx Diff File
mod - src/XmlMDataXtd/FILES Diff File
mod - src/XmlMDataXtd/XmlMDataXtd.cxx Diff File
mod - src/XmlMDataXtd/XmlMDataXtd.hxx Diff File
rm - src/XmlMDataXtd/XmlMDataXtd_AxisDriver.cxx Diff File
rm - src/XmlMDataXtd/XmlMDataXtd_AxisDriver.hxx Diff File
rm - src/XmlMDataXtd/XmlMDataXtd_PlacementDriver.cxx Diff File
rm - src/XmlMDataXtd/XmlMDataXtd_PlacementDriver.hxx Diff File
rm - src/XmlMDataXtd/XmlMDataXtd_PlaneDriver.cxx Diff File
rm - src/XmlMDataXtd/XmlMDataXtd_PlaneDriver.hxx Diff File
rm - src/XmlMDataXtd/XmlMDataXtd_PointDriver.cxx Diff File
rm - src/XmlMDataXtd/XmlMDataXtd_PointDriver.hxx Diff File
rm - src/XmlMDataXtd/XmlMDataXtd_ShapeDriver.cxx Diff File
rm - src/XmlMDataXtd/XmlMDataXtd_ShapeDriver.hxx Diff File
mod - src/XmlMDF/FILES Diff File
mod - src/XmlMDF/XmlMDF.cxx Diff File
mod - src/XmlMDF/XmlMDF_ADriver.cxx Diff File
mod - src/XmlMDF/XmlMDF_ADriver.hxx Diff File
mod - src/XmlMDF/XmlMDF_ADriverTable.cxx Diff File
mod - src/XmlMDF/XmlMDF_ADriverTable.hxx Diff File
add - src/XmlMDF/XmlMDF_DerivedDriver.cxx Diff File
add - src/XmlMDF/XmlMDF_DerivedDriver.hxx Diff File
mod - src/XmlMXCAFDoc/FILES Diff File
mod - src/XmlMXCAFDoc/XmlMXCAFDoc.cxx Diff File
mod - src/XmlMXCAFDoc/XmlMXCAFDoc.hxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_AreaDriver.cxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_AreaDriver.hxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_ClippingPlaneToolDriver.cxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_ClippingPlaneToolDriver.hxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_ColorToolDriver.cxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_ColorToolDriver.hxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_DimTolToolDriver.cxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_DimTolToolDriver.hxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_DocumentToolDriver.cxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_DocumentToolDriver.hxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_LayerToolDriver.cxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_LayerToolDriver.hxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_MaterialToolDriver.cxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_MaterialToolDriver.hxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_NoteBalloonDriver.cxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_NoteBalloonDriver.hxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_NotesToolDriver.cxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_NotesToolDriver.hxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_ShapeToolDriver.cxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_ShapeToolDriver.hxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_ViewToolDriver.cxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_ViewToolDriver.hxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_VolumeDriver.cxx Diff File
rm - src/XmlMXCAFDoc/XmlMXCAFDoc_VolumeDriver.hxx Diff File
add - tests/caf/basic/F4 Diff File
add - tests/caf/basic/F5 Diff File