source: NonGTP/Xerces/xerces-c_2_8_0/include/xercesc/validators/datatype/BooleanDatatypeValidator.hpp @ 2674

Revision 2674, 6.2 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: BooleanDatatypeValidator.hpp 568078 2007-08-21 11:43:25Z amassari $
20 */
21
22#if !defined(BOOLEAN_DATATYPEVALIDATOR_HPP)
23#define BOOLEAN_DATATYPEVALIDATOR_HPP
24
25#include <xercesc/validators/datatype/DatatypeValidator.hpp>
26
27XERCES_CPP_NAMESPACE_BEGIN
28
29class VALIDATORS_EXPORT BooleanDatatypeValidator : public DatatypeValidator
30{
31public:
32
33    // -----------------------------------------------------------------------
34    //  Public ctor/dtor
35    // -----------------------------------------------------------------------
36        /** @name Constructor. */
37    //@{
38
39    BooleanDatatypeValidator
40    (
41        MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
42    );
43    BooleanDatatypeValidator
44    (
45        DatatypeValidator* const baseValidator
46        , RefHashTableOf<KVStringPair>* const facets
47        , RefArrayVectorOf<XMLCh>* const enums
48        , const int finalSet
49        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
50    );
51
52    virtual ~BooleanDatatypeValidator();
53
54        //@}
55
56        virtual const RefArrayVectorOf<XMLCh>* getEnumString() const;
57
58    // -----------------------------------------------------------------------
59    // Getter methods
60    // -----------------------------------------------------------------------
61    /** @name Getter Functions */
62    //@{
63
64    virtual const XMLCh* getCanonicalRepresentation
65                        (
66                          const XMLCh*         const rawData
67                        ,       MemoryManager* const memMgr = 0
68                        ,       bool                 toValidate = false
69                        ) const;
70    //@}
71
72    // -----------------------------------------------------------------------
73    // Validation methods
74    // -----------------------------------------------------------------------
75    /** @name Validation Function */
76    //@{
77
78    /**
79     * validate that a string matches the boolean datatype
80     * @param content A string containing the content to be validated
81     *
82     * @exception throws InvalidDatatypeException if the content is
83     * is not valid.
84     */
85
86        virtual void validate
87                 (
88                  const XMLCh*             const content
89                ,       ValidationContext* const context = 0
90                ,       MemoryManager*     const manager = XMLPlatformUtils::fgMemoryManager
91                  );
92
93    //@}
94
95    // -----------------------------------------------------------------------
96    // Compare methods
97    // -----------------------------------------------------------------------
98    /** @name Compare Function */
99    //@{
100
101    /**
102     * Compare two boolean data types
103     *
104     * @param content1
105     * @param content2
106     * @return
107     */
108    int compare(const XMLCh* const, const XMLCh* const
109        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
110        );
111
112    //@}
113
114    /**
115      * Returns an instance of the base datatype validator class
116          * Used by the DatatypeValidatorFactory.
117      */
118    DatatypeValidator* newInstance
119    (
120        RefHashTableOf<KVStringPair>* const facets
121        , RefArrayVectorOf<XMLCh>* const enums
122        , const int finalSet
123        , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
124    );
125
126    /***
127     * Support for Serialization/De-serialization
128     ***/
129    DECL_XSERIALIZABLE(BooleanDatatypeValidator)
130
131private:
132
133    virtual void checkContent(const XMLCh*             const content
134                            ,       ValidationContext* const context
135                            , bool                           asBase
136                            , MemoryManager* const manager);
137
138    // -----------------------------------------------------------------------
139    //  Unimplemented methods.
140    // -----------------------------------------------------------------------
141    BooleanDatatypeValidator(const BooleanDatatypeValidator&);
142    BooleanDatatypeValidator& operator=(const BooleanDatatypeValidator&);
143
144};
145
146// ---------------------------------------------------------------------------
147//  Constructors and Destructor
148// ---------------------------------------------------------------------------
149inline BooleanDatatypeValidator::BooleanDatatypeValidator(MemoryManager* const manager)
150:DatatypeValidator(0, 0, 0, DatatypeValidator::Boolean, manager)
151{
152    setFinite(true);
153}
154
155inline BooleanDatatypeValidator::~BooleanDatatypeValidator()
156{
157}
158
159// -----------------------------------------------------------------------
160// Getter methods
161// -----------------------------------------------------------------------
162
163
164// -----------------------------------------------------------------------
165// Compare methods
166// -----------------------------------------------------------------------
167
168inline DatatypeValidator* BooleanDatatypeValidator::newInstance
169(
170      RefHashTableOf<KVStringPair>* const facets
171    , RefArrayVectorOf<XMLCh>* const      enums
172    , const int                           finalSet
173    , MemoryManager* const                manager
174)
175{
176    return (DatatypeValidator*) new (manager) BooleanDatatypeValidator(this, facets, enums, finalSet, manager);
177}
178
179inline void BooleanDatatypeValidator::validate( const XMLCh*             const content
180                                              ,       ValidationContext* const context
181                                              ,       MemoryManager*     const manager)
182{
183    checkContent(content, context, false, manager);
184}
185
186XERCES_CPP_NAMESPACE_END
187
188#endif
189
190/**
191  * End of file BooleanDatatypeValidator.hpp
192  */
193
Note: See TracBrowser for help on using the repository browser.