Salome HOME
updated copyright message
[modules/kernel.git] / src / SALOMEDS / SALOMEDS_AttributeStudyProperties.cxx
index 3bc0afd3d175fc93e05045757e49f645c61b9c42..f4bfe425a8d008b7d4d1396595dd843d4025ff77 100644 (file)
@@ -1,37 +1,34 @@
-// Copyright (C) 2005  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+// Copyright (C) 2007-2023  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.
-// 
-// 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 
+// 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 
+// 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_AttributeStudyProperties.cxx
 //  Author : Sergey RUIN
 //  Module : SALOME
-
+//
 #include "SALOMEDS_AttributeStudyProperties.hxx"
 #include "SALOMEDS.hxx"
 
-#include <string>
-#include <TCollection_AsciiString.hxx>
-#include <TCollection_ExtendedString.hxx>
-#include <TColStd_HSequenceOfExtendedString.hxx>
-#include <TColStd_HSequenceOfInteger.hxx>
-
 SALOMEDS_AttributeStudyProperties::SALOMEDS_AttributeStudyProperties
-                                   (const Handle(SALOMEDSImpl_AttributeStudyProperties)& theAttr)
+                                   (SALOMEDSImpl_AttributeStudyProperties* theAttr)
 :SALOMEDS_GenericAttribute(theAttr)
 {}
 
@@ -49,11 +46,11 @@ void SALOMEDS_AttributeStudyProperties::SetUserName(const std::string& theName)
   if (_isLocal) {
     CheckLocked();
     SALOMEDS::Locker lock;
-    Handle(SALOMEDSImpl_AttributeStudyProperties) anImpl =
-      Handle(SALOMEDSImpl_AttributeStudyProperties)::DownCast(_local_impl);
-    anImpl->ChangeCreatorName((char*)theName.c_str());
+    SALOMEDSImpl_AttributeStudyProperties* anImpl =
+      dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl);
+    anImpl->ChangeCreatorName(theName);
   } else
-    SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl)->SetUserName(theName.c_str());
+    ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->SetUserName(theName.c_str());
 }
 
 std::string SALOMEDS_AttributeStudyProperties::GetUserName()
@@ -61,14 +58,16 @@ std::string SALOMEDS_AttributeStudyProperties::GetUserName()
   std::string aName;
   if (_isLocal) {
     SALOMEDS::Locker lock;
-    TCollection_ExtendedString S =
-      Handle(SALOMEDSImpl_AttributeStudyProperties)::DownCast(_local_impl)->GetCreatorName();
-    aName = TCollection_AsciiString(S).ToCString();
+    aName = dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl)->GetCreatorName();
   }
-#ifndef WNT
-  else aName = SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl)->GetUserName();
+#ifndef WIN32
+  else aName = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetUserName();
+#else
+#ifdef UNICODE
+  else aName = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetUserNameW();
 #else
-  else aName = SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl)->GetUserNameA();
+  else aName = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetUserNameA();
+#endif
 #endif
   return aName;
 }
@@ -79,39 +78,39 @@ void SALOMEDS_AttributeStudyProperties::SetCreationDate
   if (_isLocal) {
     CheckLocked();
     SALOMEDS::Locker lock;
-    Handle(SALOMEDSImpl_AttributeStudyProperties) anImpl =
-      Handle(SALOMEDSImpl_AttributeStudyProperties)::DownCast(_local_impl);
+    SALOMEDSImpl_AttributeStudyProperties* anImpl =
+      dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl);
     int aTmp;
     if (anImpl->GetCreationDate(aTmp, aTmp, aTmp, aTmp, aTmp)) return;
