1 // File : SALOMEDS_UseCaseBuilder_i.cxx
2 // Author : Sergey RUIN
6 #include "SALOMEDS_UseCaseBuilder_i.hxx"
7 #include "SALOMEDS_UseCaseIterator_i.hxx"
8 #include "SALOMEDS_SObject_i.hxx"
9 #include "SALOMEDS.hxx"
11 #include "utilities.h"
15 //============================================================================
16 /*! Function : constructor
19 //============================================================================
20 SALOMEDS_UseCaseBuilder_i::SALOMEDS_UseCaseBuilder_i(const Handle(SALOMEDSImpl_UseCaseBuilder)& theImpl,
23 _orb = CORBA::ORB::_duplicate(orb);
27 //============================================================================
28 /*! Function : destructor
31 //============================================================================
32 SALOMEDS_UseCaseBuilder_i::~SALOMEDS_UseCaseBuilder_i()
37 //============================================================================
41 //============================================================================
42 CORBA::Boolean SALOMEDS_UseCaseBuilder_i::Append(SALOMEDS::SObject_ptr theObject)
44 SALOMEDS::Locker lock;
45 if(_impl.IsNull() || theObject->_is_nil()) return 0;
46 return _impl->Append(_impl->GetSObject(theObject->GetID()));
49 //============================================================================
53 //============================================================================
54 CORBA::Boolean SALOMEDS_UseCaseBuilder_i::Remove(SALOMEDS::SObject_ptr theObject)
56 SALOMEDS::Locker lock;
57 if(_impl.IsNull() || theObject->_is_nil()) return 0;
58 return _impl->Remove(_impl->GetSObject(theObject->GetID()));
62 //============================================================================
63 /*! Function : AppendTo
66 //============================================================================
67 CORBA::Boolean SALOMEDS_UseCaseBuilder_i::AppendTo(SALOMEDS::SObject_ptr theFather,
68 SALOMEDS::SObject_ptr theObject)
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()));
75 //============================================================================
76 /*! Function : InsertBefore
79 //============================================================================
80 CORBA::Boolean SALOMEDS_UseCaseBuilder_i::InsertBefore(SALOMEDS::SObject_ptr theFirst,
81 SALOMEDS::SObject_ptr theNext)
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()));
89 //============================================================================
90 /*! Function : SetCurrentObject
93 //============================================================================
94 CORBA::Boolean SALOMEDS_UseCaseBuilder_i::SetCurrentObject(SALOMEDS::SObject_ptr theObject)
96 SALOMEDS::Locker lock;
97 if(_impl.IsNull() || theObject->_is_nil()) return 0;
98 return _impl->SetCurrentObject(_impl->GetSObject(theObject->GetID()));
101 //============================================================================
102 /*! Function : SetRootCurrent
105 //============================================================================
106 CORBA::Boolean SALOMEDS_UseCaseBuilder_i::SetRootCurrent()
108 SALOMEDS::Locker lock;
109 if(_impl.IsNull()) return 0;
110 return _impl->SetRootCurrent();
113 //============================================================================
114 /*! Function : HasChildren
117 //============================================================================
118 CORBA::Boolean SALOMEDS_UseCaseBuilder_i::HasChildren(SALOMEDS::SObject_ptr theObject)
120 SALOMEDS::Locker lock;
121 if(_impl.IsNull()) return 0;
122 return _impl->HasChildren(_impl->GetSObject(theObject->GetID()));
125 //============================================================================
126 /*! Function : SetName
129 //============================================================================
130 CORBA::Boolean SALOMEDS_UseCaseBuilder_i::SetName(const char* theName)
132 SALOMEDS::Locker lock;
133 if(_impl.IsNull()) return 0;
134 return _impl->SetName((char*)theName);
138 //============================================================================
139 /*! Function : GetCurrentObject
142 //============================================================================
143 SALOMEDS::SObject_ptr SALOMEDS_UseCaseBuilder_i::GetCurrentObject()
145 SALOMEDS::Locker lock;
147 if(_impl.IsNull()) return NULL;
148 Handle(SALOMEDSImpl_SObject) aSO = _impl->GetCurrentObject();
149 SALOMEDS::SObject_var so = SALOMEDS_SObject_i::New (aSO, _orb);
153 //============================================================================
154 /*! Function : GetName
157 //============================================================================
158 char* SALOMEDS_UseCaseBuilder_i::GetName()
160 SALOMEDS::Locker lock;
161 return CORBA::string_dup(_impl->GetName().ToCString());
164 //============================================================================
165 /*! Function : IsUseCase
168 //============================================================================
169 CORBA::Boolean SALOMEDS_UseCaseBuilder_i::IsUseCase(SALOMEDS::SObject_ptr theObject)
171 SALOMEDS::Locker lock;
173 if(_impl.IsNull() || theObject->_is_nil()) return false;
174 return _impl->IsUseCase(_impl->GetSObject(theObject->GetID()));
177 //============================================================================
178 /*! Function : NewUseCase
181 //============================================================================
182 SALOMEDS::SObject_ptr SALOMEDS_UseCaseBuilder_i::AddUseCase(const char* theName)
184 SALOMEDS::Locker lock;
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);
192 //============================================================================
193 /*! Function : GetUseCaseIterator
194 * Purpose : Creates a new UseCase iterator, if anObject is null all use cases are iterated
196 //============================================================================
197 SALOMEDS::UseCaseIterator_ptr SALOMEDS_UseCaseBuilder_i::GetUseCaseIterator(SALOMEDS::SObject_ptr theObject)
199 SALOMEDS::Locker lock;
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();