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