-    TCollection_ExtendedString S;
+    std::string S;
     anImpl->SetModification(S, theMinute, theHour, theDay, theMonth, theYear);
   } else {
-    SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl)->SetCreationDate(theMinute,
-                                                                             theHour,
-                                                                             theDay,
-                                                                             theMonth,
-                                                                             theYear);
+    ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->SetCreationDate(theMinute,
+                                                                              theHour,
+                                                                              theDay,
+                                                                              theMonth,
+                                                                              theYear);
   }
 }
 
 bool SALOMEDS_AttributeStudyProperties::GetCreationDate(int& theMinute,
-                                                       int& theHour,
-                                                       int& theDay,
-                                                       int& theMonth,
-                                                       int& theYear)
+                                                        int& theHour,
+                                                        int& theDay,
+                                                        int& theMonth,
+                                                        int& theYear)
 {
   bool ret;
   if (_isLocal) {
     SALOMEDS::Locker lock;
-    ret = Handle(SALOMEDSImpl_AttributeStudyProperties)::DownCast
+    ret = dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>
       (_local_impl)->GetCreationDate(theMinute, theHour, theDay, theMonth, theYear);
   } else {
     CORBA::Long aMinute, anHour, aDay, aMonth, anYear;
-    ret = SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl)->GetCreationDate(aMinute,
-                                                                                   anHour,
-                                                                                   aDay,
-                                                                                   aMonth,
-                                                                                   anYear);
+    ret = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetCreationDate(aMinute,
+                                                                                    anHour,
+                                                                                    aDay,
+                                                                                    aMonth,
+                                                                                    anYear);
     theMinute = (int)aMinute;
     theHour = (int)anHour;
     theDay = (int)aDay;
@@ -127,13 +126,13 @@ void SALOMEDS_AttributeStudyProperties::SetCreationMode(const std::string& theMo
     CheckLocked();
     SALOMEDS::Locker lock;
     if (theMode == "from scratch")
-      Handle(SALOMEDSImpl_AttributeStudyProperties)::DownCast(_local_impl)->SetCreationMode(1);
+      dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl)->SetCreationMode(1);
     else if (theMode == "copy from")
-      Handle(SALOMEDSImpl_AttributeStudyProperties)::DownCast(_local_impl)->SetCreationMode(2);
+      dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl)->SetCreationMode(2);
     else //Not defined
-      Handle(SALOMEDSImpl_AttributeStudyProperties)::DownCast(_local_impl)->SetCreationMode(0);
+      dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl)->SetCreationMode(0);
   }
-  else SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl)->SetCreationMode(theMode.c_str());
+  else ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->SetCreationMode(theMode.c_str());
 }
 
 std::string SALOMEDS_AttributeStudyProperties::GetCreationMode()
@@ -141,12 +140,12 @@ std::string SALOMEDS_AttributeStudyProperties::GetCreationMode()
   std::string aMode;
   if (_isLocal) {
     SALOMEDS::Locker lock;
-    int mode  = Handle(SALOMEDSImpl_AttributeStudyProperties)::DownCast(_local_impl)->GetCreationMode();
+    int mode  = dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl)->GetCreationMode();
     if (mode == 1) aMode = "from scratch";
     if (mode == 2) aMode = "copy from";
   }
   else
-    aMode = SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl)->GetCreationMode();
+    aMode = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetCreationMode();
   return aMode;
 }
 
@@ -154,10 +153,10 @@ void SALOMEDS_AttributeStudyProperties::SetModified(int theModified)
 {
   if (_isLocal) {
     SALOMEDS::Locker lock;
-    Handle(SALOMEDSImpl_AttributeStudyProperties)::DownCast(_local_impl)->SetModified(theModified);
+    dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl)->SetModified(theModified);
   }
   else
-    SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl)->SetModified(theModified);
+    ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->SetModified(theModified);
 }
 
 bool SALOMEDS_AttributeStudyProperties::IsModified()
@@ -165,10 +164,10 @@ bool SALOMEDS_AttributeStudyProperties::IsModified()
   bool ret;
   if (_isLocal) {
     SALOMEDS::Locker lock;
-    ret = Handle(SALOMEDSImpl_AttributeStudyProperties)::DownCast(_local_impl)->IsModified();
+    ret = dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl)->IsModified();
   }
   else
-    ret = SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl)->IsModified();
+    ret = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->IsModified();
   return ret;
 }
 
@@ -177,10 +176,10 @@ int SALOMEDS_AttributeStudyProperties::GetModified()
   int isModified;
   if (_isLocal) {
     SALOMEDS::Locker lock;
-    isModified = Handle(SALOMEDSImpl_AttributeStudyProperties)::DownCast(_local_impl)->GetModified();
+    isModified = dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl)->GetModified();
   }
   else
-    isModified = SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl)->GetModified();
+    isModified = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetModified();
   return isModified;
 }
 
@@ -188,10 +187,10 @@ void SALOMEDS_AttributeStudyProperties::SetLocked(bool theLocked)
 {
   if (_isLocal) {
     SALOMEDS::Locker lock;
-    Handle(SALOMEDSImpl_AttributeStudyProperties)::DownCast(_local_impl)->SetLocked(theLocked);
+    dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl)->SetLocked(theLocked);
   }
   else
