GME
13
|
00001 //############################################################################################################################################### 00002 // 00003 // Object Constraint Language Generic Manager 00004 // OCLTypeExGMECM.h 00005 // 00006 //############################################################################################################################################### 00007 00008 #ifndef OCLTypeExGMECM_h 00009 #define OCLTypeExGMECM_h 00010 00011 #include "OCLGMECMFacade.h" 00012 #include "OCLTypeExBasic.h" 00013 #include "OCLCommonEx.h" 00014 #include "meta.h" 00015 00016 namespace OclGmeCM 00017 { 00018 00019 //############################################################################################################################################## 00020 // 00021 // T Y P E O F ocl::String 00022 // 00023 //############################################################################################################################################## 00024 00025 class TStringEx_MethodFactory 00026 : public OclBasic::TString_MethodFactory 00027 { 00028 public : 00029 virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures ); 00030 }; 00031 00032 //############################################################################################################################################## 00033 // 00034 // T Y P E O F ocl::Collection 00035 // 00036 //############################################################################################################################################## 00037 00038 class TCollectionEx_MethodFactory 00039 : public OclBasic::TCollection_MethodFactory 00040 { 00041 public : 00042 virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures ); 00043 }; 00044 00045 //############################################################################################################################################## 00046 // 00047 // T Y P E O F gme::Project 00048 // 00049 //############################################################################################################################################## 00050 00051 class TProject_AttributeFactory 00052 : public OclImplementation::AttributeFactory 00053 { 00054 public : 00055 virtual void GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures ); 00056 }; 00057 00058 class TProject_MethodFactory 00059 : public OclImplementation::MethodFactory 00060 { 00061 public : 00062 virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures ); 00063 }; 00064 00065 //############################################################################################################################################## 00066 // 00067 // T Y P E O F gme::ConnectionPoint 00068 // 00069 //############################################################################################################################################## 00070 00071 class TConnectionPoint_AttributeFactory 00072 : public OclImplementation::AttributeFactory 00073 { 00074 public : 00075 virtual void GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures ); 00076 }; 00077 00078 00079 class TConnectionPoint_MethodFactory 00080 : public OclImplementation::MethodFactory 00081 { 00082 public : 00083 virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures ); 00084 }; 00085 00086 //############################################################################################################################################## 00087 // 00088 // T Y P E O F gme::Object 00089 // 00090 //############################################################################################################################################## 00091 00092 class TObject_AttributeFactory 00093 : public OclImplementation::AttributeFactory 00094 { 00095 public : 00096 virtual void GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures ); 00097 }; 00098 00099 00100 class TObject_MethodFactory 00101 : public OclImplementation::MethodFactory 00102 { 00103 public : 00104 virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures ); 00105 }; 00106 00107 //############################################################################################################################################## 00108 // 00109 // T Y P E O F gme::Folder 00110 // 00111 //############################################################################################################################################## 00112 00113 class TFolder_MethodFactory 00114 : public OclImplementation::MethodFactory 00115 { 00116 public : 00117 virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures ); 00118 }; 00119 00120 //############################################################################################################################################## 00121 // 00122 // T Y P E O F gme::FCO 00123 // 00124 //############################################################################################################################################## 00125 00126 class TFCO_AttributeFactory 00127 : public OclImplementation::AttributeFactory 00128 { 00129 public : 00130 virtual void GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures ); 00131 }; 00132 00133 00134 class TFCO_MethodFactory 00135 : public OclImplementation::MethodFactory 00136 { 00137 public : 00138 virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures ); 00139 }; 00140 00141 //############################################################################################################################################## 00142 // 00143 // T Y P E O F gme::Model 00144 // 00145 //############################################################################################################################################## 00146 00147 class TModel_MethodFactory 00148 : public OclImplementation::MethodFactory 00149 { 00150 public : 00151 virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures ); 00152 }; 00153 00154 //############################################################################################################################################## 00155 // 00156 // T Y P E O F gme::Atom 00157 // 00158 //############################################################################################################################################## 00159 00160 //############################################################################################################################################## 00161 // 00162 // T Y P E O F gme::Connection 00163 // 00164 //############################################################################################################################################## 00165 00166 class TConnection_MethodFactory 00167 : public OclImplementation::MethodFactory 00168 { 00169 public : 00170 virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures ); 00171 }; 00172 00173 //############################################################################################################################################## 00174 // 00175 // T Y P E O F gme::Reference 00176 // 00177 //############################################################################################################################################## 00178 00179 class TReference_MethodFactory 00180 : public OclImplementation::MethodFactory 00181 { 00182 public : 00183 virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures ); 00184 }; 00185 00186 //############################################################################################################################################## 00187 // 00188 // T Y P E O F gme::Set 00189 // 00190 //############################################################################################################################################## 00191 00192 class TSet_MethodFactory 00193 : public OclImplementation::MethodFactory 00194 { 00195 public : 00196 virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures ); 00197 }; 00198 00199 //############################################################################################################################################## 00200 // 00201 // T Y P E O F D E R I V E D O F gme::FCO 00202 // 00203 //############################################################################################################################################## 00204 00205 class TFCODerived_AttributeFactory 00206 : public OclImplementation::AttributeFactory 00207 { 00208 private : 00209 CComPtr<IMgaMetaFCO> m_spMetaFCO; 00210 00211 public : 00212 TFCODerived_AttributeFactory( CComPtr<IMgaMetaFCO> spMetaFCO ); 00213 00214 virtual void GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures ); 00215 }; 00216 00217 //############################################################################################################################################## 00218 // 00219 // G L O B A L F A C T O R I E S 00220 // 00221 //############################################################################################################################################## 00222 00223 class TypeFactory 00224 : public OclImplementation::TypeFactory 00225 { 00226 private : 00227 CComPtr<IMgaProject> m_spProject; 00228 00229 public : 00230 TypeFactory( CComPtr<IMgaProject> spProject ); 00231 00232 virtual void GetTypes( const std::string& strName, const std::string& strNSpace, std::vector<std::unique_ptr<OclMeta::Type>>& vecTypes, std::string& strNameRes ); 00233 private : 00234 void GetStereotypes( const std::string& strName, std::vector<std::unique_ptr<OclMeta::Type>>& vecTypes ); 00235 void GetDynamicTypes( const std::string& strName, std::vector<std::unique_ptr<OclMeta::Type>>& vecTypes, std::string& strNameResult ); 00236 }; 00237 00238 }; // namespace OclGmeCM 00239 00240 #endif // OCLTypeExGMECM_h