Back to index

salome-kernel  6.5.0
SALOMEDSImpl_AttributeUserID.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   : SALOMEDSImpl_AttributeUAttribute.cxx
00024 //  Author : Sergey RUIN
00025 //  Module : SALOME
00026 //
00027 #include "SALOMEDSImpl_AttributeUserID.hxx"
00028 #include "Basics_Utils.hxx"
00029 
00030 std::string SALOMEDSImpl_AttributeUserID::DefaultID()
00031 {
00032   return Kernel_Utils::GetGUID(Kernel_Utils::DefUserID);
00033 }   
00034 
00035 SALOMEDSImpl_AttributeUserID* SALOMEDSImpl_AttributeUserID::Set (const DF_Label& L, const std::string& ID) 
00036 {
00037   SALOMEDSImpl_AttributeUserID* A = NULL;
00038   if (!(A=(SALOMEDSImpl_AttributeUserID*)L.FindAttribute(ID))) {
00039     A = new  SALOMEDSImpl_AttributeUserID(); 
00040     A->SetValue(ID);
00041     L.AddAttribute(A);
00042   }
00043   return A;
00044 }
00045 
00046 //=======================================================================
00047 //function : ID
00048 //purpose  :
00049 //=======================================================================
00050 const std::string& SALOMEDSImpl_AttributeUserID::ID() const
00051 { return myID; }
00052 
00053 
00054 //=======================================================================
00055 //function : SetValue
00056 //purpose  :
00057 //=======================================================================
00058 void SALOMEDSImpl_AttributeUserID::SetValue( const std::string&  guid)
00059 {
00060   CheckLocked();
00061   if(myID == guid) return;
00062 
00063   Backup();
00064   myID = guid;
00065   
00066   SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved 
00067 }        
00068 
00069 //=======================================================================
00070 //function : NewEmpty
00071 //purpose  :
00072 //=======================================================================
00073 DF_Attribute* SALOMEDSImpl_AttributeUserID::NewEmpty () const
00074 {
00075   SALOMEDSImpl_AttributeUserID* A = new SALOMEDSImpl_AttributeUserID();
00076   A->SetValue(myID);
00077   return A;
00078 }
00079 
00080 //=======================================================================
00081 //function : Restore
00082 //purpose  :
00083 //=======================================================================
00084 void SALOMEDSImpl_AttributeUserID::Restore(DF_Attribute* with)
00085 {
00086   SALOMEDSImpl_AttributeUserID* A = dynamic_cast<SALOMEDSImpl_AttributeUserID*>(with);
00087   SetValue( A->ID() );
00088 }
00089 
00090 //=======================================================================
00091 //function : Paste
00092 //purpose  :
00093 //=======================================================================
00094 void SALOMEDSImpl_AttributeUserID::Paste (DF_Attribute* into)
00095 {
00096   SALOMEDSImpl_AttributeUserID* A = dynamic_cast<SALOMEDSImpl_AttributeUserID*>(into);
00097   A->SetValue( myID );
00098 }    
00099 
00100 std::string SALOMEDSImpl_AttributeUserID::Type() 
00101 {
00102 
00103   char* aUAttrName = new char[127];
00104   sprintf(aUAttrName, "AttributeUserID_%s",ID().c_str());
00105 
00106   std::string ret(aUAttrName);
00107   delete aUAttrName;
00108 
00109   return ret;
00110 }