Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.8

Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

XalanParsedURI.hpp

Go to the documentation of this file.
00001 /* 00002 * Copyright 1999-2004 The Apache Software Foundation. 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 00017 #if !defined(XALANPARSEDURI_HEADER_GUARD_1357924680) 00018 #define XALANPARSEDURI_HEADER_GUARD_1357924680 00019 00020 00021 00022 // Base include file. Must be first. 00023 #include <xalanc/PlatformSupport/PlatformSupportDefinitions.hpp> 00024 00025 00026 00027 #include <xalanc/XalanDOM/XalanDOMString.hpp> 00028 00029 00030 00031 00032 XALAN_CPP_NAMESPACE_BEGIN 00033 00034 00035 00039 class XALAN_PLATFORMSUPPORT_EXPORT XalanParsedURI 00040 { 00041 public: 00042 00043 // Flags to say if a component is defined. Note that each component may 00044 // be defined but empty, except for the path. 00045 #if defined(XALAN_INLINE_INITIALIZATION) 00046 static const int d_scheme = 1; 00047 static const int d_authority = 2; 00048 static const int d_query = 4; 00049 static const int d_fragment = 8; 00050 #else 00051 enum eComponent 00052 { 00053 d_scheme = 1, 00054 d_authority = 2, 00055 d_query = 4, 00056 d_fragment = 8 00057 }; 00058 #endif 00059 00063 XalanParsedURI() : 00064 m_defined(0) 00065 { 00066 } 00067 00074 XalanParsedURI( 00075 const XalanDOMChar* uriString, 00076 XalanDOMString::size_type uriStringLen) : 00077 m_defined(0) 00078 { 00079 parse(uriString, uriStringLen); 00080 } 00081 00087 XalanParsedURI( 00088 const XalanDOMString &uriString) : 00089 m_defined(0) 00090 { 00091 parse(uriString.c_str(), uriString.length()); 00092 } 00093 00100 void parse( 00101 const XalanDOMChar* uriString, 00102 XalanDOMString::size_type uriStringLen); 00103 00110 void parse( 00111 const XalanDOMString &uriString) 00112 { 00113 parse(uriString.c_str(), uriString.length()); 00114 } 00115 00121 XalanDOMString make() const; 00122 00128 void resolve(const XalanParsedURI &base); 00129 00136 void resolve( 00137 const XalanDOMChar *base, 00138 const XalanDOMString::size_type baseLen) 00139 { 00140 XalanParsedURI baseURI(base, baseLen); 00141 00142 resolve(baseURI); 00143 } 00144 00150 void resolve( 00151 const XalanDOMString &base) 00152 { 00153 resolve(base.c_str(), base.length()); 00154 } 00155 00165 static XalanDOMString resolve( 00166 const XalanDOMChar *relative, 00167 XalanDOMString::size_type relativeLen, 00168 const XalanDOMChar *base, 00169 XalanDOMString::size_type baseLen 00170 ); 00171 00172 00180 static XalanDOMString resolve( 00181 const XalanDOMString &relative, 00182 const XalanDOMString &base 00183 ) 00184 { 00185 return resolve(relative.c_str(), relative.length(), base.c_str(), base.length()); 00186 } 00187 00191 const XalanDOMString& getScheme() const 00192 { 00193 return m_scheme; 00194 } 00195 00199 bool isSchemeDefined() const 00200 { 00201 return !!(m_defined & d_scheme); 00202 } 00203 00207 void setScheme(const XalanDOMChar *scheme) 00208 { 00209 m_scheme = scheme; 00210 m_defined |= d_scheme; 00211 } 00212 00216 void setScheme(const XalanDOMString &scheme) 00217 { 00218 m_scheme = scheme; 00219 m_defined |= d_scheme; 00220 } 00221 00225 const XalanDOMString& getAuthority() const 00226 { 00227 return m_authority; 00228 } 00229 00233 bool isAuthorityDefined() const 00234 { 00235 return !!(m_defined & d_authority); 00236 } 00237 00241 void setAuthority(const XalanDOMChar *authority) 00242 { 00243 m_authority = authority; 00244 m_defined |= d_authority; 00245 } 00246 00250 void setAuthority(const XalanDOMString &authority) 00251 { 00252 m_authority = authority; 00253 m_defined |= d_authority; 00254 } 00255 00259 const XalanDOMString& getPath() const 00260 { 00261 return m_path; 00262 } 00263 00267 void setPath(const XalanDOMChar *path) 00268 { 00269 m_path = path; 00270 } 00271 00275 void setPath(const XalanDOMString &path) 00276 { 00277 m_path = path; 00278 } 00279 00283 const XalanDOMString& getQuery() const 00284 { 00285 return m_query; 00286 } 00287 00291 bool isQueryDefined() const 00292 { 00293 return !!(m_defined & d_query); 00294 } 00295 00299 void setQuery(const XalanDOMChar *query) 00300 { 00301 m_query = query; 00302 m_defined |= d_query; 00303 } 00304 00308 void setQuery(const XalanDOMString &query) 00309 { 00310 m_query = query; 00311 m_defined |= d_query; 00312 } 00313 00317 const XalanDOMString& getFragment() const 00318 { 00319 return m_fragment; 00320 } 00321 00325 bool isFragmentDefined() const 00326 { 00327 return !!(m_defined & d_fragment); 00328 } 00329 00333 void setFragment(const XalanDOMChar *fragment) 00334 { 00335 m_fragment = fragment; 00336 m_defined |= d_fragment; 00337 } 00338 00342 void setFragment(const XalanDOMString &fragment) 00343 { 00344 m_fragment = fragment; 00345 m_defined |= d_fragment; 00346 } 00347 00351 unsigned int getDefined() const 00352 { 00353 return m_defined; 00354 } 00355 00359 void setDefined(unsigned int defined) 00360 { 00361 m_defined = defined; 00362 } 00363 00364 private: 00365 XalanDOMString m_scheme; 00366 XalanDOMString m_authority; 00367 XalanDOMString m_path; 00368 XalanDOMString m_query; 00369 XalanDOMString m_fragment; 00370 00371 unsigned int m_defined; 00372 }; 00373 00374 XALAN_CPP_NAMESPACE_END 00375 00376 #endif // XALANPARSEDURI_HEADER_GUARD_1357924680

Interpreting class diagrams

Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.

Xalan-C++ XSLT Processor Version 1.8
Copyright © 1999-2004 The Apache Software Foundation. All Rights Reserved.