00001 /* 00002 * The Apache Software License, Version 1.1 00003 * 00004 * Copyright (c) 1999-2000 The Apache Software Foundation. All rights 00005 * reserved. 00006 * 00007 * Redistribution and use in source and binary forms, with or without 00008 * modification, are permitted provided that the following conditions 00009 * are met: 00010 * 00011 * 1. Redistributions of source code must retain the above copyright 00012 * notice, this list of conditions and the following disclaimer. 00013 * 00014 * 2. Redistributions in binary form must reproduce the above copyright 00015 * notice, this list of conditions and the following disclaimer in 00016 * the documentation and/or other materials provided with the 00017 * distribution. 00018 * 00019 * 3. The end-user documentation included with the redistribution, 00020 * if any, must include the following acknowledgment: 00021 * "This product includes software developed by the 00022 * Apache Software Foundation (http://www.apache.org/)." 00023 * Alternately, this acknowledgment may appear in the software itself, 00024 * if and wherever such third-party acknowledgments normally appear. 00025 * 00026 * 4. The names "Xerces" and "Apache Software Foundation" must 00027 * not be used to endorse or promote products derived from this 00028 * software without prior written permission. For written 00029 * permission, please contact apache\@apache.org. 00030 * 00031 * 5. Products derived from this software may not be called "Apache", 00032 * nor may "Apache" appear in their name, without prior written 00033 * permission of the Apache Software Foundation. 00034 * 00035 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 00036 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00037 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00038 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 00039 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00040 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00041 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 00042 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 00043 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00044 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 00045 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 00046 * SUCH DAMAGE. 00047 * ==================================================================== 00048 * 00049 * This software consists of voluntary contributions made by many 00050 * individuals on behalf of the Apache Software Foundation, and was 00051 * originally based on software copyright (c) 1999, International 00052 * Business Machines, Inc., http://www.ibm.com . For more information 00053 * on the Apache Software Foundation, please see 00054 * <http://www.apache.org/>. 00055 */ 00056 00057 /* 00058 * $Log: XMLRefInfo.hpp,v $ 00059 * Revision 1.1 2002/05/11 20:03:59 bhavani 00060 * CR#CR062582# adding xercesc 1.7 file 00061 * 00062 * Revision 1.1.1.1 2002/02/01 22:21:52 peiyongz 00063 * sane_include 00064 * 00065 * Revision 1.5 2000/07/07 22:23:38 jpolast 00066 * remove useless getKey() functions. 00067 * 00068 * Revision 1.4 2000/02/24 20:00:23 abagchi 00069 * Swat for removing Log from API docs 00070 * 00071 * Revision 1.3 2000/02/15 01:21:31 roddey 00072 * Some initial documentation improvements. More to come... 00073 * 00074 * Revision 1.2 2000/02/06 07:47:49 rahulj 00075 * Year 2K copyright swat. 00076 * 00077 * Revision 1.1.1.1 1999/11/09 01:08:37 twl 00078 * Initial checkin 00079 * 00080 * Revision 1.2 1999/11/08 20:44:40 rahul 00081 * Swat for adding in Product name and CVS comment log variable. 00082 * 00083 */ 00084 00085 00086 #if !defined(XMLIDREFINFO_HPP) 00087 #define XMLIDREFINFO_HPP 00088 00089 00104 class XMLPARSER_EXPORT XMLRefInfo 00105 { 00106 public : 00107 // ----------------------------------------------------------------------- 00108 // Constructors and Destructor 00109 // ----------------------------------------------------------------------- 00110 00113 XMLRefInfo 00114 ( 00115 const XMLCh* const refName 00116 , const bool fDeclared = false 00117 , const bool fUsed = false 00118 ); 00120 00123 ~XMLRefInfo(); 00125 00126 00127 // ----------------------------------------------------------------------- 00128 // Getter methods 00129 // ----------------------------------------------------------------------- 00130 bool getDeclared() const; 00131 const XMLCh* getRefName() const; 00132 bool getUsed() const; 00133 00134 00135 // ----------------------------------------------------------------------- 00136 // Setter methods 00137 // ----------------------------------------------------------------------- 00138 void setDeclared(const bool newValue); 00139 void setUsed(const bool newValue); 00140 00141 private : 00142 // ----------------------------------------------------------------------- 00143 // Unimplemented constructors and operators 00144 // ----------------------------------------------------------------------- 00145 XMLRefInfo(); 00146 XMLRefInfo(const XMLRefInfo&); 00147 void operator=(XMLRefInfo&); 00148 00149 00150 // ----------------------------------------------------------------------- 00151 // Private data members 00152 // 00153 // fDeclared 00154 // The name was declared somewhere as an ID attribute. 00155 // 00156 // fRefName 00157 // The name of the ref that this object represents. This is not a 00158 // name of the attribute, but of the value of an ID or IDREF attr 00159 // in content. 00160 // 00161 // fUsed 00162 // The name was used somewhere in an IDREF/IDREFS attribute. If this 00163 // is true, but fDeclared is false, then the ref does not refer to 00164 // a declared ID. 00165 // ----------------------------------------------------------------------- 00166 bool fDeclared; 00167 XMLCh* fRefName; 00168 bool fUsed; 00169 }; 00170 00171 00172 // --------------------------------------------------------------------------- 00173 // XMLRefInfo: Constructors and Destructor 00174 // --------------------------------------------------------------------------- 00175 inline XMLRefInfo::XMLRefInfo( const XMLCh* const refName 00176 , const bool declared 00177 , const bool used) : 00178 fDeclared(declared) 00179 , fRefName(XMLString::replicate(refName)) 00180 , fUsed(used) 00181 { 00182 } 00183 00184 inline XMLRefInfo::~XMLRefInfo() 00185 { 00186 delete [] fRefName; 00187 } 00188 00189 00190 // --------------------------------------------------------------------------- 00191 // XMLRefInfo: Getter methods 00192 // --------------------------------------------------------------------------- 00193 inline bool XMLRefInfo::getDeclared() const 00194 { 00195 return fDeclared; 00196 } 00197 00198 inline const XMLCh* XMLRefInfo::getRefName() const 00199 { 00200 return fRefName; 00201 } 00202 00203 inline bool XMLRefInfo::getUsed() const 00204 { 00205 return fUsed; 00206 } 00207 00208 00209 // --------------------------------------------------------------------------- 00210 // XMLRefInfo: Setter methods 00211 // --------------------------------------------------------------------------- 00212 inline void XMLRefInfo::setDeclared(const bool newValue) 00213 { 00214 fDeclared = newValue; 00215 } 00216 00217 inline void XMLRefInfo::setUsed(const bool newValue) 00218 { 00219 fUsed = newValue; 00220 } 00221 00222 00223 #endif