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

Revision 188, 7.1 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: XSMultiValueFacet.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:34:04  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(XSMULTIVALUEFACET_HPP)
83#define XSMULTIVALUEFACET_HPP
84
85#include <xercesc/framework/psvi/XSObject.hpp>
86#include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp>
87
88XERCES_CPP_NAMESPACE_BEGIN
89
90/**
91 * This class represents all Schema Facets which may possess multiple
92 * lexical values/annotations (i.e., Pattern and Enumeration facets).
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 XSMultiValueFacet : 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  lexicalValues
114      * @param  isFixed
115      * @param  headAnnot
116      * @param  xsModel
117      * @param  manager     The configurable memory manager
118      */
119    XSMultiValueFacet
120    (
121        XSSimpleTypeDefinition::FACET facetKind
122        , StringList*                 lexicalValues
123        , bool                        isFixed
124        , XSAnnotation* const         headAnnot
125        , XSModel* const              xsModel
126        , MemoryManager* const        manager = XMLPlatformUtils::fgMemoryManager
127    );
128
129    //@};
130
131    /** @name Destructor */
132    //@{
133    ~XSMultiValueFacet();
134    //@}
135
136    //---------------------
137    /** @name XSMultiValueFacet 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 the values of a constraining facet.
148     */
149    StringList *getLexicalFacetValues();   
150
151    /**
152     * Check whether a facet value is fixed.
153     */
154    bool isFixed() const;
155
156    /**
157     * @return the annotations belonging to this facet's values
158     */
159    XSAnnotationList *getAnnotations();
160
161    //@}
162
163    //----------------------------------
164    /** methods needed by implementation */
165
166    //@{
167
168    //@}
169private:
170
171    // -----------------------------------------------------------------------
172    //  Unimplemented constructors and operators
173    // -----------------------------------------------------------------------
174    XSMultiValueFacet(const XSMultiValueFacet&);
175    XSMultiValueFacet & operator=(const XSMultiValueFacet &);
176
177protected:
178
179    // -----------------------------------------------------------------------
180    //  data members
181    // -----------------------------------------------------------------------
182    XSSimpleTypeDefinition::FACET fFacetKind;
183    bool                          fIsFixed;
184    StringList*                   fLexicalValues;  // not owned by this class
185    XSAnnotationList*             fXSAnnotationList;
186};
187
188
189inline XSSimpleTypeDefinition::FACET XSMultiValueFacet::getFacetKind() const
190{
191    return fFacetKind;
192}
193
194inline bool XSMultiValueFacet::isFixed() const
195{
196    return fIsFixed;
197}
198
199inline StringList *XSMultiValueFacet::getLexicalFacetValues()
200{
201    return fLexicalValues;
202}
203
204inline XSAnnotationList *XSMultiValueFacet::getAnnotations()
205{
206    return fXSAnnotationList;
207}
208
209
210XERCES_CPP_NAMESPACE_END
211
212#endif
Note: See TracBrowser for help on using the repository browser.