Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:15:18

0001 /*
0002  * Licensed to the Apache Software Foundation (ASF) under one or more
0003  * contributor license agreements.  See the NOTICE file distributed with
0004  * this work for additional information regarding copyright ownership.
0005  * The ASF licenses this file to You under the Apache License, Version 2.0
0006  * (the "License"); you may not use this file except in compliance with
0007  * the License.  You may obtain a copy of the License at
0008  * 
0009  *      http://www.apache.org/licenses/LICENSE-2.0
0010  * 
0011  * Unless required by applicable law or agreed to in writing, software
0012  * distributed under the License is distributed on an "AS IS" BASIS,
0013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0014  * See the License for the specific language governing permissions and
0015  * limitations under the License.
0016  */
0017 
0018 /*
0019  * $Id$
0020  */
0021 
0022 #if !defined(XERCESC_INCLUDE_GUARD_IC_FIELD_HPP)
0023 #define XERCESC_INCLUDE_GUARD_IC_FIELD_HPP
0024 
0025 
0026 // ---------------------------------------------------------------------------
0027 //  Includes
0028 // ---------------------------------------------------------------------------
0029 #include <xercesc/validators/schema/identity/XPathMatcher.hpp>
0030 
0031 #include <xercesc/internal/XSerializable.hpp>
0032 
0033 XERCES_CPP_NAMESPACE_BEGIN
0034 
0035 // ---------------------------------------------------------------------------
0036 //  Forward Declaration
0037 // ---------------------------------------------------------------------------
0038 class ValueStore;
0039 class FieldActivator;
0040 
0041 
0042 class VALIDATORS_EXPORT IC_Field : public XSerializable, public XMemory
0043 {
0044 public:
0045     // -----------------------------------------------------------------------
0046     //  Constructors/Destructor
0047     // -----------------------------------------------------------------------
0048     IC_Field(XercesXPath* const xpath,
0049              IdentityConstraint* const identityConstraint);
0050     ~IC_Field();
0051 
0052     // -----------------------------------------------------------------------
0053     //  operators
0054     // -----------------------------------------------------------------------
0055     bool operator== (const IC_Field& other) const;
0056     bool operator!= (const IC_Field& other) const;
0057 
0058     // -----------------------------------------------------------------------
0059     //  Getter methods
0060     // -----------------------------------------------------------------------
0061     XercesXPath* getXPath() const { return fXPath; }
0062     IdentityConstraint* getIdentityConstraint() const { return fIdentityConstraint; }
0063 
0064     // -----------------------------------------------------------------------
0065     //  Factory methods
0066     // -----------------------------------------------------------------------
0067     XPathMatcher* createMatcher
0068     (
0069         FieldActivator* const fieldActivator
0070         , ValueStore* const valueStore
0071         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
0072     );
0073 
0074     /***
0075      * Support for Serialization/De-serialization
0076      ***/
0077     DECL_XSERIALIZABLE(IC_Field)
0078 
0079     IC_Field(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
0080 
0081 private:
0082     // -----------------------------------------------------------------------
0083     //  Unimplemented constructors and operators
0084     // -----------------------------------------------------------------------
0085     IC_Field(const IC_Field& other);
0086     IC_Field& operator= (const IC_Field& other);
0087 
0088     // -----------------------------------------------------------------------
0089     //  Data members
0090     // -----------------------------------------------------------------------
0091     XercesXPath*        fXPath;
0092     IdentityConstraint* fIdentityConstraint;
0093 };
0094 
0095 
0096 class VALIDATORS_EXPORT FieldMatcher : public XPathMatcher
0097 {
0098 public:
0099     // -----------------------------------------------------------------------
0100     //  Constructors/Destructor
0101     // -----------------------------------------------------------------------
0102     ~FieldMatcher() {}
0103 
0104     // -----------------------------------------------------------------------
0105     //  Getter methods
0106     // -----------------------------------------------------------------------
0107     ValueStore* getValueStore() const { return fValueStore; }
0108     IC_Field*   getField() const { return fField; }
0109 
0110     // -----------------------------------------------------------------------
0111     //  Virtual methods
0112     // -----------------------------------------------------------------------
0113     void matched(const XMLCh* const content, DatatypeValidator* const dv,
0114                  const bool isNil);
0115 
0116 private:
0117     // -----------------------------------------------------------------------
0118     //  Constructors/Destructor
0119     // -----------------------------------------------------------------------
0120     FieldMatcher(XercesXPath* const anXPath,
0121                  IC_Field* const aField,
0122                  ValueStore* const valueStore,
0123                  FieldActivator* const fieldActivator,
0124                  MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
0125 
0126     // -----------------------------------------------------------------------
0127     //  Unimplemented constructors and operators
0128     // -----------------------------------------------------------------------
0129     FieldMatcher(const FieldMatcher& other);
0130     FieldMatcher& operator= (const FieldMatcher& other);
0131 
0132     // -----------------------------------------------------------------------
0133     //  Friends
0134     // -----------------------------------------------------------------------
0135     friend class IC_Field;
0136 
0137     // -----------------------------------------------------------------------
0138     //  Data members
0139     // -----------------------------------------------------------------------
0140     ValueStore*     fValueStore;
0141     IC_Field*       fField;
0142     FieldActivator* fFieldActivator;
0143 };
0144 
0145 XERCES_CPP_NAMESPACE_END
0146 
0147 #endif
0148 
0149 /**
0150   * End of file IC_Field.hpp
0151   */
0152