0031313: Foundation Classes - Dump improvement for classes
[occt.git] / src / TDataStd / TDataStd_NoteBook.cxx
1 // Created on: 1997-07-29
2 // Created by: Denis PASCAL
3 // Copyright (c) 1997-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 //
6 // This file is part of Open CASCADE Technology software library.
7 //
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
13 //
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
16
17 #include <TDataStd_NoteBook.hxx>
18
19 #include <Standard_DomainError.hxx>
20 #include <Standard_Dump.hxx>
21 #include <Standard_GUID.hxx>
22 #include <Standard_Type.hxx>
23 #include <TDataStd_Integer.hxx>
24 #include <TDataStd_Real.hxx>
25 #include <TDF_Attribute.hxx>
26 #include <TDF_Label.hxx>
27 #include <TDF_RelocationTable.hxx>
28 #include <TDF_TagSource.hxx>
29
30 IMPLEMENT_STANDARD_RTTIEXT(TDataStd_NoteBook,TDF_Attribute)
31
32 //=======================================================================
33 //function : Find
34 //purpose  : 
35 //=======================================================================
36 Standard_Boolean TDataStd_NoteBook::Find (const TDF_Label& current,
37                                           Handle(TDataStd_NoteBook)& N) 
38 {  
39   TDF_Label L = current;
40   Handle(TDataStd_NoteBook) NB;
41   if (L.IsNull()) return Standard_False; 
42
43   for(;;) {
44     if(L.FindAttribute(TDataStd_NoteBook::GetID(), NB)) break; 
45     L = L.Father();
46     if (L.IsNull()) break; 
47   }
48
49   if (!NB.IsNull()) { 
50     N = NB;
51     return Standard_True; 
52   }
53   return Standard_False; 
54 }
55
56
57 //=======================================================================
58 //function : New
59 //purpose  : 
60 //=======================================================================
61
62 Handle(TDataStd_NoteBook) TDataStd_NoteBook::New (const TDF_Label& label)
63 {  
64   if (label.HasAttribute()) {
65     throw Standard_DomainError("TDataStd_NoteBook::New : not an empty label");
66   }
67   Handle(TDataStd_NoteBook) NB = new TDataStd_NoteBook ();  
68   label.AddAttribute(NB);
69   TDF_TagSource::Set(label);    // distributeur de sous label
70   return NB;
71 }
72
73 //=======================================================================
74 //function : GetID
75 //purpose  : 
76 //=======================================================================
77
78 const Standard_GUID& TDataStd_NoteBook::GetID() 
79 {
80   static Standard_GUID TDataStd_NoteBookID("2a96b609-ec8b-11d0-bee7-080009dc3333");
81   return TDataStd_NoteBookID;
82 }
83
84
85 //=======================================================================
86 //function : TDataStd_NoteBook
87 //purpose  : 
88 //=======================================================================
89
90 TDataStd_NoteBook::TDataStd_NoteBook()
91 {
92 }
93
94
95 //=======================================================================
96 //function : Append Real Variable
97 //purpose  : 
98 //=======================================================================
99
100 Handle(TDataStd_Real) TDataStd_NoteBook::Append(const Standard_Real value,
101                                                 const Standard_Boolean ) 
102 {
103   TDF_Label newlabel =  TDF_TagSource::NewChild (Label());
104   Handle(TDataStd_Real) variable = TDataStd_Real::Set ( newlabel, value); 
105   return variable;
106 }
107
108 //=======================================================================
109 //function : Append Integer Variable
110 //purpose  : 
111 //=======================================================================
112
113 Handle(TDataStd_Integer) TDataStd_NoteBook::Append(const Standard_Integer value,
114                                                    const Standard_Boolean ) 
115 {
116   TDF_Label newlabel =  TDF_TagSource::NewChild (Label());
117   Handle(TDataStd_Integer) variable = TDataStd_Integer::Set ( newlabel, value); 
118   return variable;
119 }
120
121 //=======================================================================
122 //function : ID
123 //purpose  : 
124 //=======================================================================
125
126 const Standard_GUID& TDataStd_NoteBook::ID() const
127 { return GetID(); }
128
129
130 //=======================================================================
131 //function : NewEmpty
132 //purpose  : 
133 //=======================================================================
134
135 Handle(TDF_Attribute) TDataStd_NoteBook::NewEmpty () const
136 {  
137   return new TDataStd_NoteBook(); 
138 }
139
140 //=======================================================================
141 //function : Restore
142 //purpose  : 
143 //=======================================================================
144
145 void TDataStd_NoteBook::Restore(const Handle(TDF_Attribute)& ) 
146 {
147 }
148
149 //=======================================================================
150 //function : Paste
151 //purpose  : 
152 //=======================================================================
153
154 void TDataStd_NoteBook::Paste (const Handle(TDF_Attribute)& ,
155                                const Handle(TDF_RelocationTable)& ) const
156 {
157 }
158
159 //=======================================================================
160 //function : Dump
161 //purpose  : 
162 //=======================================================================
163
164 Standard_OStream& TDataStd_NoteBook::Dump (Standard_OStream& anOS) const
165 {  
166   anOS << "NoteBook";
167   return anOS;
168 }
169
170 //=======================================================================
171 //function : DumpJson
172 //purpose  : 
173 //=======================================================================
174 void TDataStd_NoteBook::DumpJson (Standard_OStream& theOStream, Standard_Integer theDepth) const
175 {
176   OCCT_DUMP_TRANSIENT_CLASS_BEGIN (theOStream)
177
178   OCCT_DUMP_BASE_CLASS (theOStream, theDepth, TDF_Attribute)
179 }