Back to home page

EIC code displayed by LXR

 
 

    


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

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_UNIONTOKEN_HPP)
0023 #define XERCESC_INCLUDE_GUARD_UNIONTOKEN_HPP
0024 
0025 // ---------------------------------------------------------------------------
0026 //  Includes
0027 // ---------------------------------------------------------------------------
0028 #include <xercesc/util/regx/Token.hpp>
0029 #include <xercesc/util/RefVectorOf.hpp>
0030 
0031 XERCES_CPP_NAMESPACE_BEGIN
0032 
0033 class XMLUTIL_EXPORT UnionToken : public Token {
0034 public:
0035     // -----------------------------------------------------------------------
0036     //  Public Constructors and Destructor
0037     // -----------------------------------------------------------------------
0038     UnionToken(const tokType tkType
0039         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
0040     ~UnionToken();
0041 
0042     // -----------------------------------------------------------------------
0043     //  Getter methods
0044     // -----------------------------------------------------------------------
0045     XMLSize_t size() const;
0046     Token* getChild(const XMLSize_t index) const;
0047 
0048     // -----------------------------------------------------------------------
0049     //  Children manipulation methods
0050     // -----------------------------------------------------------------------
0051     void addChild(Token* const child, TokenFactory* const tokFactory);
0052 
0053 private:
0054     // -----------------------------------------------------------------------
0055     //  Unimplemented constructors and operators
0056     // -----------------------------------------------------------------------
0057     UnionToken(const UnionToken&);
0058     UnionToken& operator=(const UnionToken&);
0059 
0060     // -----------------------------------------------------------------------
0061     //  Private Constants
0062     // -----------------------------------------------------------------------
0063     static const unsigned short INITIALSIZE;
0064 
0065     // -----------------------------------------------------------------------
0066     //  Private data members
0067     // -----------------------------------------------------------------------
0068     RefVectorOf<Token>* fChildren;
0069 };
0070 
0071 
0072 // ---------------------------------------------------------------------------
0073 //  UnionToken: getter methods
0074 // ---------------------------------------------------------------------------
0075 inline XMLSize_t UnionToken::size() const {
0076 
0077     return fChildren == 0 ? 0 : fChildren->size();
0078 }
0079 
0080 inline Token* UnionToken::getChild(const XMLSize_t index) const {
0081 
0082     return fChildren->elementAt(index);
0083 }
0084 
0085 XERCES_CPP_NAMESPACE_END
0086 
0087 #endif
0088 
0089 /**
0090   * End of file UnionToken.hpp
0091   */