Version: 8.3.0
SALOMEDSImpl_Attributes.hxx
Go to the documentation of this file.
1 // Copyright (C) 2007-2016 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_Attributes.hxx
24 // Author : Sergey RUIN
25 // Module : SALOME
26 //
27 #ifndef __SALOMEDSIMPL_ATTRIBUTES__H__
28 #define __SALOMEDSIMPL_ATTRIBUTES__H__
29 
30 #include "SALOMEDSImpl_Defines.hxx"
31 
32 #include <iostream>
34 {
35 public :
36  LockProtection(const char *message) {
37  std::cerr << message << std::endl;
38  }
39 };
40 
73 
74 
75 #define __AttributeTypeToGUIDForSObject \
76  if(theType == "AttributeReal") return SALOMEDSImpl_AttributeReal::GetID(); \
77  if(theType == "AttributeInteger") return SALOMEDSImpl_AttributeInteger::GetID(); \
78  if(theType == "AttributeSequenceOfReal") return SALOMEDSImpl_AttributeSequenceOfReal::GetID(); \
79  if(theType == "AttributeSequenceOfInteger") return SALOMEDSImpl_AttributeSequenceOfInteger::GetID(); \
80  if(theType == "AttributeName") return SALOMEDSImpl_AttributeName::GetID(); \
81  if(theType == "AttributeComment") return SALOMEDSImpl_AttributeComment::GetID(); \
82  if(theType == "AttributeIOR") return SALOMEDSImpl_AttributeIOR::GetID(); \
83  if(theType == "AttributePersistentRef") return SALOMEDSImpl_AttributePersistentRef::GetID(); \
84  if(theType == "AttributeDrawable") return SALOMEDSImpl_AttributeDrawable::GetID(); \
85  if(theType == "AttributeSelectable") return SALOMEDSImpl_AttributeSelectable::GetID(); \
86  if(theType == "AttributeExpandable") return SALOMEDSImpl_AttributeExpandable::GetID(); \
87  if(theType == "AttributeOpened") return SALOMEDSImpl_AttributeOpened::GetID(); \
88  if(theType == "AttributeTextColor") return SALOMEDSImpl_AttributeTextColor::GetID(); \
89  if(theType == "AttributeTextHighlightColor") return SALOMEDSImpl_AttributeTextHighlightColor::GetID(); \
90  if(theType == "AttributePixMap") return SALOMEDSImpl_AttributePixMap::GetID(); \
91  if(theType == "AttributeLocalID") return SALOMEDSImpl_AttributeLocalID::GetID(); \
92  if(theType == "AttributeTarget") return SALOMEDSImpl_AttributeTarget::GetID(); \
93  if(theType == "AttributeTableOfInteger") return SALOMEDSImpl_AttributeTableOfInteger::GetID(); \
94  if(theType == "AttributeTableOfReal") return SALOMEDSImpl_AttributeTableOfReal::GetID(); \
95  if(theType == "AttributeTableOfString") return SALOMEDSImpl_AttributeTableOfString::GetID(); \
96  if(theType == "AttributeStudyProperties") return SALOMEDSImpl_AttributeStudyProperties::GetID(); \
97  if(theType == "AttributePythonObject") return SALOMEDSImpl_AttributePythonObject::GetID(); \
98  if(theType == "AttributeUserID") return std::string("FFFFFFFF-D9CD-11d6-945D-1050DA506788"); \
99  if(theType == "AttributeExternalFileDef") return SALOMEDSImpl_AttributeExternalFileDef::GetID(); \
100  if(theType == "AttributeFileType") return SALOMEDSImpl_AttributeFileType::GetID(); \
101  if(theType == "AttributeFlags") return SALOMEDSImpl_AttributeFlags::GetID(); \
102  if(theType == "AttributeGraphic") return SALOMEDSImpl_AttributeGraphic::GetID(); \
103  if(theType == "AttributeReference") return SALOMEDSImpl_AttributeReference::GetID(); \
104  if(theType == "AttributeParameter") return SALOMEDSImpl_AttributeParameter::GetID(); \
105  if(theType == "AttributeString") return SALOMEDSImpl_AttributeString::GetID();
106 
107 
108 #define __FindOrCreateAttributeLocked(ClassName) if (strcmp(aTypeOfAttribute.c_str(), #ClassName) == 0) { \
109  SALOMEDSImpl_##ClassName* anAttr; \
110  if (!(anAttr=(SALOMEDSImpl_##ClassName*)Lab.FindAttribute(SALOMEDSImpl_##ClassName::GetID()))) { \
111  CheckLocked(); \
112  anAttr = new SALOMEDSImpl_##ClassName; \
113  Lab.AddAttribute(anAttr); \
114  } \
115  return anAttr; \
116  }
117 
118 #define __FindOrCreateAttribute(ClassName) if (strcmp(aTypeOfAttribute.c_str(), #ClassName) == 0) { \
119  SALOMEDSImpl_##ClassName* anAttr; \
120  if (!(anAttr=(SALOMEDSImpl_##ClassName*)Lab.FindAttribute(SALOMEDSImpl_##ClassName::GetID()))) { \
121  anAttr = new SALOMEDSImpl_##ClassName; \
122  Lab.AddAttribute(anAttr); \
123  } \
124  return anAttr; \
125  }
126 
127 #define __FindOrCreateAttributeForBuilder \
128 __FindOrCreateAttributeLocked(AttributeReal) \
129 __FindOrCreateAttributeLocked(AttributeInteger) \
130 __FindOrCreateAttributeLocked(AttributeSequenceOfReal) \
131 __FindOrCreateAttributeLocked(AttributeSequenceOfInteger) \
132 __FindOrCreateAttributeLocked(AttributeName) \
133 __FindOrCreateAttributeLocked(AttributeComment) \
134 __FindOrCreateAttributeLocked(AttributeIOR) \
135 __FindOrCreateAttributeLocked(AttributePixMap) \
136 __FindOrCreateAttributeLocked(AttributeLocalID) \
137 __FindOrCreateAttributeLocked(AttributeTableOfInteger) \
138 __FindOrCreateAttributeLocked(AttributeTableOfReal) \
139 __FindOrCreateAttributeLocked(AttributeTableOfString) \
140 __FindOrCreateAttributeLocked(AttributePythonObject) \
141 __FindOrCreateAttributeLocked(AttributeParameter) \
142 __FindOrCreateAttributeLocked(AttributeString) \
143 __FindOrCreateAttribute(AttributePersistentRef) \
144 __FindOrCreateAttribute(AttributeDrawable) \
145 __FindOrCreateAttribute(AttributeSelectable) \
146 __FindOrCreateAttribute(AttributeExpandable) \
147 __FindOrCreateAttribute(AttributeOpened) \
148 __FindOrCreateAttribute(AttributeTextColor) \
149 __FindOrCreateAttribute(AttributeTextHighlightColor) \
150 __FindOrCreateAttribute(AttributeTarget) \
151 __FindOrCreateAttribute(AttributeStudyProperties) \
152 __FindOrCreateAttribute(AttributeExternalFileDef) \
153 __FindOrCreateAttribute(AttributeFileType) \
154 __FindOrCreateAttribute(AttributeFlags) \
155 __FindOrCreateAttribute(AttributeGraphic)
156 
157 
158 #endif