-/*
-* Copyright 2001-2006 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
- *
- * 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.
- */
-
-/**
- * AbstractXMLObject.cpp
- *
- * An abstract implementation of XMLObject.
- */
-
-#include "internal.h"
-#include "AbstractXMLObject.h"
-#include "exceptions.h"
-
-#include <algorithm>
-#include <log4cpp/Category.hh>
-
-using namespace xmltooling;
-
-AbstractXMLObject::AbstractXMLObject(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)
- : m_log(&log4cpp::Category::getInstance(XMLTOOLING_LOGCAT".XMLObject")),
- m_parent(NULL), m_elementQname(nsURI, localName, prefix), m_typeQname(NULL)
-{
- addNamespace(Namespace(nsURI, prefix));
- if (schemaType) {
- m_typeQname = new QName(*schemaType);
- addNamespace(Namespace(m_typeQname->getNamespaceURI(), m_typeQname->getPrefix()));
- }
-}
-
-AbstractXMLObject::AbstractXMLObject(const AbstractXMLObject& src)
- : m_namespaces(src.m_namespaces), m_log(src.m_log), m_parent(NULL), m_elementQname(src.m_elementQname), m_typeQname(NULL)
-{
- if (src.m_typeQname)
- m_typeQname=new QName(*src.m_typeQname);
-}
-
-XMLCh* AbstractXMLObject::prepareForAssignment(XMLCh* oldValue, const XMLCh* newValue)
-{
- XMLCh* newString = XMLString::replicate(newValue);
- XMLString::trim(newString);
- if (!XMLString::equals(oldValue,newValue)) {
- releaseThisandParentDOM();
- XMLString::release(&oldValue);
- return newString;
- }
- XMLString::release(&newString);
- return oldValue;
-}
-
-QName* AbstractXMLObject::prepareForAssignment(QName* oldValue, const QName* newValue)
-{
- if (!oldValue) {
- if (newValue) {
- releaseThisandParentDOM();
+/*\r
+* Copyright 2001-2006 Internet2\r
+ * \r
+* Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+/**\r
+ * AbstractXMLObject.cpp\r
+ * \r
+ * An abstract implementation of XMLObject.\r
+ */\r
+\r
+#include "internal.h"\r
+#include "AbstractXMLObject.h"\r
+#include "exceptions.h"\r
+\r
+#include <algorithm>\r
+#include <log4cpp/Category.hh>\r
+\r
+using namespace xmltooling;\r
+\r
+AbstractXMLObject::AbstractXMLObject(const XMLCh* nsURI, const XMLCh* localName, const XMLCh* prefix, const QName* schemaType)\r
+ : m_log(&log4cpp::Category::getInstance(XMLTOOLING_LOGCAT".XMLObject")),\r
+ m_parent(NULL), m_elementQname(nsURI, localName, prefix), m_typeQname(NULL)\r
+{\r
+ addNamespace(Namespace(nsURI, prefix));\r
+ if (schemaType) {\r
+ m_typeQname = new QName(*schemaType);\r
+ addNamespace(Namespace(m_typeQname->getNamespaceURI(), m_typeQname->getPrefix()));\r
+ }\r
+}\r
+\r
+AbstractXMLObject::AbstractXMLObject(const AbstractXMLObject& src)\r
+ : m_namespaces(src.m_namespaces), m_log(src.m_log), m_parent(NULL), m_elementQname(src.m_elementQname), m_typeQname(NULL)\r
+{\r
+ if (src.m_typeQname)\r
+ m_typeQname=new QName(*src.m_typeQname);\r
+}\r
+\r
+XMLCh* AbstractXMLObject::prepareForAssignment(XMLCh* oldValue, const XMLCh* newValue)\r
+{\r
+ XMLCh* newString = XMLString::replicate(newValue);\r
+ XMLString::trim(newString);\r
+ if (!XMLString::equals(oldValue,newValue)) {\r
+ releaseThisandParentDOM();\r
+ XMLString::release(&oldValue);\r
+ return newString;\r
+ }\r
+ XMLString::release(&newString);\r
+ return oldValue; \r
+}\r
+\r
+QName* AbstractXMLObject::prepareForAssignment(QName* oldValue, const QName* newValue)\r
+{\r
+ if (!oldValue) {\r
+ if (newValue) {\r
+ releaseThisandParentDOM();\r
Namespace newNamespace(newValue->getNamespaceURI(), newValue->getPrefix());\r
addNamespace(newNamespace);\r
- return new QName(*newValue);
- }
- return NULL;
- }
-
- delete oldValue;
- releaseThisandParentDOM();
- if (newValue) {
+ return new QName(*newValue);\r
+ }\r
+ return NULL;\r
+ }\r
+\r
+ delete oldValue;\r
+ releaseThisandParentDOM();\r
+ if (newValue) {\r
Namespace newNamespace(newValue->getNamespaceURI(), newValue->getPrefix());\r
addNamespace(newNamespace);\r
return new QName(*newValue);\r
- }
- return NULL;
-}
-
-DateTime* AbstractXMLObject::prepareForAssignment(DateTime* oldValue, const DateTime* newValue)
-{
- if (!oldValue) {
- if (newValue) {
- releaseThisandParentDOM();
- return new DateTime(*newValue);
- }
- return NULL;
- }
-
- delete oldValue;
- releaseThisandParentDOM();
- return newValue ? new DateTime(*newValue) : NULL;
-}
-
-DateTime* AbstractXMLObject::prepareForAssignment(DateTime* oldValue, time_t newValue)
-{
- delete oldValue;
- releaseThisandParentDOM();
- DateTime* ret = new DateTime(newValue);
- ret->parseDateTime();
- return ret;
-}
-
-DateTime* AbstractXMLObject::prepareForAssignment(DateTime* oldValue, const XMLCh* newValue)
-{
- delete oldValue;
- releaseThisandParentDOM();
- DateTime* ret = new DateTime(newValue);
- ret->parseDateTime();
- return ret;
-}
-
-XMLObject* AbstractXMLObject::prepareForAssignment(XMLObject* oldValue, XMLObject* newValue)
-{
- if (newValue && newValue->hasParent())
- throw XMLObjectException("child XMLObject cannot be added - it is already the child of another XMLObject");
-
- if (!oldValue) {
- if (newValue) {
- releaseThisandParentDOM();
- newValue->setParent(this);
- }
- return newValue;
- }
-
- if (oldValue != newValue) {
- delete oldValue;
- releaseThisandParentDOM();
- if (newValue)
- newValue->setParent(this);
- }
-
- return newValue;
-}
+ }\r
+ return NULL;\r
+}\r
+\r
+DateTime* AbstractXMLObject::prepareForAssignment(DateTime* oldValue, const DateTime* newValue)\r
+{\r
+ if (!oldValue) {\r
+ if (newValue) {\r
+ releaseThisandParentDOM();\r
+ return new DateTime(*newValue);\r
+ }\r
+ return NULL;\r
+ }\r
+\r
+ delete oldValue;\r
+ releaseThisandParentDOM();\r
+ return newValue ? new DateTime(*newValue) : NULL;\r
+}\r
+\r
+DateTime* AbstractXMLObject::prepareForAssignment(DateTime* oldValue, time_t newValue)\r
+{\r
+ delete oldValue;\r
+ releaseThisandParentDOM();\r
+ DateTime* ret = new DateTime(newValue);\r
+ ret->parseDateTime();\r
+ return ret;\r
+}\r
+\r
+DateTime* AbstractXMLObject::prepareForAssignment(DateTime* oldValue, const XMLCh* newValue)\r
+{\r
+ delete oldValue;\r
+ releaseThisandParentDOM();\r
+ DateTime* ret = new DateTime(newValue);\r
+ ret->parseDateTime();\r
+ return ret;\r
+}\r
+\r
+XMLObject* AbstractXMLObject::prepareForAssignment(XMLObject* oldValue, XMLObject* newValue)\r
+{\r
+ if (newValue && newValue->hasParent())\r
+ throw XMLObjectException("child XMLObject cannot be added - it is already the child of another XMLObject");\r
+\r
+ if (!oldValue) {\r
+ if (newValue) {\r
+ releaseThisandParentDOM();\r
+ newValue->setParent(this);\r
+ }\r
+ return newValue;\r
+ }\r
+\r
+ if (oldValue != newValue) {\r
+ delete oldValue;\r
+ releaseThisandParentDOM();\r
+ if (newValue)\r
+ newValue->setParent(this);\r
+ }\r
+\r
+ return newValue;\r
+}\r