00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00036 #ifndef OW_VISITOR_HPP_INCLUDE_GUARD_
00037 #define OW_VISITOR_HPP_INCLUDE_GUARD_
00038
00039 #include "OW_config.h"
00040
00041
00042
00043
00044 namespace OW_NAMESPACE
00045 {
00046
00047 namespace MOF
00048 {
00049
00050
00051 class MOFSpecification;
00052
00053 class MOFProductionCompilerDirective;
00054 class MOFProductionClassDeclaration;
00055 class MOFProductionAssocDeclaration;
00056 class MOFProductionIndicDeclaration;
00057 class MOFProductionQualifierDeclaration;
00058 class MOFProductionInstanceDeclaration;
00059
00060 class CompilerDirective;
00061 class PragmaName;
00062 class PragmaParameter;
00063 class ClassDeclaration;
00064 class AssocDeclaration;
00065 class IndicDeclaration;
00066 class Alias;
00067 class AliasIdentifier;
00068 class SuperClass;
00069 class ClassName;
00070
00071 class ClassFeaturePropertyDeclaration;
00072 class ClassFeatureMethodDeclaration;
00073 class ClassFeatureReferenceDeclaration;
00074
00075 class AssociationFeatureClassFeature;
00076
00077 class PropertyDeclaration;
00078 class ReferenceDeclaration;
00079 class MethodDeclaration;
00080 class Qualifier;
00081
00082 class QualifierParameterConstantValue;
00083 class QualifierParameterArrayInitializer;
00084
00085 class Flavor;
00086 class PropertyName;
00087 class ReferenceName;
00088 class MethodName;
00089 class DataType;
00090 class ObjectRef;
00091 class ParameterDataType;
00092 class ParameterObjectRef;
00093 class ParameterName;
00094 class Array;
00095 class DefaultValue;
00096
00097 class IntegerValueBinaryValue;
00098 class IntegerValueOctalValue;
00099 class IntegerValueDecimalValue;
00100 class IntegerValueHexValue;
00101
00102 class FloatValue;
00103 class CharValue;
00104 class StringValue;
00105 class BooleanValue;
00106 class NullValue;
00107
00108 class ConstantValueIntegerValue;
00109 class ConstantValueFloatValue;
00110 class ConstantValueStringValue;
00111 class ConstantValueCharValue;
00112 class ConstantValueBooleanValue;
00113 class ConstantValueNullValue;
00114
00115 class InitializerReferenceInitializer;
00116 class InitializerArrayInitializer;
00117 class InitializerConstantValue;
00118
00119 class ArrayInitializer;
00120
00121 class ReferenceInitializerAliasIdentifier;
00122 class ReferenceInitializerObjectHandle;
00123 class ObjectHandle;
00124
00125 class QualifierDeclaration;
00126 class QualifierName;
00127 class QualifierType;
00128 class Scope;
00129 class MetaElement;
00130 class DefaultFlavor;
00131 class InstanceDeclaration;
00132 class ValueInitializer;
00133
00134
00135
00136 class OW_MOF_API Visitor {
00137 public:
00138 Visitor();
00139 virtual ~Visitor();
00140
00141 virtual void VisitMOFSpecification( const MOFSpecification * ) = 0;
00142
00143 virtual void VisitMOFProductionCompilerDirective( const MOFProductionCompilerDirective * ) = 0;
00144 virtual void VisitMOFProductionClassDeclaration( const MOFProductionClassDeclaration * ) = 0;
00145 virtual void VisitMOFProductionAssocDeclaration( const MOFProductionAssocDeclaration * ) = 0;
00146 virtual void VisitMOFProductionIndicDeclaration( const MOFProductionIndicDeclaration * ) = 0;
00147 virtual void VisitMOFProductionQualifierDeclaration( const MOFProductionQualifierDeclaration * ) = 0;
00148 virtual void VisitMOFProductionInstanceDeclaration( const MOFProductionInstanceDeclaration * ) = 0;
00149
00150 virtual void VisitCompilerDirective( const CompilerDirective * ) = 0;
00151 virtual void VisitPragmaName( const PragmaName * ) = 0;
00152 virtual void VisitPragmaParameter( const PragmaParameter * ) = 0;
00153 virtual void VisitClassDeclaration( const ClassDeclaration * ) = 0;
00154 virtual void VisitAssocDeclaration( const AssocDeclaration * ) = 0;
00155 virtual void VisitIndicDeclaration( const IndicDeclaration * ) = 0;
00156 virtual void VisitAlias( const Alias * ) = 0;
00157 virtual void VisitAliasIdentifier( const AliasIdentifier * ) = 0;
00158 virtual void VisitSuperClass( const SuperClass * ) = 0;
00159 virtual void VisitClassName( const ClassName * ) = 0;
00160
00161 virtual void VisitClassFeaturePropertyDeclaration( const ClassFeaturePropertyDeclaration * ) = 0;
00162 virtual void VisitClassFeatureMethodDeclaration( const ClassFeatureMethodDeclaration * ) = 0;
00163 virtual void VisitClassFeatureReferenceDeclaration( const ClassFeatureReferenceDeclaration * ) = 0;
00164
00165 virtual void VisitAssociationFeatureClassFeature( const AssociationFeatureClassFeature * ) = 0;
00166
00167 virtual void VisitPropertyDeclaration( const PropertyDeclaration * ) = 0;
00168 virtual void VisitReferenceDeclaration( const ReferenceDeclaration * ) = 0;
00169 virtual void VisitMethodDeclaration( const MethodDeclaration * ) = 0;
00170 virtual void VisitQualifier( const Qualifier * ) = 0;
00171
00172 virtual void VisitQualifierParameterConstantValue( const QualifierParameterConstantValue * ) = 0;
00173 virtual void VisitQualifierParameterArrayInitializer( const QualifierParameterArrayInitializer * ) = 0;
00174
00175 virtual void VisitFlavor( const Flavor * ) = 0;
00176 virtual void VisitPropertyName( const PropertyName * ) = 0;
00177 virtual void VisitReferenceName( const ReferenceName * ) = 0;
00178 virtual void VisitMethodName( const MethodName * ) = 0;
00179 virtual void VisitDataType( const DataType * ) = 0;
00180 virtual void VisitObjectRef( const ObjectRef * ) = 0;
00181
00182 virtual void VisitIntegerValueBinaryValue( const IntegerValueBinaryValue * ) = 0;
00183 virtual void VisitIntegerValueOctalValue( const IntegerValueOctalValue * ) = 0;
00184 virtual void VisitIntegerValueDecimalValue( const IntegerValueDecimalValue * ) = 0;
00185 virtual void VisitIntegerValueHexValue( const IntegerValueHexValue * ) = 0;
00186
00187 virtual void VisitConstantValueIntegerValue( const ConstantValueIntegerValue * ) = 0;
00188 virtual void VisitConstantValueFloatValue( const ConstantValueFloatValue * ) = 0;
00189 virtual void VisitConstantValueStringValue( const ConstantValueStringValue * ) = 0;
00190 virtual void VisitConstantValueCharValue( const ConstantValueCharValue * ) = 0;
00191 virtual void VisitConstantValueBooleanValue( const ConstantValueBooleanValue * ) = 0;
00192 virtual void VisitConstantValueNullValue( const ConstantValueNullValue * ) = 0;
00193
00194 virtual void VisitParameterDataType( const ParameterDataType * ) = 0;
00195 virtual void VisitParameterObjectRef( const ParameterObjectRef * ) = 0;
00196
00197 virtual void VisitParameterName( const ParameterName * ) = 0;
00198 virtual void VisitArray( const Array * ) = 0;
00199 virtual void VisitDefaultValue( const DefaultValue * ) = 0;
00200
00201 virtual void VisitInitializerReferenceInitializer( const InitializerReferenceInitializer * ) = 0;
00202 virtual void VisitInitializerArrayInitializer( const InitializerArrayInitializer * ) = 0;
00203 virtual void VisitInitializerConstantValue( const InitializerConstantValue * ) = 0;
00204
00205 virtual void VisitArrayInitializer( const ArrayInitializer * ) = 0;
00206
00207 virtual void VisitReferenceInitializerAliasIdentifier( const ReferenceInitializerAliasIdentifier * ) = 0;
00208 virtual void VisitReferenceInitializerObjectHandle( const ReferenceInitializerObjectHandle * ) = 0;
00209 virtual void VisitObjectHandle( const ObjectHandle * ) = 0;
00210
00211 virtual void VisitQualifierDeclaration( const QualifierDeclaration * ) = 0;
00212 virtual void VisitQualifierName( const QualifierName * ) = 0;
00213 virtual void VisitQualifierType( const QualifierType * ) = 0;
00214 virtual void VisitScope( const Scope * ) = 0;
00215 virtual void VisitMetaElement( const MetaElement * ) = 0;
00216 virtual void VisitDefaultFlavor( const DefaultFlavor * ) = 0;
00217 virtual void VisitInstanceDeclaration( const InstanceDeclaration * ) = 0;
00218 virtual void VisitValueInitializer( const ValueInitializer * ) = 0;
00219 };
00220
00221 }
00222 }
00223
00224 #endif