Salome HOME
Update copyrights
[modules/kernel.git] / src / SALOMEDSImpl / SALOMEDSImpl_AttributeUserID.cxx
1 // Copyright (C) 2007-2019  CEA/DEN, EDF R&D, OPEN CASCADE
2 //
3 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5 //
6 // This library is free software; you can redistribute it and/or
7 // modify it under the terms of the GNU Lesser General Public
8 // License as published by the Free Software Foundation; either
9 // version 2.1 of the License, or (at your option) any later version.
10 //
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public
17 // License along with this library; if not, write to the Free Software
18 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
19 //
20 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21 //
22
23 //  File   : SALOMEDSImpl_AttributeUAttribute.cxx
24 //  Author : Sergey RUIN
25 //  Module : SALOME
26 //
27 #include "SALOMEDSImpl_AttributeUserID.hxx"
28 #include "Basics_Utils.hxx"
29
30 std::string SALOMEDSImpl_AttributeUserID::DefaultID()
31 {
32   return Kernel_Utils::GetGUID(Kernel_Utils::DefUserID);
33 }   
34
35 SALOMEDSImpl_AttributeUserID* SALOMEDSImpl_AttributeUserID::Set (const DF_Label& L, const std::string& ID) 
36 {
37   SALOMEDSImpl_AttributeUserID* A = NULL;
38   if (!(A=(SALOMEDSImpl_AttributeUserID*)L.FindAttribute(ID))) {
39     A = new  SALOMEDSImpl_AttributeUserID(); 
40     A->SetValue(ID);
41     L.AddAttribute(A);
42   }
43   return A;
44 }
45
46 //=======================================================================
47 //function : ID
48 //purpose  :
49 //=======================================================================
50 const std::string& SALOMEDSImpl_AttributeUserID::ID() const
51 { return myID; }
52
53
54 //=======================================================================
55 //function : SetValue
56 //purpose  :
57 //=======================================================================
58 void SALOMEDSImpl_AttributeUserID::SetValue( const std::string&  guid)
59 {
60   CheckLocked();
61   if(myID == guid) return;
62
63   Backup();
64   myID = guid;
65   
66   SetModifyFlag(); //SRN: Mark the study as being modified, so it could be saved 
67 }        
68
69 //=======================================================================
70 //function : NewEmpty
71 //purpose  :
72 //=======================================================================
73 DF_Attribute* SALOMEDSImpl_AttributeUserID::NewEmpty () const
74 {
75   SALOMEDSImpl_AttributeUserID* A = new SALOMEDSImpl_AttributeUserID();
76   A->SetValue(myID);
77   return A;
78 }
79
80 //=======================================================================
81 //function : Restore
82 //purpose  :
83 //=======================================================================
84 void SALOMEDSImpl_AttributeUserID::Restore(DF_Attribute* with)
85 {
86   SALOMEDSImpl_AttributeUserID* A = dynamic_cast<SALOMEDSImpl_AttributeUserID*>(with);
87   SetValue( A->ID() );
88 }
89
90 //=======================================================================
91 //function : Paste
92 //purpose  :
93 //=======================================================================
94 void SALOMEDSImpl_AttributeUserID::Paste (DF_Attribute* into)
95 {
96   SALOMEDSImpl_AttributeUserID* A = dynamic_cast<SALOMEDSImpl_AttributeUserID*>(into);
97   A->SetValue( myID );
98 }    
99
100 std::string SALOMEDSImpl_AttributeUserID::Type() 
101 {
102
103   char* aUAttrName = new char[127];
104   sprintf(aUAttrName, "AttributeUserID_%s",ID().c_str());
105
106   std::string ret(aUAttrName);
107   delete aUAttrName;
108
109   return ret;
110 }