1 // Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE
3 // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
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.
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.
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
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
22 // File : SALOMEDS_AttributeTreeNode_i.cxx
23 // Author : Sergey RUIN
26 #include "SALOMEDS_AttributeTreeNode_i.hxx"
27 #include "utilities.h"
28 #include "SALOMEDS.hxx"
32 static SALOMEDSImpl_AttributeTreeNode* GetNode(SALOMEDS::AttributeTreeNode_ptr value,
33 SALOMEDSImpl_AttributeTreeNode* aNode)
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")
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")
49 void SALOMEDS_AttributeTreeNode_i::SetFather(SALOMEDS::AttributeTreeNode_ptr value)
51 SALOMEDS::Locker lock;
53 SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
54 aNode->SetFather(GetNode(value, aNode));
57 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasFather()
59 SALOMEDS::Locker lock;
60 return dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl)->HasFather();
63 SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetFather()
65 SALOMEDS::Locker lock;
66 SALOMEDS_AttributeTreeNode_i* aFather;
67 aFather = new SALOMEDS_AttributeTreeNode_i(dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl)->GetFather(), _orb);
69 return aFather->POA_SALOMEDS::AttributeTreeNode::_this();
71 return aFather->AttributeTreeNode::_this();
75 void SALOMEDS_AttributeTreeNode_i::SetPrevious(SALOMEDS::AttributeTreeNode_ptr value)
77 SALOMEDS::Locker lock;
79 SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
80 aNode->SetPrevious(GetNode(value, aNode));
83 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasPrevious()
85 SALOMEDS::Locker lock;
86 return dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl)->HasPrevious();
89 SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetPrevious()
91 SALOMEDS::Locker lock;
92 SALOMEDS_AttributeTreeNode_i* aPrevious;
93 aPrevious=new SALOMEDS_AttributeTreeNode_i(dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl)->GetPrevious(), _orb);
95 return aPrevious->POA_SALOMEDS::AttributeTreeNode::_this();
97 return aPrevious->AttributeTreeNode::_this();
101 void SALOMEDS_AttributeTreeNode_i::SetNext(SALOMEDS::AttributeTreeNode_ptr value)
103 SALOMEDS::Locker lock;
105 SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
106 aNode->SetNext(GetNode(value, aNode));
109 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasNext()
111 SALOMEDS::Locker lock;
112 return dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl)->HasNext();
115 SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetNext()
117 SALOMEDS::Locker lock;
118 SALOMEDS_AttributeTreeNode_i* aNext;
119 aNext = new SALOMEDS_AttributeTreeNode_i(dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl)->GetNext(), _orb);
121 return aNext->POA_SALOMEDS::AttributeTreeNode::_this();
123 return aNext->AttributeTreeNode::_this();
127 void SALOMEDS_AttributeTreeNode_i::SetFirst(SALOMEDS::AttributeTreeNode_ptr value)
129 SALOMEDS::Locker lock;
131 SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
132 aNode->SetFirst(GetNode(value, aNode));
135 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::HasFirst()
137 SALOMEDS::Locker lock;
138 return dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl)->HasFirst();
141 SALOMEDS::AttributeTreeNode_ptr SALOMEDS_AttributeTreeNode_i::GetFirst()
143 SALOMEDS::Locker lock;
144 SALOMEDS_AttributeTreeNode_i* aFirst;
145 aFirst = new SALOMEDS_AttributeTreeNode_i(dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl)->GetFirst(), _orb);
147 return aFirst->POA_SALOMEDS::AttributeTreeNode::_this();
149 return aFirst->AttributeTreeNode::_this();
153 void SALOMEDS_AttributeTreeNode_i::SetTreeID(const char* value)
155 SALOMEDS::Locker lock;
157 SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
158 aNode->SetTreeID(value);
161 char* SALOMEDS_AttributeTreeNode_i::GetTreeID()
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();
168 void SALOMEDS_AttributeTreeNode_i::Append(SALOMEDS::AttributeTreeNode_ptr value)
170 SALOMEDS::Locker lock;
172 SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
173 aNode->Append(GetNode(value, aNode));
176 void SALOMEDS_AttributeTreeNode_i::Prepend(SALOMEDS::AttributeTreeNode_ptr value)
178 SALOMEDS::Locker lock;
180 SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
181 aNode->Prepend(GetNode(value, aNode));
184 void SALOMEDS_AttributeTreeNode_i::InsertBefore(SALOMEDS::AttributeTreeNode_ptr value)
186 SALOMEDS::Locker lock;
188 SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
189 aNode->InsertBefore(GetNode(value, aNode));
192 void SALOMEDS_AttributeTreeNode_i::InsertAfter(SALOMEDS::AttributeTreeNode_ptr value)
194 SALOMEDS::Locker lock;
196 SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
197 aNode->InsertAfter(GetNode(value, aNode));
200 void SALOMEDS_AttributeTreeNode_i::Remove()
202 SALOMEDS::Locker lock;
204 SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
208 CORBA::Long SALOMEDS_AttributeTreeNode_i::Depth()
210 SALOMEDS::Locker lock;
211 SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
212 return aNode->Depth();
215 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsRoot()
217 SALOMEDS::Locker lock;
218 SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
219 return aNode->IsRoot();
222 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsDescendant(SALOMEDS::AttributeTreeNode_ptr value)
224 SALOMEDS::Locker lock;
225 SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
226 return aNode->IsDescendant(GetNode(value, aNode));
229 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsFather(SALOMEDS::AttributeTreeNode_ptr value)
231 SALOMEDS::Locker lock;
232 SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
233 return aNode->IsFather(GetNode(value, aNode));
236 CORBA::Boolean SALOMEDS_AttributeTreeNode_i::IsChild(SALOMEDS::AttributeTreeNode_ptr value)
238 SALOMEDS::Locker lock;
239 SALOMEDSImpl_AttributeTreeNode* aNode = dynamic_cast<SALOMEDSImpl_AttributeTreeNode*>(_impl);
240 return aNode->IsChild(GetNode(value, aNode));
243 char* SALOMEDS_AttributeTreeNode_i::Label()
245 SALOMEDS::Locker lock;
246 return CORBA::String_var(CORBA::string_dup(_impl->Label().Entry().c_str()))._retn();