text: /*
   * Copyright 1999-2004 The Apache Software Foundation.
   *
   * 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.
   */
  #include "XercesNotationWrapper.hpp"
  
  
  
  #include <xercesc/dom/DOMNotation.hpp>
  
  
  
  #include <xalanc/DOMSupport/DOMServices.hpp>
  
  
  
  #include "XercesDOMWrapperException.hpp"
  #include "XercesWrapperHelper.hpp"
  #include "XercesWrapperNavigator.hpp"
  #include "XercesDocumentWrapper.hpp"
  
  
  
  XALAN_CPP_NAMESPACE_BEGIN
  
  
  
  XercesNotationWrapper::XercesNotationWrapper(
  			const DOMNotationType*			theXercesDOMNotation,
  			const XercesWrapperNavigator&	theNavigator) :
  	XalanNotation(),
  	m_xercesNode(theXercesDOMNotation),
  	m_navigator(theNavigator)
  {
  	assert(theXercesDOMNotation != 0);
  }
  
  XercesNotationWrapper*
  XercesNotationWrapper::create( MemoryManagerType& theManager,
  			const DOMNotationType*			theXercesDOMNotation,
  			const XercesWrapperNavigator&	theNavigator)
  
  {
      typedef XercesNotationWrapper ThisType;
  
      XalanMemMgrAutoPtr<ThisType, false> theGuard( theManager , (ThisType*)theManager.allocate(sizeof(ThisType)));
  
      ThisType* theResult = theGuard.get();
  
      new (theResult) ThisType(theXercesDOMNotation, theNavigator);
  
      theGuard.release();
  
      return theResult;
  }
  
  
  XercesNotationWrapper::~XercesNotationWrapper()
  {
  }
  
  
  
  const XalanDOMString&
  XercesNotationWrapper::getNodeName() const
  {
  	return m_navigator.getPooledString(m_xercesNode->getNodeName());
  }
  
  
  
  const XalanDOMString&
  XercesNotationWrapper::getNodeValue() const
  {
  	return m_navigator.getPooledString(m_xercesNode->getNodeValue());
  }
  
  
  
  XercesNotationWrapper::NodeType
  XercesNotationWrapper::getNodeType() const
  {
  	return NOTATION_NODE;
  }
  
  
  
  XalanNode*
  XercesNotationWrapper::getParentNode() const
  {
  	return m_navigator.getParentNode(m_xercesNode);
  }
  
  
  
  const XalanNodeList*
  XercesNotationWrapper::getChildNodes() const
  {
  	return 0;
  }
  
  
  
  XalanNode*
  XercesNotationWrapper::getFirstChild() const
  {
  	return 0;
  }
  
  
  
  XalanNode*
  XercesNotationWrapper::getLastChild() const
  {
  	return 0;
  }
  
  
  
  XalanNode*
  XercesNotationWrapper::getPreviousSibling() const
  {
  	return m_navigator.getPreviousSibling(m_xercesNode);
  }
  
  
  
  XalanNode*
  XercesNotationWrapper::getNextSibling() const
  {
  	return m_navigator.getNextSibling(m_xercesNode);
  }
  
  
  
  const XalanNamedNodeMap*
  XercesNotationWrapper::getAttributes() const
  {
  	return 0;
  }
  
  
  
  XalanDocument*
  XercesNotationWrapper::getOwnerDocument() const
  {
  	return m_navigator.getOwnerDocument();
  }
  
  
  
  #if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
  XalanNode*
  #else
  XercesNotationWrapper*
  #endif
  XercesNotationWrapper::cloneNode(bool		/* deep */) const
  {
  	throw XercesDOMWrapperException(XercesDOMWrapperException::NOT_SUPPORTED_ERR);
  
  	return 0;
  }
  
  
  
  XalanNode*
  XercesNotationWrapper::insertBefore(
  			XalanNode*	/* newChild */,
  			XalanNode*	/* refChild */)
  {
  	throw XercesDOMWrapperException(XercesDOMWrapperException::HIERARCHY_REQUEST_ERR);
  
  	return 0;
  }
  
  
  
  XalanNode*
  XercesNotationWrapper::replaceChild(
  			XalanNode*	/* newChild */,
  			XalanNode*	/* oldChild */)
  {
  	throw XercesDOMWrapperException(XercesDOMWrapperException::HIERARCHY_REQUEST_ERR);
  
  	return 0;
  }
  
  
  
  XalanNode*
  XercesNotationWrapper::removeChild(XalanNode*	/* oldChild */)
  {
  	throw XercesDOMWrapperException(XercesDOMWrapperException::HIERARCHY_REQUEST_ERR);
  
  	return 0;
  }
  
  
  
  XalanNode*
  XercesNotationWrapper::appendChild(XalanNode*	/* newChild */)
  {
  	throw XercesDOMWrapperException(XercesDOMWrapperException::HIERARCHY_REQUEST_ERR);
  
  	return 0;
  }
  
  
  
  bool
  XercesNotationWrapper::hasChildNodes() const
  {
  	return false;
  }
  
  
  
  void
  XercesNotationWrapper::setNodeValue(const XalanDOMString&	/* nodeValue */)
  {
  	throw XalanDOMException(XalanDOMException::NO_MODIFICATION_ALLOWED_ERR);
  }
  
  
  
  void
  XercesNotationWrapper::normalize()
  {
  	throw XalanDOMException(XalanDOMException::NO_MODIFICATION_ALLOWED_ERR);
  }
  
  
  
  bool
  XercesNotationWrapper::isSupported(
  			const XalanDOMString&	feature,
  			const XalanDOMString&	version) const
  {
  	return XercesWrapperHelper::isSupported(m_xercesNode, feature, version);
  }
  
  
  
  const XalanDOMString&
  XercesNotationWrapper::getNamespaceURI() const
  {
  	return m_navigator.getPooledString(m_xercesNode->getNamespaceURI());
  }
  
  
  
  const XalanDOMString&
  XercesNotationWrapper::getPrefix() const
  {
  	return m_navigator.getPooledString(m_xercesNode->getPrefix());
  }
  
  
  
  const XalanDOMString&
  XercesNotationWrapper::getLocalName() const
  {
  	return m_navigator.getPooledString(m_xercesNode->getLocalName());
  }
  
  
  
  void
  XercesNotationWrapper::setPrefix(const XalanDOMString&	/* prefix */)
  {
  	throw XalanDOMException(XalanDOMException::NO_MODIFICATION_ALLOWED_ERR);
  }
  
  
  
  bool
  XercesNotationWrapper::isIndexed() const
  {
  	return m_navigator.getOwnerDocument()->isIndexed();
  }
  
  
  
  XercesNotationWrapper::IndexType
  XercesNotationWrapper::getIndex() const
  {
  	return m_navigator.getIndex();
  }
  
  
  
  const XalanDOMString&
  XercesNotationWrapper::getPublicId() const
  {
  	return m_navigator.getPooledString(m_xercesNode->getPublicId());
  }
  
  
  
  const XalanDOMString&
  XercesNotationWrapper::getSystemId() const
  {
  	return m_navigator.getPooledString(m_xercesNode->getSystemId());
  }
  
  
  
  XALAN_CPP_NAMESPACE_END
  