-    SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl)->SetLocked(theLocked);
+    ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->SetLocked(theLocked);
 }
 
 bool SALOMEDS_AttributeStudyProperties::IsLocked()
@@ -199,28 +198,27 @@ bool SALOMEDS_AttributeStudyProperties::IsLocked()
   bool ret;
   if (_isLocal) {
     SALOMEDS::Locker lock;
-    ret = Handle(SALOMEDSImpl_AttributeStudyProperties)::DownCast(_local_impl)->IsLocked();
+    ret = dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl)->IsLocked();
   }
   else
-    ret = SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl)->IsLocked();
+    ret = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->IsLocked();
   return ret;
 }
 
 void SALOMEDS_AttributeStudyProperties::SetModification(const std::string& theName,
-                                                       int theMinute,
-                                                       int theHour,
-                                                       int theDay,
-                                                       int theMonth,
-                                                       int theYear)
+                                                        int theMinute,
+                                                        int theHour,
+                                                        int theDay,
+                                                        int theMonth,
+                                                        int theYear)
 {
   if (_isLocal) {
     CheckLocked();
     SALOMEDS::Locker lock;
-    Handle(SALOMEDSImpl_AttributeStudyProperties) anImpl =
-      Handle(SALOMEDSImpl_AttributeStudyProperties)::DownCast(_local_impl);
-    anImpl->SetModification((char*)theName.c_str(), theMinute, theHour, theDay, theMonth, theYear);
+    SALOMEDSImpl_AttributeStudyProperties* anImpl = dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl);
+    anImpl->SetModification(theName, theMinute, theHour, theDay, theMonth, theYear);
   } else
-    SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl)->SetModification(theName.c_str(),
+    ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->SetModification(theName.c_str(),
                                                                               theMinute,
                                                                               theHour,
                                                                               theDay,
@@ -229,42 +227,41 @@ void SALOMEDS_AttributeStudyProperties::SetModification(const std::string& theNa
 }
 
 void SALOMEDS_AttributeStudyProperties::GetModificationsList(std::vector<std::string>& theNames,
-                                                            std::vector<int>& theMinutes,
-                                                            std::vector<int>& theHours,
-                                                            std::vector<int>& theDays,
-                                                            std::vector<int>& theMonths,
-                                                            std::vector<int>& theYears,
-                                                            bool theWithCreator)
+                                                             std::vector<int>& theMinutes,
+                                                             std::vector<int>& theHours,
+                                                             std::vector<int>& theDays,
+                                                             std::vector<int>& theMonths,
+                                                             std::vector<int>& theYears,
+                                                             bool theWithCreator)
 {
   int i, aLength;
 
   if (_isLocal) {
     SALOMEDS::Locker lock;
-    Handle(TColStd_HSequenceOfExtendedString) aNames;
-    Handle(TColStd_HSequenceOfInteger) aMinutes, aHours, aDays, aMonths, aYears;
-    Handle(SALOMEDSImpl_AttributeStudyProperties) anImpl =
-      Handle(SALOMEDSImpl_AttributeStudyProperties)::DownCast(_local_impl);
+    std::vector<std::string> aNames;
+    std::vector<int> aMinutes, aHours, aDays, aMonths, aYears;
+    SALOMEDSImpl_AttributeStudyProperties* anImpl = dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl);
     anImpl->GetModifications(aNames, aMinutes, aHours, aDays, aMonths, aYears);
-    aLength = aNames->Length();
+    aLength = (int)aNames.size(); //!< TODO: conversion from size_t to int
     i = ((theWithCreator) ? 1 : 2);
     for (; i <= aLength; i++) {
-      theNames.push_back(TCollection_AsciiString(aNames->Value(i)).ToCString());
-      theMinutes.push_back(aMinutes->Value(i));
-      theHours.push_back(aHours->Value(i));
-      theDays.push_back(aDays->Value(i));
-      theMonths.push_back(aMonths->Value(i));
-      theYears.push_back(aYears->Value(i));
+      theNames.push_back(aNames[i-1]);
+      theMinutes.push_back(aMinutes[i-1]);
+      theHours.push_back(aHours[i-1]);
+      theDays.push_back(aDays[i-1]);
+      theMonths.push_back(aMonths[i-1]);
+      theYears.push_back(aYears[i-1]);
     }
   } else {
     SALOMEDS::StringSeq_var aNames;
     SALOMEDS::LongSeq_var aMinutes, aHours, aDays, aMonths, aYears;
-    SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl)->GetModificationsList(aNames.out(),
-                                                                                  aMinutes.out(),
-                                                                                  aHours.out(),
-                                                                                  aDays.out(),
-                                                                                  aMonths.out(),
-                                                                                  aYears.out(),
-                                                                                  theWithCreator);
+    ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetModificationsList(aNames.out(),
+                                                                                   aMinutes.out(),
+                                                                                   aHours.out(),
+                                                                                   aDays.out(),
+                                                                                   aMonths.out(),
+                                                                                   aYears.out(),
+                                                                                   theWithCreator);
     aLength = aNames->length();
     for (i = 0; i<aLength; i++) {
       theNames.push_back(aNames[i].in());
@@ -276,3 +273,99 @@ void SALOMEDS_AttributeStudyProperties::GetModificationsList(std::vector<std::st
     }
   }
 }
