GME  13
OCLTypeExBasic.h
Go to the documentation of this file.
00001 //###############################################################################################################################################
00002 //
00003 //      Object Constraint Language Generic Manager
00004 //      OCLTypeExBasic.h
00005 //
00006 //###############################################################################################################################################
00007 
00008 #ifndef OCLTypeExBasic_h
00009 #define OCLTypeExBasic_h
00010 
00011 #include "StdAfx.h"
00012 #include "OCLCommon.h"
00013 #include "OCLFactory.h"
00014 #include "OCLType.h"
00015 
00016 namespace OclBasic
00017 {
00018 
00019 //##############################################################################################################################################
00020 //
00021 //      T Y P E   O F   ocl::Any
00022 //
00023 //##############################################################################################################################################
00024 
00025         class TAny_MethodFactory
00026                 : public OclImplementation::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::String
00035 //
00036 //##############################################################################################################################################
00037 
00038         class TString_AttributeFactory
00039                 : public OclImplementation::AttributeFactory
00040         {
00041                 public :
00042                         virtual void GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures );
00043         };
00044 
00045         class TString_MethodFactory
00046                 : public OclImplementation::MethodFactory
00047         {
00048                 public :
00049                         virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures );
00050         };
00051 
00052 
00053 //##############################################################################################################################################
00054 //
00055 //      T Y P E   O F   ocl::Enumeration
00056 //
00057 //##############################################################################################################################################
00058         class TEnumeration_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   ocl::Real
00068 //
00069 //##############################################################################################################################################
00070 
00071         class TReal_MethodFactory
00072                 : public OclImplementation::MethodFactory
00073         {
00074                 public :
00075                         virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures );
00076         };
00077 
00078 //##############################################################################################################################################
00079 //
00080 //      T Y P E   O F   ocl::Integer
00081 //
00082 //##############################################################################################################################################
00083 
00084         class TInteger_MethodFactory
00085                 : public OclImplementation::MethodFactory
00086         {
00087                 public :
00088                         virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures );
00089         };
00090 
00091 //##############################################################################################################################################
00092 //
00093 //      T Y P E   O F   ocl::Collection
00094 //
00095 //##############################################################################################################################################
00096 
00097         class TCollection_AttributeFactory
00098                 : public OclImplementation::AttributeFactory
00099         {
00100                 public :
00101                         virtual void GetFeatures( const OclSignature::Attribute& signature, OclMeta::AttributeVector& vecFeatures );
00102         };
00103 
00104         class TCollection_MethodFactory
00105                 : public OclImplementation::MethodFactory
00106         {
00107                 public :
00108                         virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures );
00109         };
00110 
00111         class TCollection_IteratorFactory
00112                 : public OclImplementation::IteratorFactory
00113         {
00114                 public :
00115                         virtual void GetFeatures( const OclSignature::Iterator& signature, OclMeta::IteratorVector& vecFeatures );
00116         };
00117 
00118 //##############################################################################################################################################
00119 //
00120 //      T Y P E   O F   ocl::Set
00121 //
00122 //##############################################################################################################################################
00123 
00124         class TSet_MethodFactory
00125                 : public OclImplementation::MethodFactory
00126         {
00127                 public :
00128                         virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures );
00129         };
00130 
00131         class TSet_IteratorFactory
00132                 : public OclImplementation::IteratorFactory
00133         {
00134                 public :
00135                         virtual void GetFeatures( const OclSignature::Iterator& signature, OclMeta::IteratorVector& vecFeatures );
00136         };
00137 
00138 //##############################################################################################################################################
00139 //
00140 //      T Y P E   O F   ocl::Sequence
00141 //
00142 //##############################################################################################################################################
00143 
00144         class TSequence_MethodFactory
00145                 : public OclImplementation::MethodFactory
00146         {
00147                 public :
00148                         virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures );
00149         };
00150 
00151         class TSequence_IteratorFactory
00152                 : public OclImplementation::IteratorFactory
00153         {
00154                 public :
00155                         virtual void GetFeatures( const OclSignature::Iterator& signature, OclMeta::IteratorVector& vecFeatures );
00156         };
00157 
00158 //##############################################################################################################################################
00159 //
00160 //      T Y P E   O F   ocl::Bag
00161 //
00162 //##############################################################################################################################################
00163 
00164         class TBag_MethodFactory
00165                 : public OclImplementation::MethodFactory
00166         {
00167                 public :
00168                         virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures );
00169         };
00170 
00171         class TBag_IteratorFactory
00172                 : public OclImplementation::IteratorFactory
00173         {
00174                 public :
00175                         virtual void GetFeatures( const OclSignature::Iterator& signature, OclMeta::IteratorVector& vecFeatures );
00176         };
00177 
00178 //##############################################################################################################################################
00179 //
00180 //      T Y P E   O F   ocl::OrderedSet
00181 //
00182 //##############################################################################################################################################
00183 
00184         class TOrderedSet_MethodFactory
00185                 : public OclImplementation::MethodFactory
00186         {
00187                 public :
00188                         virtual void GetFeatures( const OclSignature::Method& signature, OclMeta::MethodVector& vecFeatures );
00189         };
00190 
00191         class TOrderedSet_IteratorFactory
00192                 : public OclImplementation::IteratorFactory
00193         {
00194                 public :
00195                         virtual void GetFeatures( const OclSignature::Iterator& signature, OclMeta::IteratorVector& vecFeatures );
00196         };
00197 
00198 //##############################################################################################################################################
00199 //
00200 //      G L O B A L   F A C T O R I E S
00201 //
00202 //##############################################################################################################################################
00203 
00204         class OperatorFactory
00205                 : public OclImplementation::OperatorFactory
00206         {
00207                 public :
00208                         virtual void GetFeatures( const OclSignature::Operator& signature, OclMeta::OperatorVector& vecFeatures );
00209         };
00210 
00211         class FunctionFactory
00212                 : public OclImplementation::FunctionFactory
00213         {
00214                 public :
00215                         virtual void GetFeatures( const OclSignature::Function& signature, OclMeta::FunctionVector& vecFeatures );
00216         };
00217 
00218         class TypeFactory
00219                 : public OclImplementation::TypeFactory
00220         {
00221                 public :
00222                         virtual void GetTypes( const std::string& strName, const std::string& strNSpace, std::vector<std::unique_ptr<OclMeta::Type>>& vecTypes, std::string& nameRes );
00223         };
00224 
00225 }; // namespace OclBasic
00226 
00227 #endif // OCLTypeExBasic_h