]> SALOME platform Git repositories - modules/kernel.git/blob - src/SALOMEDSImpl/SALOMEDSImpl_AttributeTreeNode.hxx
Salome HOME
PR: merge from branch BR_UnitTests tag mergeto_trunk_17oct05
[modules/kernel.git] / src / SALOMEDSImpl / SALOMEDSImpl_AttributeTreeNode.hxx
1 //  File   : SALOMEDSImpl_AttributeTreeNode.hxx
2 //  Author : Sergey RUIN
3 //  Module : SALOME
4
5 #ifndef _SALOMEDSImpl_AttributeTreeNode_HeaderFile
6 #define _SALOMEDSImpl_AttributeTreeNode_HeaderFile
7
8 #include <Standard_DefineHandle.hxx>
9 #include <TDF_Attribute.hxx>
10 #include <Standard_GUID.hxx>     
11 #include <TDF_Label.hxx>
12 #include <TDF_AttributeDelta.hxx>
13 #include <TCollection_AsciiString.hxx>
14 #include "SALOMEDSImpl_GenericAttribute.hxx"
15
16 class Handle_TDF_DataSet;
17 class Handle(TDF_Attribute);
18 class Handle(TDF_RelocationTable);
19 class SALOMEDSImpl_ChildNodeIterator;
20
21 DEFINE_STANDARD_HANDLE( SALOMEDSImpl_AttributeTreeNode, SALOMEDSImpl_GenericAttribute )
22
23 class SALOMEDSImpl_AttributeTreeNode : public SALOMEDSImpl_GenericAttribute 
24 {
25 public:
26
27 Standard_EXPORT const static Standard_GUID& GetDefaultTreeID();
28 Standard_EXPORT static  Handle_SALOMEDSImpl_AttributeTreeNode Set(const TDF_Label& L, const Standard_GUID& ID);
29
30 Standard_EXPORT SALOMEDSImpl_AttributeTreeNode();
31 Standard_EXPORT void SetFather(const Handle(SALOMEDSImpl_AttributeTreeNode)& value);
32 Standard_EXPORT void SetPrevious(const Handle(SALOMEDSImpl_AttributeTreeNode)& value);
33 Standard_EXPORT void SetNext(const Handle(SALOMEDSImpl_AttributeTreeNode)& value);
34 Standard_EXPORT void SetFirst(const Handle(SALOMEDSImpl_AttributeTreeNode)& value);
35 Standard_EXPORT void SetTreeID(const Standard_GUID& value);
36
37 Standard_EXPORT Standard_Boolean Append(const Handle(SALOMEDSImpl_AttributeTreeNode)& value);  
38 Standard_EXPORT Standard_Boolean Prepend(const Handle(SALOMEDSImpl_AttributeTreeNode)& value);
39 Standard_EXPORT Standard_Boolean Remove();
40 Standard_EXPORT Standard_Boolean InsertBefore(const Handle(SALOMEDSImpl_AttributeTreeNode)& value);
41 Standard_EXPORT Standard_Boolean InsertAfter(const Handle(SALOMEDSImpl_AttributeTreeNode)& value);
42
43 Standard_EXPORT Handle(SALOMEDSImpl_AttributeTreeNode) GetFather() { return myFather; }
44 Standard_EXPORT Handle(SALOMEDSImpl_AttributeTreeNode) GetPrevious() { return myPrevious; }
45 Standard_EXPORT Handle(SALOMEDSImpl_AttributeTreeNode) GetNext() { return myNext; }
46 Standard_EXPORT Handle(SALOMEDSImpl_AttributeTreeNode) GetFirst() { return myFirst; }
47
48 Standard_EXPORT Standard_Boolean HasFather() { return (!myFather.IsNull()); }
49 Standard_EXPORT Standard_Boolean HasPrevious() { return (!myPrevious.IsNull()); }
50 Standard_EXPORT Standard_Boolean HasNext() {return (!myNext.IsNull()); }
51 Standard_EXPORT Standard_Boolean HasFirst() { return (!myFirst.IsNull()); }
52 Standard_EXPORT const Standard_GUID& GetTreeID() { return ID(); }
53 Standard_EXPORT Standard_Integer Depth() const;
54 Standard_EXPORT Standard_Boolean IsRoot() const ;
55 Standard_EXPORT Handle(SALOMEDSImpl_AttributeTreeNode) Root() const;
56 Standard_EXPORT Standard_Boolean IsAscendant (const Handle(SALOMEDSImpl_AttributeTreeNode)& ofTN) const;
57 Standard_EXPORT Standard_Boolean IsDescendant(const Handle(SALOMEDSImpl_AttributeTreeNode)& value) const;
58 Standard_EXPORT Standard_Boolean IsFather(const Handle(SALOMEDSImpl_AttributeTreeNode)& value) const;
59 Standard_EXPORT Standard_Boolean IsChild(const Handle(SALOMEDSImpl_AttributeTreeNode)& value) const;
60
61 Standard_EXPORT virtual TCollection_AsciiString Save();
62 Standard_EXPORT virtual void Load(const TCollection_AsciiString&); 
63 Standard_EXPORT virtual TCollection_AsciiString Type(); 
64
65 Standard_EXPORT virtual  void AfterAddition() ;
66 Standard_EXPORT virtual  void BeforeForget() ;
67 Standard_EXPORT virtual  void AfterResume() ;
68 Standard_EXPORT virtual  Standard_Boolean BeforeUndo(const Handle(TDF_AttributeDelta)& anAttDelta,
69                                                      const Standard_Boolean forceIt = Standard_False) ;
70 Standard_EXPORT virtual  Standard_Boolean AfterUndo(const Handle(TDF_AttributeDelta)& anAttDelta,
71                                                     const Standard_Boolean forceIt = Standard_False) ;   
72 Standard_EXPORT  const Standard_GUID& ID() const;
73 Standard_EXPORT  void Restore(const Handle(TDF_Attribute)& with) ;
74 Standard_EXPORT  void Paste(const Handle(TDF_Attribute)& into,const Handle(TDF_RelocationTable)& RT) const;
75 Standard_EXPORT  Handle(TDF_Attribute) NewEmpty() const;
76 Standard_EXPORT  void References(const Handle(TDF_DataSet)& aDataSet) const;  
77 Standard_EXPORT ~SALOMEDSImpl_AttributeTreeNode() {}
78
79 public:
80   DEFINE_STANDARD_RTTI( SALOMEDSImpl_AttributeTreeNode )
81
82 private:
83
84 Standard_GUID myTreeID; 
85 Handle(SALOMEDSImpl_AttributeTreeNode) myFather;
86 Handle(SALOMEDSImpl_AttributeTreeNode) myPrevious;
87 Handle(SALOMEDSImpl_AttributeTreeNode) myNext;
88 Handle(SALOMEDSImpl_AttributeTreeNode) myFirst;
89
90 friend class SALOMEDSImpl_ChildNodeIterator;
91
92 };
93
94 #endif