XMLNotationDecl.hpp

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: XMLNotationDecl.hpp 568078 2007-08-21 11:43:25Z amassari $
00020  */
00021 
00022 #if !defined(XMLNOTATIONDECL_HPP)
00023 #define XMLNOTATIONDECL_HPP
00024 
00025 #include <xercesc/util/XMemory.hpp>
00026 #include <xercesc/util/PlatformUtils.hpp>
00027 #include <xercesc/util/XMLString.hpp>
00028 #include <xercesc/internal/XSerializable.hpp>
00029 
00030 XERCES_CPP_NAMESPACE_BEGIN
00031 
00041 class XMLPARSER_EXPORT XMLNotationDecl : public XSerializable, public XMemory
00042 {
00043 public:
00044     // -----------------------------------------------------------------------
00045     //  Constructors and Destructor
00046     // -----------------------------------------------------------------------
00047 
00050     XMLNotationDecl(MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager);
00051     XMLNotationDecl
00052     (
00053         const   XMLCh* const    notName
00054         , const XMLCh* const    pubId
00055         , const XMLCh* const    sysId
00056         , const XMLCh* const    baseURI = 0
00057         , MemoryManager* const  manager = XMLPlatformUtils::fgMemoryManager
00058     );
00060 
00063     ~XMLNotationDecl();
00065 
00066 
00067     // -----------------------------------------------------------------------
00068     //  Getter methods
00069     // -----------------------------------------------------------------------
00070     unsigned int getId() const;
00071     const XMLCh* getName() const;
00072     const XMLCh* getPublicId() const;
00073     const XMLCh* getSystemId() const;
00074     const XMLCh* getBaseURI() const;
00075     unsigned int getNameSpaceId() const;
00076     MemoryManager* getMemoryManager() const;
00077 
00078 
00079     // -----------------------------------------------------------------------
00080     //  Setter methods
00081     // -----------------------------------------------------------------------
00082     void setId(const unsigned int newId);
00083     void setName
00084     (
00085         const   XMLCh* const    notName
00086     );
00087     void setPublicId(const XMLCh* const newId);
00088     void setSystemId(const XMLCh* const newId);
00089     void setBaseURI(const XMLCh* const newId);
00090     void setNameSpaceId(const unsigned int newId);
00091 
00092     // -----------------------------------------------------------------------
00093     //  Support named collection element semantics
00094     // -----------------------------------------------------------------------
00095     const XMLCh* getKey() const;
00096 
00097     /***
00098      * Support for Serialization/De-serialization
00099      ***/
00100     DECL_XSERIALIZABLE(XMLNotationDecl)
00101 
00102 private :
00103     // -----------------------------------------------------------------------
00104     //  Unimplemented constructors and operators
00105     // -----------------------------------------------------------------------
00106     XMLNotationDecl(const XMLNotationDecl&);
00107     XMLNotationDecl& operator=(const XMLNotationDecl&);
00108 
00109 
00110     // -----------------------------------------------------------------------
00111     //  XMLNotationDecl: Private helper methods
00112     // -----------------------------------------------------------------------
00113     void cleanUp();
00114 
00115 
00116     // -----------------------------------------------------------------------
00117     //  Private data members
00118     //
00119     //  fId
00120     //      This is the unique id given to this notation decl.
00121     //
00122     //  fName
00123     //      The notation's name, which identifies the type of notation it
00124     //      applies to.
00125     //
00126     //  fPublicId
00127     //      The text of the notation's public id, if any.
00128     //
00129     //  fSystemId
00130     //      The text of the notation's system id, if any.
00131     //
00132     //  fBaseURI
00133     //      The text of the notation's base URI
00134     // -----------------------------------------------------------------------
00135     unsigned int    fId;
00136     unsigned int    fNameSpaceId;
00137     XMLCh*          fName;
00138     XMLCh*          fPublicId;
00139     XMLCh*          fSystemId;
00140     XMLCh*          fBaseURI;
00141     MemoryManager*  fMemoryManager;
00142 };
00143 
00144 
00145 // -----------------------------------------------------------------------
00146 //  Getter methods
00147 // -----------------------------------------------------------------------
00148 inline unsigned int XMLNotationDecl::getId() const
00149 {
00150     return fId;
00151 }
00152 
00153 inline const XMLCh* XMLNotationDecl::getName() const
00154 {
00155     return fName;
00156 }
00157 
00158 inline unsigned int XMLNotationDecl::getNameSpaceId() const
00159 {
00160     return fNameSpaceId;
00161 }
00162 
00163 inline const XMLCh* XMLNotationDecl::getPublicId() const
00164 {
00165     return fPublicId;
00166 }
00167 
00168 inline const XMLCh* XMLNotationDecl::getSystemId() const
00169 {
00170     return fSystemId;
00171 }
00172 
00173 inline const XMLCh* XMLNotationDecl::getBaseURI() const
00174 {
00175     return fBaseURI;
00176 }
00177 
00178 inline MemoryManager* XMLNotationDecl::getMemoryManager() const
00179 {
00180     return fMemoryManager;
00181 }
00182 
00183 // -----------------------------------------------------------------------
00184 //  Setter methods
00185 // -----------------------------------------------------------------------
00186 inline void XMLNotationDecl::setId(const unsigned int newId)
00187 {
00188     fId = newId;
00189 }
00190 
00191 inline void XMLNotationDecl::setNameSpaceId(const unsigned int newId)
00192 {
00193     fNameSpaceId = newId;
00194 }
00195 
00196 inline void XMLNotationDecl::setPublicId(const XMLCh* const newId)
00197 {
00198     if (fPublicId)
00199         fMemoryManager->deallocate(fPublicId);
00200 
00201     fPublicId = XMLString::replicate(newId, fMemoryManager);
00202 }
00203 
00204 inline void XMLNotationDecl::setSystemId(const XMLCh* const newId)
00205 {
00206     if (fSystemId)
00207         fMemoryManager->deallocate(fSystemId);
00208 
00209     fSystemId = XMLString::replicate(newId, fMemoryManager);
00210 }
00211 
00212 inline void XMLNotationDecl::setBaseURI(const XMLCh* const newId)
00213 {
00214     if (fBaseURI)
00215         fMemoryManager->deallocate(fBaseURI);
00216 
00217     fBaseURI = XMLString::replicate(newId, fMemoryManager);
00218 }
00219 
00220 
00221 // ---------------------------------------------------------------------------
00222 //  XMLNotationDecl: Support named pool element semantics
00223 // ---------------------------------------------------------------------------
00224 inline const XMLCh* XMLNotationDecl::getKey() const
00225 {
00226     return fName;
00227 }
00228 
00229 XERCES_CPP_NAMESPACE_END
00230 
00231 #endif

Generated on Thu Feb 19 11:35:44 2009 for Xerces-C++ by  doxygen 1.5.4