Back to index

salome-kernel  6.5.0
SALOMEDS_AttributeParameter_i.cxx
Go to the documentation of this file.
00001 // Copyright (C) 2007-2012  CEA/DEN, EDF R&D, OPEN CASCADE
00002 //
00003 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
00004 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
00005 //
00006 // This library is free software; you can redistribute it and/or
00007 // modify it under the terms of the GNU Lesser General Public
00008 // License as published by the Free Software Foundation; either
00009 // version 2.1 of the License.
00010 //
00011 // This library is distributed in the hope that it will be useful,
00012 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00013 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014 // Lesser General Public License for more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public
00017 // License along with this library; if not, write to the Free Software
00018 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00019 //
00020 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
00021 //
00022 
00023 //  File   : SALOMEDS_AttributeParameter_i.cxx
00024 //  Author : Sergey RUIN
00025 //  Module : SALOME
00026 //
00027 #include "SALOMEDS_AttributeParameter_i.hxx"
00028 #include "SALOMEDS.hxx"
00029 
00030 #include <vector>
00031 
00032 #include "Utils_ExceptHandlers.hxx"
00033 UNEXPECT_CATCH(AP_InvalidIdentifier, SALOMEDS::AttributeParameter::InvalidIdentifier);
00034 
00035 //=======================================================================
00040 //=======================================================================
00041 void SALOMEDS_AttributeParameter_i::SetInt(const char* theID, CORBA::Long theValue)
00042 {
00043   SALOMEDS::Locker lock; 
00044   CheckLocked();
00045   dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl)->SetInt(theID, theValue);
00046 }
00047 
00048 //=======================================================================
00053 //=======================================================================
00054 CORBA::Long SALOMEDS_AttributeParameter_i::GetInt(const char* theID)
00055   throw (SALOMEDS::AttributeParameter::InvalidIdentifier)
00056 {
00057   SALOMEDS::Locker lock; 
00058   Unexpect aCatch (AP_InvalidIdentifier);
00059   return dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl)->GetInt(theID);
00060 }
00061 
00062 //=======================================================================
00067 //=======================================================================
00068 void SALOMEDS_AttributeParameter_i::SetReal(const char* theID, CORBA::Double theValue)
00069 {
00070   SALOMEDS::Locker lock; 
00071   CheckLocked();
00072   dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl)->SetReal(theID, theValue);
00073 }
00074 
00075 //=======================================================================
00080 //=======================================================================
00081 CORBA::Double SALOMEDS_AttributeParameter_i::GetReal(const char* theID)
00082   throw (SALOMEDS::AttributeParameter::InvalidIdentifier)
00083 {
00084   SALOMEDS::Locker lock; 
00085   Unexpect aCatch (AP_InvalidIdentifier);
00086   return dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl)->GetReal(theID);
00087 }
00088 
00089 //=======================================================================
00094 //=======================================================================
00095 void SALOMEDS_AttributeParameter_i::SetString(const char* theID, const char* theValue)
00096 {
00097   SALOMEDS::Locker lock; 
00098   CheckLocked();
00099   SALOMEDSImpl_AttributeParameter* impl = dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl);
00100   impl->SetString(theID, theValue);
00101 }
00102 
00103 //=======================================================================
00108 //=======================================================================
00109 char* SALOMEDS_AttributeParameter_i::GetString(const char* theID)
00110   throw (SALOMEDS::AttributeParameter::InvalidIdentifier)
00111 {
00112   SALOMEDS::Locker lock; 
00113   Unexpect aCatch (AP_InvalidIdentifier);
00114   SALOMEDSImpl_AttributeParameter* impl = dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl);
00115   CORBA::String_var c_s = CORBA::string_dup(impl->GetString(theID).c_str());
00116   return c_s._retn();
00117 }
00118 
00119 //=======================================================================
00124 //=======================================================================  
00125 void SALOMEDS_AttributeParameter_i::SetBool(const char* theID, CORBA::Boolean theValue)
00126 {
00127   SALOMEDS::Locker lock; 
00128   CheckLocked();
00129   dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl)->SetBool(theID, theValue);
00130 }
00131 
00132 //=======================================================================
00137 //=======================================================================
00138 CORBA::Boolean SALOMEDS_AttributeParameter_i::GetBool(const char* theID)
00139   throw (SALOMEDS::AttributeParameter::InvalidIdentifier)
00140 {
00141   SALOMEDS::Locker lock; 
00142   Unexpect aCatch (AP_InvalidIdentifier);
00143   return dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl)->GetBool(theID);
00144 }
00145   
00146 //=======================================================================
00151 //=======================================================================
00152 void SALOMEDS_AttributeParameter_i::SetRealArray(const char* theID, const SALOMEDS::DoubleSeq& theArray)
00153 {
00154   SALOMEDS::Locker lock; 
00155   CheckLocked();
00156   std::vector<double> v;
00157   int length = theArray.length();
00158   if(length) {
00159     v.resize(length);
00160     for(int i = 0; i<length; i++) v[i] = theArray[i];
00161   }
00162   dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl)->SetRealArray(theID, v);
00163 }
00164 
00165 //=======================================================================
00170 //=======================================================================
00171 SALOMEDS::DoubleSeq* SALOMEDS_AttributeParameter_i::GetRealArray(const char* theID)
00172   throw (SALOMEDS::AttributeParameter::InvalidIdentifier)
00173 {
00174   SALOMEDS::Locker lock; 
00175   Unexpect aCatch (AP_InvalidIdentifier);
00176   SALOMEDS::DoubleSeq_var aSeq = new SALOMEDS::DoubleSeq;
00177   std::vector<double> v = dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl)->GetRealArray(theID);
00178   int length = v.size();
00179   if(length) {
00180     aSeq->length(length);
00181     for(int i = 0; i<length; i++) aSeq[i] = v[i];
00182   }
00183   return aSeq._retn();
00184 }
00185  
00186 //=======================================================================
00191 //=======================================================================
00192 void SALOMEDS_AttributeParameter_i::SetIntArray(const char* theID, const SALOMEDS::LongSeq& theArray)
00193 {
00194   SALOMEDS::Locker lock; 
00195   CheckLocked();
00196   std::vector<int> v;
00197   int length = theArray.length();
00198   if(length) {
00199     v.resize(length);
00200     for(int i = 0; i<length; i++) v[i] = theArray[i];
00201   }
00202   dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl)->SetIntArray(theID, v);
00203 }
00204 
00205 //=======================================================================
00210 //=======================================================================
00211 SALOMEDS::LongSeq* SALOMEDS_AttributeParameter_i::GetIntArray(const char* theID)
00212   throw (SALOMEDS::AttributeParameter::InvalidIdentifier)
00213 {
00214   SALOMEDS::Locker lock; 
00215   Unexpect aCatch (AP_InvalidIdentifier);
00216   SALOMEDS::LongSeq_var aSeq = new SALOMEDS::LongSeq;
00217   std::vector<int> v = dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl)->GetIntArray(theID);
00218   int length = v.size();
00219   if(length) {
00220     aSeq->length(length);
00221     for(int i = 0; i<length; i++) aSeq[i] = v[i];
00222   }
00223   return aSeq._retn();
00224 }
00225   
00226 //=======================================================================
00231 //=======================================================================
00232 void SALOMEDS_AttributeParameter_i::SetStrArray(const char* theID, const SALOMEDS::StringSeq& theArray)
00233 {
00234   SALOMEDS::Locker lock; 
00235   CheckLocked();
00236   std::vector<std::string> v;
00237   int length = theArray.length();
00238   if(length) {
00239     v.resize(length);
00240     for(int i = 0; i<length; i++) v[i] = std::string(theArray[i].in());
00241   }
00242   dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl)->SetStrArray(theID, v);
00243 }
00244 
00245 //=======================================================================
00250 //=======================================================================
00251 SALOMEDS::StringSeq* SALOMEDS_AttributeParameter_i::GetStrArray(const char* theID)
00252   throw (SALOMEDS::AttributeParameter::InvalidIdentifier)
00253 {
00254   SALOMEDS::Locker lock; 
00255   Unexpect aCatch (AP_InvalidIdentifier);
00256   SALOMEDS::StringSeq_var aSeq = new SALOMEDS::StringSeq;
00257   std::vector<std::string> v = dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl)->GetStrArray(theID);
00258   int length = v.size();
00259   if(length) {
00260     aSeq->length(length);
00261     for(int i = 0; i<length; i++) aSeq[i] = CORBA::string_dup(v[i].c_str());
00262   }
00263   return aSeq._retn();
00264 }
00265   
00266  
00267 //=======================================================================
00273 //=======================================================================
00274 CORBA::Boolean SALOMEDS_AttributeParameter_i::IsSet(const char* theID, CORBA::Long theType)
00275 {
00276   SALOMEDS::Locker lock; 
00277   return dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl)->IsSet(theID, (Parameter_Types)theType);
00278 }
00279 
00280 //=======================================================================
00285 //=======================================================================  
00286 CORBA::Boolean SALOMEDS_AttributeParameter_i::RemoveID(const char* theID, CORBA::Long theType)
00287 {
00288   SALOMEDS::Locker lock; 
00289   CheckLocked();
00290   return dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl)->RemoveID(theID, (Parameter_Types)theType);
00291 }
00292 
00293 //=======================================================================
00298 //=======================================================================
00299 SALOMEDS::AttributeParameter_ptr SALOMEDS_AttributeParameter_i::GetFather()
00300 {
00301   SALOMEDS::Locker lock; 
00302   SALOMEDSImpl_AttributeParameter* impl = dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl);
00303   SALOMEDS_AttributeParameter_i* attr = new SALOMEDS_AttributeParameter_i(impl, _orb);
00304   return attr->AttributeParameter::_this();
00305 }
00306 
00307 //=======================================================================
00312 //=======================================================================
00313 CORBA::Boolean SALOMEDS_AttributeParameter_i::HasFather()
00314 {
00315   SALOMEDS::Locker lock; 
00316   return dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl)->HasFather();
00317 }
00318 
00319 //=======================================================================
00324 //=======================================================================
00325 CORBA::Boolean SALOMEDS_AttributeParameter_i::IsRoot()
00326 {
00327   SALOMEDS::Locker lock; 
00328   return dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl)->IsRoot();
00329 }
00330 
00331 //=======================================================================
00336 //=======================================================================
00337 void SALOMEDS_AttributeParameter_i::Clear()
00338 {
00339   SALOMEDS::Locker lock; 
00340   dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl)->Clear();
00341 }
00342 
00343 
00344 //=======================================================================
00349 //=======================================================================
00350 SALOMEDS::StringSeq* SALOMEDS_AttributeParameter_i::GetIDs(CORBA::Long theType)
00351 {
00352   SALOMEDS::Locker lock; 
00353   SALOMEDS::StringSeq_var CorbaSeq = new SALOMEDS::StringSeq;
00354   std::vector<std::string> A = dynamic_cast<SALOMEDSImpl_AttributeParameter*>(_impl)->GetIDs((Parameter_Types)theType);
00355 
00356   if(A.size()) {
00357     int length = A.size();
00358     CorbaSeq->length(length);
00359     for (int i = 0; i < length; i++) CorbaSeq[i] = CORBA::string_dup(A[i].c_str());;
00360   }
00361 
00362   return CorbaSeq._retn();
00363 }