Salome HOME
merge from branch BR_V5_DEV
[modules/kernel.git] / src / SALOMEDS / SALOMEDS_AttributeTreeNode_i.cxx
1 //  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 //  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 //  This library is free software; you can redistribute it and/or
7 //  modify it under the terms of the GNU Lesser General Public
8 //  License as published by the Free Software Foundation; either
9 //  version 2.1 of the License.
10 //
11 //  This library is distributed in the hope that it will be useful,
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 //  Lesser General Public License for more details.
15 //
16 //  You should have received a copy of the GNU Lesser General Public
17 //  License along with this library; if not, write to the Free Software
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 //  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22 //  File   : SALOMEDS_AttributeTreeNode_i.cxx
23 //  Author : Sergey RUIN
24 //  Module : SALOME
25 //
26 #include "SALOMEDS_AttributeTreeNode_i.hxx"
27 #include "utilities.h"
28 #include "SALOMEDS.hxx"
29
30 using namespace std;
31
32 static SALOMEDSImpl_AttributeTreeNode* GetNode(SALOMEDS::AttributeTreeNode_ptr value,
33                                                SALOMEDSImpl_AttributeTreeNode* aNode) 
34 {
35   SALOMEDSImpl_AttributeTreeNode* aResult = NULL;
36   DF_Label aLabel = DF_Label::Label(aNode->Label(), value->Label());
37   if (aLabel.IsNull()) {
38     MESSAGE("SALOMEDS_AttributeTreeNode_i class: no such label")
39     MESSAGE("SALOMEDS_AttributeTreeNode_i class: no such label")
40     return aResult;
41   }
42   if (!(aResult=(SALOMEDSImpl_AttributeTreeNode*)aLabel.FindAttribute(aNode->ID()))) {
43     MESSAGE("SALOMEDS_AttributeTreeNode_i class: no such attribute")
44     MESSAGE("SALOMEDS_AttributeTreeNode_i class: no such attribute")
45   }
46   return aResult;
47 }
48
49 void SALOMEDS_AttributeTreeNode_i::SetFather(SALOMEDS::AttributeTreeNode_ptr value) 
50 {
51   SALOMEDS::Locker lock;
52   CheckLocked();
53   SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
54   aNode->SetFather(GetNode(value, aNode));
55 }
56
57 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasFather() 
58 {
59   SALOMEDS::Locker lock;
60   return dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl)->HasFather();
61 }
62
63 SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetFather() 
64 {
65   SALOMEDS::Locker lock;
66   SALOMEDS_AttributeTreeNode_i* aFather;
67   aFather = new SALOMEDS_AttributeTreeNode_i(dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl)->GetFather(), _orb);
68 #ifndef WIN32
69   return aFather->POA_SALOMEDS::AttributeTreeNode::_this();
70 #else
71   return aFather->AttributeTreeNode::_this();
72 #endif
73 }
74
75 void SALOMEDS_AttributeTreeNode_i::SetPrevious(SALOMEDS::AttributeTreeNode_ptr value) 
76 {
77   SALOMEDS::Locker lock;
78   CheckLocked();
79   SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
80   aNode->SetPrevious(GetNode(value, aNode));
81 }
82
83 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasPrevious() 
84 {
85   SALOMEDS::Locker lock;
86   return dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl)->HasPrevious();
87 }
88
89 SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetPrevious() 
90 {
91   SALOMEDS::Locker lock;
92   SALOMEDS_AttributeTreeNode_i* aPrevious;
93   aPrevious=new SALOMEDS_AttributeTreeNode_i(dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl)->GetPrevious(), _orb);
94 #ifndef WIN32
95   return aPrevious->POA_SALOMEDS::AttributeTreeNode::_this();
96 #else
97   return aPrevious->AttributeTreeNode::_this();
98 #endif
99 }
100
101 void SALOMEDS_AttributeTreeNode_i::SetNext(SALOMEDS::AttributeTreeNode_ptr value) 
102 {
103   SALOMEDS::Locker lock;
104   CheckLocked();
105   SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
106   aNode->SetNext(GetNode(value, aNode));
107 }
108
109 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasNext() 
110 {
111   SALOMEDS::Locker lock;
112   return dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl)->HasNext();
113 }
114
115 SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetNext() 
116 {
117   SALOMEDS::Locker lock;
118   SALOMEDS_AttributeTreeNode_i* aNext;
119   aNext = new SALOMEDS_AttributeTreeNode_i(dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl)->GetNext(), _orb);
120 #ifndef WIN32
121   return aNext->POA_SALOMEDS::AttributeTreeNode::_this();
122 #else
123   return aNext->AttributeTreeNode::_this();
124 #endif
125 }
126
127 void SALOMEDS_AttributeTreeNode_i::SetFirst(SALOMEDS::AttributeTreeNode_ptr value) 
128 {
129   SALOMEDS::Locker lock;
130   CheckLocked();
131   SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
132   aNode->SetFirst(GetNode(value, aNode));
133 }
134
135 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasFirst() 
136 {
137   SALOMEDS::Locker lock;
138   return dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl)->HasFirst();
139 }
140
141 SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetFirst() 
142 {
143   SALOMEDS::Locker lock;
144   SALOMEDS_AttributeTreeNode_i* aFirst;
145   aFirst = new SALOMEDS_AttributeTreeNode_i(dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl)->GetFirst(), _orb);
146 #ifndef WIN32
147   return aFirst->POA_SALOMEDS::AttributeTreeNode::_this();
148 #else
149   return aFirst->AttributeTreeNode::_this();
150 #endif
151 }
152
153 void SALOMEDS_AttributeTreeNode_i::SetTreeID(const char* value) 
154 {
155   SALOMEDS::Locker lock;
156   CheckLocked();
157   SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
158   aNode->SetTreeID(value);
159 }
160
161 char* SALOMEDS_AttributeTreeNode_i::GetTreeID() 
162 {
163   SALOMEDS::Locker lock;
164   SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
165   return CORBA::String_var(CORBA::string_dup(aNode->ID().c_str()))._retn();
166 }
167
168 void SALOMEDS_AttributeTreeNode_i::Append(SALOMEDS::AttributeTreeNode_ptr value) 
169 {
170   SALOMEDS::Locker lock;
171   CheckLocked();
172   SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
173   aNode->Append(GetNode(value, aNode));
174 }
175
176 void SALOMEDS_AttributeTreeNode_i::Prepend(SALOMEDS::AttributeTreeNode_ptr value) 
177 {
178   SALOMEDS::Locker lock;
179   CheckLocked();
180   SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
181   aNode->Prepend(GetNode(value, aNode));
182 }
183
184 void SALOMEDS_AttributeTreeNode_i::InsertBefore(SALOMEDS::AttributeTreeNode_ptr value) 
185 {
186   SALOMEDS::Locker lock;
187   CheckLocked();
188   SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
189   aNode->InsertBefore(GetNode(value, aNode));
190 }
191
192 void SALOMEDS_AttributeTreeNode_i::InsertAfter(SALOMEDS::AttributeTreeNode_ptr value) 
193 {
194   SALOMEDS::Locker lock;
195   CheckLocked();
196   SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
197   aNode->InsertAfter(GetNode(value, aNode));
198 }
199
200 void SALOMEDS_AttributeTreeNode_i::Remove() 
201 {
202   SALOMEDS::Locker lock;
203   CheckLocked();
204   SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
205   aNode->Remove();
206 }
207
208 CORBA::Long SALOMEDS_AttributeTreeNode_i::Depth() 
209 {
210   SALOMEDS::Locker lock;
211   SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
212   return aNode->Depth();
213 }
214
215 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsRoot() 
216 {
217   SALOMEDS::Locker lock;
218   SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
219   return aNode->IsRoot();
220 }
221
222 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsDescendant(SALOMEDS::AttributeTreeNode_ptr value) 
223 {
224   SALOMEDS::Locker lock;
225   SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
226   return aNode->IsDescendant(GetNode(value, aNode));
227 }
228
229 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsFather(SALOMEDS::AttributeTreeNode_ptr value) 
230 {
231   SALOMEDS::Locker lock;
232   SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
233   return aNode->IsFather(GetNode(value, aNode));
234 }
235
236 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsChild(SALOMEDS::AttributeTreeNode_ptr value) 
237 {
238   SALOMEDS::Locker lock;
239   SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
240   return aNode->IsChild(GetNode(value, aNode));
241 }
242
243 char* SALOMEDS_AttributeTreeNode_i::Label() 
244 {
245   SALOMEDS::Locker lock;
246   return CORBA::String_var(CORBA::string_dup(_impl->Label().Entry().c_str()))._retn();
247 }
248