Salome HOME
Updated copyright comment
[modules/kernel.git] / src / SALOMEDS / SALOMEDS_SComponent_i.cxx
index de76b6155d07198e3d93843cd150665f21fa134c..b1342687d0652637f2f01d976d1f48b22573c39e 100644 (file)
@@ -1,26 +1,49 @@
-using namespace std;
-//  File      : SALOMEDS_SComponent_i.cxx
-//  Created   : Wed Nov 28 16:24:34 2001
-//  Author    : Yves FRICAUD
-
-//  Project   : SALOME
-//  Module    : SALOMEDS
-//  Copyright : Open CASCADE 2001
-//  $Header$
+// Copyright (C) 2007-2024  CEA, EDF, OPEN CASCADE
+//
+// Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
 
+//  File   : SALOMEDS_SComponent_i.cxx
+//  Author : Sergey RUIN
+//  Module : SALOME
+//
 #include "SALOMEDS_SComponent_i.hxx"
+#include "SALOMEDS.hxx"
 #include "utilities.h"
+#include <map>
+
+SALOMEDS::SComponent_ptr SALOMEDS_SComponent_i::New(const SALOMEDSImpl_SComponent& theImpl, CORBA::ORB_ptr theORB)
+{
+  SALOMEDS_SComponent_i* sco_servant = new SALOMEDS_SComponent_i(theImpl, theORB);
 
+  return sco_servant->_this();
+}    
 
 //============================================================================
 /*! Function : constructor
  *  Purpose  : 
  */
 //============================================================================
-SALOMEDS_SComponent_i::SALOMEDS_SComponent_i(const TDF_Label lab, CORBA::ORB_ptr orb)
-  :SALOMEDS_SObject_i(lab,orb)
-{
-}
+SALOMEDS_SComponent_i::SALOMEDS_SComponent_i(const SALOMEDSImpl_SComponent& theImpl, CORBA::ORB_ptr orb)
+  :SALOMEDS_SObject_i(theImpl, orb)
+{}
   
 //============================================================================
 /*! Function : destructor
@@ -28,10 +51,8 @@ SALOMEDS_SComponent_i::SALOMEDS_SComponent_i(const TDF_Label lab, CORBA::ORB_ptr
  */
 //============================================================================
 SALOMEDS_SComponent_i::~SALOMEDS_SComponent_i()
-{
-}
-  
-  
+{}
+   
 //============================================================================
 /*! Function : ComponentDataType
  *  Purpose  : 
@@ -39,21 +60,9 @@ SALOMEDS_SComponent_i::~SALOMEDS_SComponent_i()
 //============================================================================
 char* SALOMEDS_SComponent_i::ComponentDataType()
 {
-  //DEB
-  //    MESSAGE("In SALOMEDS_SComponent_i::ComponentDataType");
-  //    TCollection_AsciiString anEntry;
-  //    TDF_Tool::Entry (_lab,anEntry);
-  //    MESSAGE("in SALOMEDS_SComponent_i, Entry :"<<anEntry);
-  // END DEB
-
-  Standard_CString res = "";
-  Handle(TDataStd_Comment) type;
-  if ( _lab.FindAttribute(TDataStd_Comment::GetID(),type) ) {
-    TCollection_AsciiString ch(type->Get());
-    res = ch.ToCString();
-  }
-
-  return CORBA::string_dup(res);
+  SALOMEDS::Locker lock;
+  std::string aType = dynamic_cast<SALOMEDSImpl_SComponent*>(_impl)->ComponentDataType();
+  return CORBA::string_dup(aType.c_str());
 }
   
 
@@ -64,28 +73,12 @@ char* SALOMEDS_SComponent_i::ComponentDataType()
 //============================================================================
 CORBA::Boolean SALOMEDS_SComponent_i::ComponentIOR(CORBA::String_out IOR)
 {
-  Handle(SALOMEDS_IORAttribute) ior;
-  if (!_lab.FindAttribute(SALOMEDS_IORAttribute::GetID(),ior) )
-      return false;
-  TCollection_AsciiString ch(ior->Get());
-  IOR = strdup(ch.ToCString());
-  return true;
-}
-  
-
-//============================================================================
-/*! Function : IsA
- *  Purpose  : 
- */
-//============================================================================
-Standard_Boolean SALOMEDS_SComponent_i::IsA(const TDF_Label Lab)
-{
-  Handle(TDF_Attribute) Att;
-  // scomponent must contain comment and belong to the 2th depth label
-  if ( Lab.FindAttribute(TDataStd_Comment::GetID(), Att) && Lab.Depth() == 2) {
-    return Standard_True;
+  SALOMEDS::Locker lock;
+  std::string ior;
+  if(!dynamic_cast<SALOMEDSImpl_SComponent*>(_impl)->ComponentIOR(ior)) {
+    IOR = CORBA::string_dup("");
+    return false;
   }
-  return Standard_False;
+  IOR = CORBA::string_dup(ior.c_str());
+  return true;
 }
-  
-