GME
13
|
00001 //############################################################################################################################################### 00002 // 00003 // Object Constraint Language Generic Manager 00004 // OCLObjectExGME.cpp 00005 // 00006 //############################################################################################################################################### 00007 #include "Solve4786.h" 00008 #include "OCLObjectExGME.h" 00009 #include "OCLCommonEx.h" 00010 #include "OCLType.h" 00011 00012 namespace OclGmeCM 00013 { 00014 00015 //############################################################################################################################################## 00016 // 00017 // C L A S S : OclGmeCM::Object <<< + Any 00018 // 00019 //############################################################################################################################################## 00020 00021 Object::Object( OclMeta::TypeManager* pManager, CComPtr<IMgaObject> value ) 00022 : Any( pManager, "gme::Object" ), m_Value( value.p ) 00023 { 00024 SetTypeName(); 00025 } 00026 00027 Object::Object( OclMeta::TypeManager* pManager, CComPtr<IMgaFolder> value ) 00028 : Any( pManager, "gme::Folder" ), m_Value( value.p ) 00029 { 00030 SetTypeName(); 00031 } 00032 00033 Object::Object( OclMeta::TypeManager* pManager, CComPtr<IMgaFCO> value ) 00034 : Any( pManager, "gme::FCO" ), m_Value( value.p ) 00035 { 00036 SetTypeName(); 00037 } 00038 00039 Object::Object( OclMeta::TypeManager* pManager, CComPtr<IMgaAtom> value ) 00040 : Any( pManager, "gme::Atom" ), m_Value( value.p ) 00041 { 00042 SetTypeName(); 00043 } 00044 00045 Object::Object( OclMeta::TypeManager* pManager, CComPtr<IMgaModel> value ) 00046 : Any( pManager, "gme::Model" ), m_Value( value.p ) 00047 { 00048 SetTypeName(); 00049 } 00050 00051 Object::Object( OclMeta::TypeManager* pManager, CComPtr<IMgaConnection> value ) 00052 : Any( pManager, "gme::Connection" ), m_Value( value.p ) 00053 { 00054 SetTypeName(); 00055 } 00056 00057 Object::Object( OclMeta::TypeManager* pManager, CComPtr<IMgaReference> value ) 00058 : Any( pManager, "gme::Reference" ), m_Value( value.p ) 00059 { 00060 SetTypeName(); 00061 } 00062 00063 Object::Object( OclMeta::TypeManager* pManager, CComPtr<IMgaSet> value ) 00064 : Any( pManager, "gme::Set" ), m_Value( value.p ) 00065 { 00066 SetTypeName(); 00067 } 00068 00069 void Object::SetTypeName() 00070 { 00071 if ( m_Value != NULL && m_Value.p ) 00072 m_strTypeName = "meta::" + OclCommonEx::GetObjectKind( m_Value ); 00073 } 00074 00075 Any* Object::Clone() const 00076 { 00077 Object* pObject = new Object( GetTypeManager(), m_Value ); 00078 pObject->m_strTypeName = m_strTypeName; 00079 return pObject; 00080 } 00081 00082 int Object::GetValue( CComPtr<IMgaObject>& value ) const 00083 { 00084 value = m_Value; 00085 return S_OK; 00086 } 00087 00088 void Object::SetValue( CComPtr<IMgaObject> value ) 00089 { 00090 m_Value = value.p; 00091 SetTypeName(); 00092 } 00093 00094 int Object::GetValue( CComPtr<IMgaFolder>& value ) const 00095 { 00096 if (m_Value == NULL) 00097 { 00098 value = NULL; 00099 return 0; 00100 } 00101 return m_Value->QueryInterface( &value ); 00102 } 00103 00104 void Object::SetValue( CComPtr<IMgaFolder> value ) 00105 { 00106 m_Value = value.p; 00107 SetTypeName(); 00108 } 00109 00110 int Object::GetValue( CComPtr<IMgaFCO>& value ) const 00111 { 00112 if (m_Value == NULL) 00113 { 00114 value = NULL; 00115 return 0; 00116 } 00117 return m_Value->QueryInterface( &value ); 00118 } 00119 00120 void Object::SetValue( CComPtr<IMgaFCO> value ) 00121 { 00122 m_Value = value.p; 00123 SetTypeName(); 00124 } 00125 00126 int Object::GetValue( CComPtr<IMgaModel>& value ) const 00127 { 00128 if (m_Value == NULL) 00129 { 00130 value = NULL; 00131 return 0; 00132 } 00133 return m_Value->QueryInterface( &value ); 00134 } 00135 00136 void Object::SetValue( CComPtr<IMgaModel> value ) 00137 { 00138 m_Value = value.p; 00139 SetTypeName(); 00140 } 00141 00142 int Object::GetValue( CComPtr<IMgaAtom>& value ) const 00143 { 00144 if (m_Value == NULL) 00145 { 00146 value = NULL; 00147 return 0; 00148 } 00149 return m_Value->QueryInterface( &value ); 00150 } 00151 00152 void Object::SetValue( CComPtr<IMgaAtom> value ) 00153 { 00154 m_Value = value.p; 00155 SetTypeName(); 00156 } 00157 00158 int Object::GetValue( CComPtr<IMgaReference>& value ) const 00159 { 00160 if (m_Value == NULL) 00161 { 00162 value = NULL; 00163 return 0; 00164 } 00165 return m_Value->QueryInterface( &value ); 00166 } 00167 00168 void Object::SetValue( CComPtr<IMgaReference> value ) 00169 { 00170 m_Value = value.p; 00171 SetTypeName(); 00172 } 00173 00174 int Object::GetValue( CComPtr<IMgaConnection>& value ) const 00175 { 00176 if (m_Value == NULL) 00177 { 00178 value = NULL; 00179 return 0; 00180 } 00181 return m_Value->QueryInterface( &value ); 00182 } 00183 00184 void Object::SetValue( CComPtr<IMgaConnection> value ) 00185 { 00186 m_Value = value.p; 00187 SetTypeName(); 00188 } 00189 00190 int Object::GetValue( CComPtr<IMgaSet>& value ) const 00191 { 00192 if (m_Value == NULL) 00193 { 00194 value = NULL; 00195 return 0; 00196 } 00197 return m_Value->QueryInterface( &value ); 00198 } 00199 00200 void Object::SetValue( CComPtr<IMgaSet> value ) 00201 { 00202 m_Value = value.p; 00203 SetTypeName(); 00204 } 00205 00206 bool Object::Equals( const Any& object ) const 00207 { 00208 if ( GetTypeManager()->IsTypeA( object.GetTypeName(), "gme::Object" ) >= 0 ) 00209 return m_Value == ( ( Object* ) &object )->m_Value; 00210 else 00211 return false; 00212 } 00213 00214 bool Object::operator==( const Object& object ) const 00215 { 00216 return Equals( object ); 00217 } 00218 bool Object::operator!=( const Object& object ) const 00219 { 00220 return ! ( *this == object ); 00221 } 00222 00223 std::string Object::Print() const 00224 { 00225 return OclCommonEx::GetObjectDescription( m_Value ); 00226 } 00227 00228 IUnknown* Object::GetObject() const 00229 { 00230 if (m_Value == NULL) 00231 return NULL; 00232 IUnknown* ret = NULL; 00233 m_Value.QueryInterface(&ret); 00234 return ret; 00235 } 00236 00237 //############################################################################################################################################## 00238 // 00239 // C L A S S : OclGmeCM::ConnectionPoint <<< + Any 00240 // 00241 //############################################################################################################################################## 00242 00243 ConnectionPoint::ConnectionPoint( OclMeta::TypeManager* pManager, CComPtr<IMgaConnPoint> value ) 00244 : Any( pManager, "gme::ConnectionPoint" ), m_Value( value ) 00245 { 00246 } 00247 00248 Any* ConnectionPoint::Clone() const 00249 { 00250 return new ConnectionPoint( GetTypeManager(), m_Value ); 00251 } 00252 00253 int ConnectionPoint::GetValue( CComPtr<IMgaConnPoint>& value ) const 00254 { 00255 value = m_Value; 00256 return S_OK; 00257 } 00258 00259 void ConnectionPoint::SetValue( CComPtr<IMgaConnPoint> value ) 00260 { 00261 m_Value = value; 00262 } 00263 00264 bool ConnectionPoint::Equals( const Any& object ) const 00265 { 00266 if ( GetTypeManager()->IsTypeA( object.GetTypeName(), "gme::ConnectionPoint" ) >= 0 ) 00267 return m_Value == ( ( ConnectionPoint* ) &object )->m_Value; 00268 else 00269 return false; 00270 } 00271 00272 bool ConnectionPoint::operator==( const ConnectionPoint& object ) const 00273 { 00274 return Equals( object ); 00275 } 00276 00277 bool ConnectionPoint::operator!=( const ConnectionPoint& object ) const 00278 { 00279 return ! ( *this == object ); 00280 } 00281 00282 std::string ConnectionPoint::Print() const 00283 { 00284 return OclCommonEx::GetConnectionPointDescription( m_Value ); 00285 } 00286 00287 //############################################################################################################################################## 00288 // 00289 // C L A S S : OclGmeCM::Project <<< + Any 00290 // 00291 //############################################################################################################################################## 00292 00293 Project::Project( OclMeta::TypeManager* pManager, CComPtr<IMgaProject> value ) 00294 : Any( pManager, "gme::Project" ), m_Value( value ) 00295 { 00296 } 00297 00298 Any* Project::Clone() const 00299 { 00300 return new Project( GetTypeManager(), m_Value ); 00301 } 00302 00303 int Project::GetValue( CComPtr<IMgaProject>& value ) const 00304 { 00305 value = m_Value; 00306 return S_OK; 00307 } 00308 00309 void Project::SetValue( CComPtr<IMgaProject> value ) 00310 { 00311 m_Value = value; 00312 } 00313 00314 bool Project::Equals( const Any& object ) const 00315 { 00316 if ( GetTypeManager()->IsTypeA( object.GetTypeName(), "gme::Project" ) >= 0 ) 00317 return m_Value == ( ( Project* ) &object )->m_Value; 00318 else 00319 return false; 00320 } 00321 00322 bool Project::operator==( const Project& object ) const 00323 { 00324 return Equals( object ); 00325 } 00326 00327 bool Project::operator!=( const Project& object ) const 00328 { 00329 return ! ( *this == object ); 00330 } 00331 00332 std::string Project::Print() const 00333 { 00334 CString strName; 00335 COMTHROW( m_Value->get_Name( PutOut( strName ) ) ); 00336 return std::string("gme::Project { name: ") + std::string(CStringA(strName)) + "; }"; 00337 } 00338 00339 }; // namespace OclGmeCM