X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=xmltooling%2FXMLObject.h;h=8ebb60755f5ff0c9b1f58fd222847d416df5d670;hb=24f6c0a5e8a13de058a15d1404fbbabb852db824;hp=85f70548a50d9c8159a4c156d759cadbf9bcb573;hpb=f6221acce6ee490b9189dd2f5efabda3b9e64fb1;p=shibboleth%2Fcpp-xmltooling.git diff --git a/xmltooling/XMLObject.h b/xmltooling/XMLObject.h index 85f7054..8ebb607 100644 --- a/xmltooling/XMLObject.h +++ b/xmltooling/XMLObject.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. + * + * 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 * - * http://www.apache.org/licenses/LICENSE-2.0 + * 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. + * 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. */ /** @@ -23,7 +27,6 @@ #ifndef __xmltooling_xmlobj_h__ #define __xmltooling_xmlobj_h__ -#include #include #include @@ -48,6 +51,7 @@ namespace xmltooling { #ifndef XMLTOOLING_NO_XMLSEC class XMLTOOL_API Credential; #endif + class XMLTOOL_API QName; /** * Object that represents an XML Element that has been unmarshalled into this C++ object. @@ -55,7 +59,7 @@ namespace xmltooling { class XMLTOOL_API XMLObject { public: - virtual ~XMLObject() {} + virtual ~XMLObject(); /** * Creates a copy of the object, along with all of its children. @@ -122,11 +126,18 @@ namespace xmltooling { /** * Gets the value of the ID attribute set on this object, if any. * - * @return an ID value or NULL + * @return an ID value or nullptr */ virtual const XMLCh* getXMLID() const=0; /** + * Returns the xml:lang property of the object, if any. + * + * @return an xml:lang value, or nullptr + */ + virtual const XMLCh* getLang() const; + + /** * Returns the xsi:nil property of the object, or false if not set. * * @return the xsi:nil property @@ -234,7 +245,7 @@ namespace xmltooling { /** * Sets (or clears) text content relative to a child element's position. * - * @param value value to set, or NULL to clear + * @param value value to set, or nullptr to clear * @param position position relative to child element */ virtual void setTextContent(const XMLCh* value, unsigned int position=0)=0; @@ -284,22 +295,12 @@ namespace xmltooling { /** * A convenience method that is equal to calling releaseDOM() then releaseParentDOM(true). */ - void releaseThisandParentDOM() const { - if (getDOM()) { - releaseDOM(); - releaseParentDOM(true); - } - } + void releaseThisandParentDOM() const; /** * A convenience method that is equal to calling releaseChildrenDOM(true) then releaseDOM(). */ - void releaseThisAndChildrenDOM() const { - if (getDOM()) { - releaseChildrenDOM(true); - releaseDOM(); - } - } + void releaseThisAndChildrenDOM() const; /** * Marshalls the XMLObject, and its children, into a DOM element. @@ -309,7 +310,7 @@ namespace xmltooling { * a new document will be created and bound to the lifetime of the root object being * marshalled, unless an existing DOM can be reused without creating a new document. * - * @param document the DOM document the marshalled element will be placed in, or NULL + * @param document the DOM document the marshalled element will be placed in, or nullptr * @param sigs ordered array of signatures to create after marshalling is complete * @param credential optional credential to supply signing key and related info * @return the DOM element representing this XMLObject @@ -318,10 +319,10 @@ namespace xmltooling { * @throws SignatureException thrown if a problem occurs during signature creation */ virtual xercesc::DOMElement* marshall( - xercesc::DOMDocument* document=NULL + xercesc::DOMDocument* document=nullptr #ifndef XMLTOOLING_NO_XMLSEC - ,const std::vector* sigs=NULL - ,const Credential* credential=NULL + ,const std::vector* sigs=nullptr + ,const Credential* credential=nullptr #endif ) const=0; @@ -342,8 +343,8 @@ namespace xmltooling { virtual xercesc::DOMElement* marshall( xercesc::DOMElement* parentElement #ifndef XMLTOOLING_NO_XMLSEC - ,const std::vector* sigs=NULL - ,const Credential* credential=NULL + ,const std::vector* sigs=nullptr + ,const Credential* credential=nullptr #endif ) const=0; @@ -362,7 +363,7 @@ namespace xmltooling { virtual XMLObject* unmarshall(xercesc::DOMElement* element, bool bindDocument=false)=0; protected: - XMLObject() {} + XMLObject(); private: XMLObject& operator=(const XMLObject& src); };