- Main Page
- Related Pages
- Classes
- Files

# XSModelGroup.hpp

Go to the documentation of this file.

    00001 /*
    00002  * Licensed to the Apache Software Foundation (ASF) under one or more
    00003  * contributor license agreements.  See the NOTICE file distributed with
    00004  * this work for additional information regarding copyright ownership.
    00005  * The ASF licenses this file to You under the Apache License, Version 2.0
    00006  * (the "License"); you may not use this file except in compliance with
    00007  * the License.  You may obtain a copy of the License at
    00008  *
    00009  *      http://www.apache.org/licenses/LICENSE-2.0
    00010  *
    00011  * Unless required by applicable law or agreed to in writing, software
    00012  * distributed under the License is distributed on an "AS IS" BASIS,
    00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    00014  * See the License for the specific language governing permissions and
    00015  * limitations under the License.
    00016  */
    00017
    00018 /*
    00019  * $Id: XSModelGroup.hpp 527149 2007-04-10 14:56:39Z amassari $
    00020  */
    00021
    00022 #if !defined(XERCESC_INCLUDE_GUARD_XSMODELGROUP_HPP)
    00023 #define XERCESC_INCLUDE_GUARD_XSMODELGROUP_HPP
    00024
    00025 #include <xercesc/framework/psvi/XSObject.hpp>
    00026
    00027 XERCES_CPP_NAMESPACE_BEGIN
    00028
    00036 // forward declarations
    00037 class XSAnnotation;
    00038 class XSParticle;
    00039
    00040 class XMLPARSER_EXPORT XSModelGroup : public XSObject
    00041 {
    00042 public:
    00043
    00044     // Content model compositors
    00045     enum COMPOSITOR_TYPE {
    00049         COMPOSITOR_SEQUENCE       = 1,
    00053         COMPOSITOR_CHOICE         = 2,
    00059         COMPOSITOR_ALL            = 3
    00060     };
    00061
    00062     //  Constructors and Destructor
    00063     // -----------------------------------------------------------------------
    00066
    00076     XSModelGroup
    00077     (
    00078         COMPOSITOR_TYPE compositorType
    00079         , XSParticleList* const particleList
    00080         , XSAnnotation* const annot
    00081         , XSModel* const xsModel
    00082         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
    00083     );
    00084
    00086
    00089     ~XSModelGroup();
    00091
    00092     //---------------------
    00095
    00101     COMPOSITOR_TYPE getCompositor() const;
    00102
    00106     XSParticleList *getParticles() const;
    00107
    00111     XSAnnotation *getAnnotation() const;
    00112
    00114
    00115     //----------------------------------
    00119
    00121 private:
    00122
    00123     // -----------------------------------------------------------------------
    00124     //  Unimplemented constructors and operators
    00125     // -----------------------------------------------------------------------
    00126     XSModelGroup(const XSModelGroup&);
    00127     XSModelGroup & operator=(const XSModelGroup &);
    00128
    00129 protected:
    00130
    00131     // -----------------------------------------------------------------------
    00132     //  data members
    00133     // -----------------------------------------------------------------------
    00134     COMPOSITOR_TYPE fCompositorType;
    00135     XSParticleList* fParticleList;
    00136     XSAnnotation*   fAnnotation;
    00137 };
    00138
    00139 inline XSModelGroup::COMPOSITOR_TYPE XSModelGroup::getCompositor() const
    00140 {
    00141     return fCompositorType;
    00142 }
    00143
    00144 inline XSParticleList* XSModelGroup::getParticles() const
    00145 {
    00146     return fParticleList;
    00147 }
    00148
    00149 inline XSAnnotation* XSModelGroup::getAnnotation() const
    00150 {
    00151     return fAnnotation;
    00152 }
    00153
    00154 XERCES_CPP_NAMESPACE_END
    00155
    00156 #endif