source: icXML/icXML-devel/src/xercesc/framework/psvi/XSFacet.hpp @ 2722

Last change on this file since 2722 was 2722, checked in by cameron, 6 years ago

Original Xerces files with import mods for icxercesc

File size: 3.8 KB
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: XSFacet.hpp 527149 2007-04-10 14:56:39Z amassari $
20 */
21
22#if !defined(XERCESC_INCLUDE_GUARD_XSFACET_HPP)
23#define XERCESC_INCLUDE_GUARD_XSFACET_HPP
24
25#include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp>
26
27XERCES_CPP_NAMESPACE_BEGIN
28
29/**
30 * This represents all Schema Facet components with the exception
31 * of Enumeration and Pattern Facets, which are represented by the
32 * XSMultiValueFacet interface.
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 XSFacet : 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  lexicalValue
54      * @param  isFixed
55      * @param  annot
56      * @param  xsModel
57      * @param  manager     The configurable memory manager
58      */
59    XSFacet
60    (
61        XSSimpleTypeDefinition::FACET facetKind
62        , const XMLCh* const          lexicalValue
63        , bool                        isFixed
64        , XSAnnotation* const         annot
65        , XSModel* const              xsModel
66        , MemoryManager* const        manager = XMLPlatformUtils::fgMemoryManager
67    );
68
69    //@};
70
71    /** @name Destructor */
72    //@{
73    ~XSFacet();
74    //@}
75
76    //---------------------
77    /** @name XSFacet 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 a value of a constraining facet.
88     */
89    const XMLCh *getLexicalFacetValue() const;
90
91    /**
92     * Check whether a facet value is fixed.
93     */
94    bool isFixed() const;
95
96    /**
97     * @return an annotation
98     */
99    XSAnnotation *getAnnotation() const;
100
101    //@}
102
103    //----------------------------------
104    /** methods needed by implementation */
105
106    //@{
107
108    //@}
109private:
110
111    // -----------------------------------------------------------------------
112    //  Unimplemented constructors and operators
113    // -----------------------------------------------------------------------
114    XSFacet(const XSFacet&);
115    XSFacet & operator=(const XSFacet &);
116
117protected:
118
119    // -----------------------------------------------------------------------
120    //  data members
121    // -----------------------------------------------------------------------
122    XSSimpleTypeDefinition::FACET fFacetKind;
123    bool                          fIsFixed;
124    const XMLCh*                  fLexicalValue;
125    XSAnnotation*                 fAnnotation;
126};
127
128inline XSSimpleTypeDefinition::FACET XSFacet::getFacetKind() const
129{   
130    return fFacetKind;
131}
132
133inline const XMLCh* XSFacet::getLexicalFacetValue() const
134{
135    return fLexicalValue;   
136}
137
138inline bool XSFacet::isFixed() const
139{
140    return fIsFixed;
141}
142
143inline XSAnnotation* XSFacet::getAnnotation() const
144{
145    return fAnnotation;
146}
147
148
149XERCES_CPP_NAMESPACE_END
150
151#endif
Note: See TracBrowser for help on using the repository browser.