X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=xmltooling%2FQName.h;h=02ce2100fca308f7c3de328a19ddfc57b365d76d;hb=d1c1478d26cfd9b87a4deb80c3638dc42e111735;hp=c0e5b9531abb570dc113a843ef73387a3aa97b82;hpb=aff64904d1663ea3770daa633a80f64d205fbb2f;p=shibboleth%2Fcpp-xmltooling.git diff --git a/xmltooling/QName.h b/xmltooling/QName.h index c0e5b95..02ce210 100644 --- a/xmltooling/QName.h +++ b/xmltooling/QName.h @@ -1,17 +1,21 @@ -/* - * Copyright 2001-2007 Internet2 - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at +/** + * Licensed to the University Corporation for Advanced Internet + * Development, Inc. (UCAID) under one or more contributor license + * agreements. See the NOTICE file distributed with this work for + * additional information regarding copyright ownership. * - * http://www.apache.org/licenses/LICENSE-2.0 + * UCAID licenses this file to you under the Apache License, + * Version 2.0 (the "License"); you may not use this file except + * in compliance with the License. You may obtain a copy of the + * License at * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the License for the specific + * language governing permissions and limitations under the License. */ /** @@ -42,26 +46,24 @@ namespace xmltooling { public: /** * Constructor + * * @param uri namespace URI * @param localPart local name * @param prefix namespace prefix (without the colon) */ - QName(const XMLCh* uri=NULL, const XMLCh* localPart=NULL, const XMLCh* prefix=NULL); - - ~QName(); -#ifndef HAVE_GOOD_STL - /** - * Deep copy constructor - */ - QName(const QName& src); + QName(const XMLCh* uri=nullptr, const XMLCh* localPart=nullptr, const XMLCh* prefix=nullptr); /** - * Deep assignment operator + * Constructor + * + * @param uri namespace URI + * @param localPart local name + * @param prefix namespace prefix (without the colon) */ - QName& operator=(const QName& src); -#endif + QName(const char* uri, const char* localPart, const char* prefix=nullptr); + + ~QName(); -#ifdef HAVE_GOOD_STL /** * Indicates whether the QName has a prefix. * @return true iff the prefix is non-empty @@ -97,61 +99,42 @@ namespace xmltooling { * @return Null-terminated Unicode string containing the local name */ const XMLCh* getLocalPart() const { return m_local.c_str(); } -#else - /** - * Indicates whether the QName has a prefix. - * @return true iff the prefix is non-empty - */ - bool hasPrefix() const { return m_prefix && *m_prefix; } - - /** - * Indicates whether the QName has a non-empty namespace. - * @return true iff the namespace is non-empty - */ - bool hasNamespaceURI() const { return m_uri && *m_uri; } /** - * Indicates whether the QName has a non-empty local name. - * @return true iff the local name is non-empty - */ - bool hasLocalPart() const { return m_local && *m_local; } - - /** - * Returns the namespace prefix - * @return Null-terminated Unicode string containing the prefix, without the colon + * Sets the namespace prefix + * @param prefix Null-terminated Unicode string containing the prefix, without the colon */ - const XMLCh* getPrefix() const { return m_prefix; } + void setPrefix(const XMLCh* prefix); /** - * Returns the namespace URI - * @return Null-terminated Unicode string containing the URI + * Sets the namespace URI + * @param uri Null-terminated Unicode string containing the URI */ - const XMLCh* getNamespaceURI() const { return m_uri; } - + void setNamespaceURI(const XMLCh* uri); + /** - * Returns the local part of the name - * @return Null-terminated Unicode string containing the local name + * Sets the local part of the name + * @param localPart Null-terminated Unicode string containing the local name */ - const XMLCh* getLocalPart() const { return m_local; } -#endif - + void setLocalPart(const XMLCh* localPart); + /** * Sets the namespace prefix - * @param prefix Null-terminated Unicode string containing the prefix, without the colon + * @param prefix Null-terminated ASCII string containing the prefix, without the colon */ - void setPrefix(const XMLCh* prefix); + void setPrefix(const char* prefix); /** * Sets the namespace URI - * @param uri Null-terminated Unicode string containing the URI + * @param uri Null-terminated ASCII string containing the URI */ - void setNamespaceURI(const XMLCh* uri); + void setNamespaceURI(const char* uri); /** * Sets the local part of the name - * @param localPart Null-terminated Unicode string containing the local name + * @param localPart Null-terminated ASCII string containing the local name */ - void setLocalPart(const XMLCh* localPart); + void setLocalPart(const char* localPart); /** * Gets a string representation of the QName for logging, etc. @@ -162,15 +145,9 @@ namespace xmltooling { std::string toString() const; private: -#ifdef HAVE_GOOD_STL xstring m_uri; xstring m_local; xstring m_prefix; -#else - XMLCh* m_uri; - XMLCh* m_local; - XMLCh* m_prefix; -#endif }; #if defined (_MSC_VER)