OW_MOFVisitor.hpp

Go to the documentation of this file.
00001 /*******************************************************************************
00002 * Copyright (C) 2001-2004 Vintela, Inc. All rights reserved.
00003 *
00004 * Redistribution and use in source and binary forms, with or without
00005 * modification, are permitted provided that the following conditions are met:
00006 *
00007 *  - Redistributions of source code must retain the above copyright notice,
00008 *    this list of conditions and the following disclaimer.
00009 *
00010 *  - Redistributions in binary form must reproduce the above copyright notice,
00011 *    this list of conditions and the following disclaimer in the documentation
00012 *    and/or other materials provided with the distribution.
00013 *
00014 *  - Neither the name of Vintela, Inc. nor the names of its
00015 *    contributors may be used to endorse or promote products derived from this
00016 *    software without specific prior written permission.
00017 *
00018 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
00019 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00020 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00021 * ARE DISCLAIMED. IN NO EVENT SHALL Vintela, Inc. OR THE CONTRIBUTORS
00022 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00023 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00024 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00025 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00026 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00027 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00028 * POSSIBILITY OF SUCH DAMAGE.
00029 *******************************************************************************/
00030 
00036 #ifndef OW_VISITOR_HPP_INCLUDE_GUARD_
00037 #define OW_VISITOR_HPP_INCLUDE_GUARD_
00038 
00039 #include "OW_config.h"
00040 
00041 // The classes and functions defined in this file are not meant for general
00042 // use, they are internal implementation details.  They may change at any time.
00043 
00044 namespace OW_NAMESPACE
00045 {
00046 
00047 namespace MOF
00048 {
00049 
00050 // forward declarations
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 //class Identifier;
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 } // end namespace MOF
00222 } // end namespace OW_NAMESPACE
00223 
00224 #endif

Generated on Thu Feb 9 08:48:07 2006 for openwbem by  doxygen 1.4.6