+
+
+void SALOMEDS_AttributeStudyProperties::SetComment(const std::string& theComment)
+{
+  if (_isLocal) {
+    CheckLocked();
+    SALOMEDS::Locker lock;
+    SALOMEDSImpl_AttributeStudyProperties* anImpl =
+      dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl);
+    anImpl->SetComment(theComment);
+  } else
+    ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->SetComment(theComment.c_str());
+}
+
+std::string SALOMEDS_AttributeStudyProperties::GetComment()
+{
+  std::string aComment;
+  if (_isLocal) {
+    SALOMEDS::Locker lock;
+    aComment = dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl)->GetComment();
+  }
+  else 
+    aComment = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetComment();
+  return aComment;
+}
+
+
+void SALOMEDS_AttributeStudyProperties::SetUnits(const std::string& theUnits)
+{
+  if (_isLocal) {
+    CheckLocked();
+    SALOMEDS::Locker lock;
+    SALOMEDSImpl_AttributeStudyProperties* anImpl =
+      dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl);
+    anImpl->SetUnits(theUnits);
+  } else
+    ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->SetUnits(theUnits.c_str());
+}
+
+std::string SALOMEDS_AttributeStudyProperties::GetUnits()
+{
+  std::string anUnits;
+  if (_isLocal) {
+    SALOMEDS::Locker lock;
+    anUnits = dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl)->GetUnits();
+  }
+  else 
+    anUnits = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetUnits();
+  return anUnits;
+}
+
+std::vector<std::string> SALOMEDS_AttributeStudyProperties::GetStoredComponents()
+{
+  std::vector<std::string> aComponents;
+  if (_isLocal) {
+    SALOMEDS::Locker lock;
+    aComponents = dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl)->GetStoredComponents();
+  }
+  else {
+    SALOMEDS::StringSeq_var components = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetStoredComponents();
+    int length = components->length();
+    for (int i = 0; i < length; i++) {
+      aComponents.push_back(components[i].in());
+    }
+  }
+  return aComponents;
+}
+
+std::string SALOMEDS_AttributeStudyProperties::GetComponentVersion( const std::string& theComponent )
+{
+  std::string aVersion;
+  if (_isLocal) {
+    SALOMEDS::Locker lock;
+    aVersion = dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl)->GetComponentVersion(theComponent);
+  }
+  else 
+    aVersion = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetComponentVersion(theComponent.c_str());
+  return aVersion;
+}
+
+std::vector<std::string> SALOMEDS_AttributeStudyProperties::GetComponentVersions( const std::string& theComponent )
+{
+  std::vector<std::string> aVersions;
+  if (_isLocal) {
+    SALOMEDS::Locker lock;
+    aVersions = dynamic_cast<SALOMEDSImpl_AttributeStudyProperties*>(_local_impl)->GetComponentVersions(theComponent);
+  }
+  else {
+    SALOMEDS::StringSeq_var versions = ((SALOMEDS::AttributeStudyProperties_var)SALOMEDS::AttributeStudyProperties::_narrow(_corba_impl))->GetComponentVersions(theComponent.c_str());
+    int length = versions->length();
+    for (int i = 0; i < length; i++) {
+      aVersions.push_back(versions[i].in());
+    }
+  }
+  return aVersions;
+}