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