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: AbstractNumericValidator.hpp 527149 2007-04-10 14:56:39Z amassari $
20 */
21
22 #if !defined(XERCESC_INCLUDE_GUARD_ABSTRACT_NUMERIC_VALIDATOR_HPP)
23 #define XERCESC_INCLUDE_GUARD_ABSTRACT_NUMERIC_VALIDATOR_HPP
24
25 #include <xercesc/validators/datatype/AbstractNumericFacetValidator.hpp>
26 #include <xercesc/util/RefVectorOf.hpp>
27
28 XERCES_CPP_NAMESPACE_BEGIN
29
30 class VALIDATORS_EXPORT AbstractNumericValidator : public AbstractNumericFacetValidator
31 {
32 public:
33
34 // -----------------------------------------------------------------------
35 // Public ctor/dtor
36 // -----------------------------------------------------------------------
37 /** @name Constructor. */
38 //@{
39
40 virtual ~AbstractNumericValidator();
41
42 //@}
43
44 virtual void validate
45 (
46 const XMLCh* const content
47 , ValidationContext* const context = 0
48 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
49 );
50
51 virtual const XMLCh* getCanonicalRepresentation
52 (
53 const XMLCh* const rawData
54 , MemoryManager* const memMgr = 0
55 , bool toValidate = false
56 ) const;
57
58 /***
59 * Support for Serialization/De-serialization
60 ***/
61 DECL_XSERIALIZABLE(AbstractNumericValidator)
62
63 protected:
64
65 AbstractNumericValidator
66 (
67 DatatypeValidator* const baseValidator
68 , RefHashTableOf<KVStringPair>* const facets
69 , const int finalSet
70 , const ValidatorType type
71 , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
72 );
73
74 inline void init(RefArrayVectorOf<XMLCh>* const enums
75 , MemoryManager* const manager);
76
77 //
78 // Abstract interface
79 //
80 virtual void checkContent(const XMLCh* const content
81 , ValidationContext* const context
82 , bool asBase
83 , MemoryManager* const manager) = 0;
84
85 void boundsCheck(const XMLNumber* const
86 , MemoryManager* const manager);
87
88 private:
89
90 // -----------------------------------------------------------------------
91 // Unimplemented constructors and operators
92 // -----------------------------------------------------------------------
93 AbstractNumericValidator(const AbstractNumericValidator&);
94 AbstractNumericValidator& operator=(const AbstractNumericValidator&);
95 };
96
init(RefArrayVectorOf<XMLCh> * const enums,MemoryManager * const manager)97 inline void AbstractNumericValidator::init(RefArrayVectorOf<XMLCh>* const enums
98 , MemoryManager* const manager)
99 {
100 AbstractNumericFacetValidator::init(enums, manager);
101 }
102
103 XERCES_CPP_NAMESPACE_END
104
105 #endif
106
107 /**
108 * End of file AbstractNumericValidator.hpp
109 */
110