Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 10:34:30

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_CMANY_HPP)
0023 #define XERCESC_INCLUDE_GUARD_CMANY_HPP
0024 
0025 #include <xercesc/validators/common/CMNode.hpp>
0026 
0027 XERCES_CPP_NAMESPACE_BEGIN
0028 
0029 class CMStateSet;
0030 
0031 class CMAny : public CMNode
0032 {
0033 public :
0034     // -----------------------------------------------------------------------
0035     //  Constructors
0036     // -----------------------------------------------------------------------
0037     CMAny
0038     (
0039         ContentSpecNode::NodeTypes      type
0040         , unsigned int                  URI
0041         , unsigned int                  position
0042         , unsigned int                  maxStates
0043         ,       MemoryManager* const    manager = XMLPlatformUtils::fgMemoryManager
0044     );
0045     ~CMAny();
0046 
0047     // -----------------------------------------------------------------------
0048     //  Getter methods
0049     // -----------------------------------------------------------------------
0050     unsigned int getURI() const;
0051 
0052     unsigned int getPosition() const;
0053 
0054     // -----------------------------------------------------------------------
0055     //  Setter methods
0056     // -----------------------------------------------------------------------
0057     void setPosition(const unsigned int newPosition);
0058 
0059     // -----------------------------------------------------------------------
0060     //  Implementation of the public CMNode virtual interface
0061     // -----------------------------------------------------------------------
0062     virtual void orphanChild();
0063 
0064 
0065 protected :
0066     // -----------------------------------------------------------------------
0067     //  Implementation of the protected CMNode virtual interface
0068     // -----------------------------------------------------------------------
0069     void calcFirstPos(CMStateSet& toSet) const;
0070     void calcLastPos(CMStateSet& toSet) const;
0071 
0072 private :
0073     // -----------------------------------------------------------------------
0074     //  Private data members
0075     //
0076     //  fURI;
0077     //  URI of the any content model. This value is set if the type is
0078     //  of the following:
0079     //  XMLContentSpec.CONTENTSPECNODE_ANY,
0080     //  XMLContentSpec.CONTENTSPECNODE_ANY_OTHER.
0081     //
0082     //  fPosition
0083     //  Part of the algorithm to convert a regex directly to a DFA
0084     //  numbers each leaf sequentially. If its -1, that means its an
0085     //  epsilon node. Zero and greater are non-epsilon positions.
0086     // -----------------------------------------------------------------------
0087     unsigned int fURI;
0088     unsigned int fPosition;
0089 
0090     // -----------------------------------------------------------------------
0091     //  Unimplemented constructors and operators
0092     // -----------------------------------------------------------------------
0093     CMAny(const CMAny&);
0094     CMAny& operator=(const CMAny&);
0095 };
0096 
0097 XERCES_CPP_NAMESPACE_END
0098 
0099 #endif