GME
13
|
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