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