source: NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/framework/psvi/XSMultiValueFacet.hpp @ 2674

Revision 2674, 4.0 KB checked in by mattausch, 16 years ago (diff)
Line 
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements.  See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License.  You may obtain a copy of the License at
8 *
9 *      http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18/*
19 * $Id: XSMultiValueFacet.hpp 568078 2007-08-21 11:43:25Z amassari $
20 */
21
22#if !defined(XSMULTIVALUEFACET_HPP)
23#define XSMULTIVALUEFACET_HPP
24
25#include <xercesc/framework/psvi/XSObject.hpp>
26#include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp>
27
28XERCES_CPP_NAMESPACE_BEGIN
29
30/**
31 * This class represents all Schema Facets which may possess multiple
32 * lexical values/annotations (i.e., Pattern and Enumeration facets).
33 * This is *always* owned by the validator /parser object from which
34 * it is obtained. 
35 */
36
37// forward declarations
38class XSAnnotation;
39
40class XMLPARSER_EXPORT XSMultiValueFacet : public XSObject
41{
42public:
43
44    //  Constructors and Destructor
45    // -----------------------------------------------------------------------
46    /** @name Constructors */
47    //@{
48
49    /**
50      * The default constructor
51      *
52      * @param  facetKind
53      * @param  lexicalValues
54      * @param  isFixed
55      * @param  headAnnot
56      * @param  xsModel
57      * @param  manager     The configurable memory manager
58      */
59    XSMultiValueFacet
60    (
61        XSSimpleTypeDefinition::FACET facetKind
62        , StringList*                 lexicalValues
63        , bool                        isFixed
64        , XSAnnotation* const         headAnnot
65        , XSModel* const              xsModel
66        , MemoryManager* const        manager = XMLPlatformUtils::fgMemoryManager
67    );
68
69    //@};
70
71    /** @name Destructor */
72    //@{
73    ~XSMultiValueFacet();
74    //@}
75
76    //---------------------
77    /** @name XSMultiValueFacet methods */
78
79    //@{
80
81    /**
82     * @return An indication as to the facet's type; see <code>XSSimpleTypeDefinition::FACET</code>
83     */
84    XSSimpleTypeDefinition::FACET getFacetKind() const;
85
86    /**
87     * @return Returns the values of a constraining facet.
88     */
89    StringList *getLexicalFacetValues();   
90
91    /**
92     * Check whether a facet value is fixed.
93     */
94    bool isFixed() const;
95
96    /**
97     * @return the annotations belonging to this facet's values
98     */
99    XSAnnotationList *getAnnotations();
100
101    //@}
102
103    //----------------------------------
104    /** methods needed by implementation */
105
106    //@{
107
108    //@}
109private:
110
111    // -----------------------------------------------------------------------
112    //  Unimplemented constructors and operators
113    // -----------------------------------------------------------------------
114    XSMultiValueFacet(const XSMultiValueFacet&);
115    XSMultiValueFacet & operator=(const XSMultiValueFacet &);
116
117protected:
118
119    // -----------------------------------------------------------------------
120    //  data members
121    // -----------------------------------------------------------------------
122    XSSimpleTypeDefinition::FACET fFacetKind;
123    bool                          fIsFixed;
124    StringList*                   fLexicalValues;  // not owned by this class
125    XSAnnotationList*             fXSAnnotationList;
126};
127
128
129inline XSSimpleTypeDefinition::FACET XSMultiValueFacet::getFacetKind() const
130{
131    return fFacetKind;
132}
133
134inline bool XSMultiValueFacet::isFixed() const
135{
136    return fIsFixed;
137}
138
139inline StringList *XSMultiValueFacet::getLexicalFacetValues()
140{
141    return fLexicalValues;
142}
143
144inline XSAnnotationList *XSMultiValueFacet::getAnnotations()
145{
146    return fXSAnnotationList;
147}
148
149
150XERCES_CPP_NAMESPACE_END
151
152#endif
Note: See TracBrowser for help on using the repository browser.