GME  13
OCLTypeExGMECM.h
Go to the documentation of this file.
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