Salome HOME
ENV: Windows porting.
[modules/kernel.git] / src / SALOMEDS / SALOMEDS_UseCaseBuilder_i.cxx
1 //  File   : SALOMEDS_UseCaseBuilder_i.cxx
2 //  Author : Sergey RUIN
3 //  Module : SALOME
4
5
6 #include "SALOMEDS_UseCaseBuilder_i.hxx"
7 #include "SALOMEDS_UseCaseIterator_i.hxx"
8 #include "SALOMEDS_SObject_i.hxx"  
9 #include "SALOMEDS.hxx"
10
11 #include "utilities.h"
12
13 using namespace std;
14
15 //============================================================================
16 /*! Function : constructor
17  *  Purpose  :
18  */
19 //============================================================================
20 SALOMEDS_UseCaseBuilder_i::SALOMEDS_UseCaseBuilder_i(const Handle(SALOMEDSImpl_UseCaseBuilder)& theImpl,
21                                                      CORBA::ORB_ptr orb)
22 {
23   _orb = CORBA::ORB::_duplicate(orb);
24   _impl = theImpl;
25 }
26
27 //============================================================================
28 /*! Function : destructor
29  *  Purpose  :
30  */
31 //============================================================================
32 SALOMEDS_UseCaseBuilder_i::~SALOMEDS_UseCaseBuilder_i()
33 {
34 }
35
36
37 //============================================================================
38 /*! Function : Append
39  *  Purpose  : 
40  */
41 //============================================================================
42 CORBA::Boolean SALOMEDS_UseCaseBuilder_i::Append(SALOMEDS::SObject_ptr theObject)
43 {
44   SALOMEDS::Locker lock;
45   if(_impl.IsNull() || theObject->_is_nil()) return 0;
46   return _impl->Append(_impl->GetSObject(theObject->GetID()));
47 }
48
49  //============================================================================
50 /*! Function : Remove
51  *  Purpose  :
52  */
53 //============================================================================
54 CORBA::Boolean SALOMEDS_UseCaseBuilder_i::Remove(SALOMEDS::SObject_ptr theObject)
55 {
56   SALOMEDS::Locker lock;
57   if(_impl.IsNull() || theObject->_is_nil()) return 0;
58   return _impl->Remove(_impl->GetSObject(theObject->GetID()));
59 }
60
61
62 //============================================================================
63 /*! Function : AppendTo
64  *  Purpose  :
65  */
66 //============================================================================
67 CORBA::Boolean SALOMEDS_UseCaseBuilder_i::AppendTo(SALOMEDS::SObject_ptr theFather, 
68                                                    SALOMEDS::SObject_ptr theObject)
69 {
70   SALOMEDS::Locker lock;
71   if(_impl.IsNull() || theFather->_is_nil() || theObject->_is_nil()) return 0;
72   return _impl->AppendTo(_impl->GetSObject(theFather->GetID()), _impl->GetSObject(theObject->GetID()));
73 }
74
75 //============================================================================
76 /*! Function : InsertBefore
77  *  Purpose  :
78  */
79 //============================================================================
80 CORBA::Boolean SALOMEDS_UseCaseBuilder_i::InsertBefore(SALOMEDS::SObject_ptr theFirst, 
81                                                        SALOMEDS::SObject_ptr theNext)
82 {
83   SALOMEDS::Locker lock;
84   if(_impl.IsNull() || theFirst->_is_nil() || theNext->_is_nil()) return 0;
85   return _impl->AppendTo(_impl->GetSObject(theFirst->GetID()), _impl->GetSObject(theNext->GetID()));
86 }
87
88
89 //============================================================================
90 /*! Function : SetCurrentObject
91  *  Purpose  :
92  */
93 //============================================================================
94 CORBA::Boolean SALOMEDS_UseCaseBuilder_i::SetCurrentObject(SALOMEDS::SObject_ptr theObject)
95 {
96   SALOMEDS::Locker lock;
97   if(_impl.IsNull() || theObject->_is_nil()) return 0;
98   return _impl->SetCurrentObject(_impl->GetSObject(theObject->GetID()));
99 }
100
101 //============================================================================
102 /*! Function : SetRootCurrent
103  *  Purpose  :
104  */
105 //============================================================================
106 CORBA::Boolean SALOMEDS_UseCaseBuilder_i::SetRootCurrent()
107 {
108   SALOMEDS::Locker lock;
109   if(_impl.IsNull()) return 0;
110   return _impl->SetRootCurrent();
111 }
112
113 //============================================================================
114 /*! Function : HasChildren
115  *  Purpose  :
116  */
117 //============================================================================
118 CORBA::Boolean SALOMEDS_UseCaseBuilder_i::HasChildren(SALOMEDS::SObject_ptr theObject)
119 {
120   SALOMEDS::Locker lock;
121   if(_impl.IsNull()) return 0;
122   return _impl->HasChildren(_impl->GetSObject(theObject->GetID()));
123 }
124
125 //============================================================================
126 /*! Function : SetName
127  *  Purpose  :
128  */
129 //============================================================================
130 CORBA::Boolean SALOMEDS_UseCaseBuilder_i::SetName(const char* theName) 
131 {
132   SALOMEDS::Locker lock;
133   if(_impl.IsNull()) return 0;
134   return _impl->SetName((char*)theName);
135 }
136
137
138 //============================================================================
139 /*! Function : GetCurrentObject
140  *  Purpose  :
141  */
142 //============================================================================
143 SALOMEDS::SObject_ptr SALOMEDS_UseCaseBuilder_i::GetCurrentObject()
144 {
145   SALOMEDS::Locker lock; 
146   
147   if(_impl.IsNull()) return NULL;
148   Handle(SALOMEDSImpl_SObject) aSO = _impl->GetCurrentObject();
149   SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (aSO, _orb);
150   return so._retn();
151 }
152
153 //============================================================================
154 /*! Function : GetName
155  *  Purpose  :
156  */
157 //============================================================================
158 char* SALOMEDS_UseCaseBuilder_i::GetName() 
159 {
160   SALOMEDS::Locker lock;
161   return CORBA::string_dup(_impl->GetName().ToCString());
162 }
163
164 //============================================================================ 
165 /*! Function :  IsUseCase
166  *  Purpose  :  
167  */ 
168 //============================================================================ 
169 CORBA::Boolean SALOMEDS_UseCaseBuilder_i::IsUseCase(SALOMEDS::SObject_ptr theObject)
170 {
171   SALOMEDS::Locker lock;
172   
173   if(_impl.IsNull() || theObject->_is_nil()) return false;
174   return _impl->IsUseCase(_impl->GetSObject(theObject->GetID()));
175 }
176
177 //============================================================================ 
178 /*! Function : NewUseCase 
179  *  Purpose  :  
180  */ 
181 //============================================================================ 
182 SALOMEDS::SObject_ptr SALOMEDS_UseCaseBuilder_i::AddUseCase(const char* theName)
183 {
184   SALOMEDS::Locker lock;
185   
186   if(_impl.IsNull()) return SALOMEDS::SObject::_nil();
187   Handle(SALOMEDSImpl_SObject) aSO = _impl->AddUseCase((char*)theName);
188   SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (aSO, _orb);
189   return so._retn();
190 }
191
192 //============================================================================
193 /*! Function : GetUseCaseIterator
194  *  Purpose  : Creates a new UseCase iterator, if anObject is null all use cases are iterated 
195  */
196 //============================================================================
197 SALOMEDS::UseCaseIterator_ptr SALOMEDS_UseCaseBuilder_i::GetUseCaseIterator(SALOMEDS::SObject_ptr theObject) 
198 {
199   SALOMEDS::Locker lock;
200   
201   if(_impl.IsNull()) return SALOMEDS::UseCaseIterator::_nil();
202   Handle(SALOMEDSImpl_UseCaseIterator) anItr = _impl->GetUseCaseIterator(_impl->GetSObject(theObject->GetID()));
203   SALOMEDS_UseCaseIterator_i* aServant = new SALOMEDS_UseCaseIterator_i(anItr, _orb);
204   SALOMEDS::UseCaseIterator_var anIterator = SALOMEDS::UseCaseIterator::_narrow(aServant->_this());
205   return anIterator._retn(); 
206 }