source: NonGTP/Xerces/xercesc/framework/psvi/XSFacet.hpp @ 188

Revision 188, 6.8 KB checked in by mattausch, 19 years ago (diff)

added xercesc to support

Line 
1/*
2 * The Apache Software License, Version 1.1
3 *
4 * Copyright (c) 2003 The Apache Software Foundation.  All rights
5 * reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 *
11 * 1. Redistributions of source code must retain the above copyright
12 *    notice, this list of conditions and the following disclaimer.
13 *
14 * 2. Redistributions in binary form must reproduce the above copyright
15 *    notice, this list of conditions and the following disclaimer in
16 *    the documentation and/or other materials provided with the
17 *    distribution.
18 *
19 * 3. The end-user documentation included with the redistribution,
20 *    if any, must include the following acknowledgment:
21 *       "This product includes software developed by the
22 *        Apache Software Foundation (http://www.apache.org/)."
23 *    Alternately, this acknowledgment may appear in the software itself,
24 *    if and wherever such third-party acknowledgments normally appear.
25 *
26 * 4. The names "Xerces" and "Apache Software Foundation" must
27 *    not be used to endorse or promote products derived from this
28 *    software without prior written permission. For written
29 *    permission, please contact apache\@apache.org.
30 *
31 * 5. Products derived from this software may not be called "Apache",
32 *    nor may "Apache" appear in their name, without prior written
33 *    permission of the Apache Software Foundation.
34 *
35 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
46 * SUCH DAMAGE.
47 * ====================================================================
48 *
49 * This software consists of voluntary contributions made by many
50 * individuals on behalf of the Apache Software Foundation, and was
51 * originally based on software copyright (c) 1999, International
52 * Business Machines, Inc., http://www.ibm.com .  For more information
53 * on the Apache Software Foundation, please see
54 * <http://www.apache.org/>.
55 */
56
57/*
58 * $Log: XSFacet.hpp,v $
59 * Revision 1.6  2003/12/01 23:23:26  neilg
60 * fix for bug 25118; thanks to Jeroen Witmond
61 *
62 * Revision 1.5  2003/11/21 17:29:53  knoaman
63 * PSVI update
64 *
65 * Revision 1.4  2003/11/14 22:47:53  neilg
66 * fix bogus log message from previous commit...
67 *
68 * Revision 1.3  2003/11/14 22:33:30  neilg
69 * Second phase of schema component model implementation. 
70 * Implement XSModel, XSNamespaceItem, and the plumbing necessary
71 * to connect them to the other components.
72 * Thanks to David Cargill.
73 *
74 * Revision 1.2  2003/11/06 15:30:04  neilg
75 * first part of PSVI/schema component model implementation, thanks to David Cargill.  This covers setting the PSVIHandler on parser objects, as well as implementing XSNotation, XSSimpleTypeDefinition, XSIDCDefinition, and most of XSWildcard, XSComplexTypeDefinition, XSElementDeclaration, XSAttributeDeclaration and XSAttributeUse.
76 *
77 * Revision 1.1  2003/09/16 14:33:36  neilg
78 * PSVI/schema component model classes, with Makefile/configuration changes necessary to build them
79 *
80 */
81
82#if !defined(XSFACET_HPP)
83#define XSFACET_HPP
84
85#include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp>
86
87XERCES_CPP_NAMESPACE_BEGIN
88
89/**
90 * This represents all Schema Facet components with the exception
91 * of Enumeration and Pattern Facets, which are represented by the
92 * XSMultiValueFacet interface.
93 * This is *always* owned by the validator /parser object from which
94 * it is obtained. 
95 */
96
97// forward declarations
98class XSAnnotation;
99
100class XMLPARSER_EXPORT XSFacet : public XSObject
101{
102public:
103
104    //  Constructors and Destructor
105    // -----------------------------------------------------------------------
106    /** @name Constructors */
107    //@{
108
109    /**
110      * The default constructor
111      *
112      * @param  facetKind
113      * @param  lexicalValue
114      * @param  isFixed
115      * @param  annot
116      * @param  xsModel
117      * @param  manager     The configurable memory manager
118      */
119    XSFacet
120    (
121        XSSimpleTypeDefinition::FACET facetKind
122        , const XMLCh* const          lexicalValue
123        , bool                        isFixed
124        , XSAnnotation* const         annot
125        , XSModel* const              xsModel
126        , MemoryManager* const        manager = XMLPlatformUtils::fgMemoryManager
127    );
128
129    //@};
130
131    /** @name Destructor */
132    //@{
133    ~XSFacet();
134    //@}
135
136    //---------------------
137    /** @name XSFacet methods */
138
139    //@{
140
141    /**
142     * @return An indication as to the facet's type; see <code>XSSimpleTypeDefinition::FACET</code>
143     */
144    XSSimpleTypeDefinition::FACET getFacetKind() const;
145
146    /**
147     * @return Returns a value of a constraining facet.
148     */
149    const XMLCh *getLexicalFacetValue() const;
150
151    /**
152     * Check whether a facet value is fixed.
153     */
154    bool isFixed() const;
155
156    /**
157     * @return an annotation
158     */
159    XSAnnotation *getAnnotation() const;
160
161    //@}
162
163    //----------------------------------
164    /** methods needed by implementation */
165
166    //@{
167
168    //@}
169private:
170
171    // -----------------------------------------------------------------------
172    //  Unimplemented constructors and operators
173    // -----------------------------------------------------------------------
174    XSFacet(const XSFacet&);
175    XSFacet & operator=(const XSFacet &);
176
177protected:
178
179    // -----------------------------------------------------------------------
180    //  data members
181    // -----------------------------------------------------------------------
182    XSSimpleTypeDefinition::FACET fFacetKind;
183    bool                          fIsFixed;
184    const XMLCh*                  fLexicalValue;
185    XSAnnotation*                 fAnnotation;
186};
187
188inline XSSimpleTypeDefinition::FACET XSFacet::getFacetKind() const
189{   
190    return fFacetKind;
191}
192
193inline const XMLCh* XSFacet::getLexicalFacetValue() const
194{
195    return fLexicalValue;   
196}
197
198inline bool XSFacet::isFixed() const
199{
200    return fIsFixed;
201}
202
203inline XSAnnotation* XSFacet::getAnnotation() const
204{
205    return fAnnotation;
206}
207
208
209XERCES_CPP_NAMESPACE_END
210
211#endif
Note: See TracBrowser for help on using the repository browser.