package org.exist.dom; import org.apache.log4j.Logger; import org.exist.storage.txn.Txn; import org.w3c.dom.DOMException; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.w3c.dom.UserDataHandler; public abstract class NodeImpl implements Node, QNameable { protected final static Logger LOG = Logger.getLogger(NodeImpl.class); /** * @see org.w3c.dom.Node#cloneNode(boolean) */ public Node cloneNode(boolean deep) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "not implemented on class " + getClass().getName()); } /** * @see org.w3c.dom.Node#appendChild(org.w3c.dom.Node) */ public Node appendChild(Node child) throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "not implemented on class " + getClass().getName()); } public Node removeChild(Node oldChild) throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "not implemented on class " + getClass().getName()); } /** * @see org.w3c.dom.Node#replaceChild(org.w3c.dom.Node, org.w3c.dom.Node) */ public Node replaceChild(Node newChild, Node oldChild) throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "not implemented on class " + getClass().getName()); } public void updateChild(Node oldChild, Node newChild) throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "not implemented on class " + getClass().getName()); } /** * @see org.w3c.dom.Node#insertBefore(org.w3c.dom.Node, org.w3c.dom.Node) */ public Node insertBefore(Node newChild, Node refChild) throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "not implemented on class " + getClass().getName()); } public Node insertAfter(Node newChild, Node refChild) throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "not implemented on class " + getClass().getName()); } public void appendChildren(Txn transaction, NodeList nodes, int child) throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "not implemented on class " + getClass().getName()); } public Node removeChild(Txn transaction, Node oldChild) throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "not implemented on class " + getClass().getName()); } public Node replaceChild(Txn transaction, Node newChild, Node oldChild) throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "not implemented on class " + getClass().getName()); } /** * Update a child node. This method will only update the child node * but not its potential descendant nodes. * * @param oldChild * @param newChild * @throws DOMException */ public StoredNode updateChild(Txn transaction, Node oldChild, Node newChild) throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "not implemented on class " + getClass().getName()); } public void insertBefore(Txn transaction, NodeList nodes, Node refChild) throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "not implemented on class " + getClass().getName()); } public void insertAfter(Txn transaction, NodeList nodes, Node refChild) throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "insertAfter(Txn transaction, NodeList nodes, Node refChild) not implemented on class " + getClass().getName()); } public int getChildCount() { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "getChildCount() not implemented on class " + getClass().getName()); } public NodeList getChildNodes() { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "getChildNodes() not implemented on class " + getClass().getName()); } /** * @see org.w3c.dom.Node#getFirstChild() */ public Node getFirstChild() { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "getFirstChild() not implemented on class " + getClass().getName()); } /** * @see org.w3c.dom.Node#getLastChild() */ public Node getLastChild() { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "getLastChild() not implemented on class " + getClass().getName()); } /** * @see org.w3c.dom.Node#hasAttributes() */ public boolean hasAttributes() { return getAttributesCount() > 0; } public short getAttributesCount() { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "getAttributesCount() not implemented on class " + getClass().getName()); } /** * @see org.w3c.dom.Node#getAttributes() */ public NamedNodeMap getAttributes() { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "getAttributes() not implemented on class " + getClass().getName()); } /** * Set the attributes that belong to this node. * *@param attribNum The new attributes value */ public void setAttributes(short attribNum) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "setAttributes(short attribNum) not implemented on class " + getClass().getName()); } /** * @see org.w3c.dom.Node#getNodeValue() */ public String getNodeValue() throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "getNodeValue() not implemented on class " + getClass().getName()); } /** * Set the node value. * *@param value The new nodeValue value *@exception DOMException Description of the Exception */ public void setNodeValue(String value) throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "setNodeValue(String value) not implemented on class " + getClass().getName()); } /** * @see org.w3c.dom.Node#hasChildNodes() */ public boolean hasChildNodes() { return getChildCount() > 0; } /** * Set the number of children. * *@param count The new childCount value */ protected void setChildCount(int count) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "setChildCount(int count) not implemented on class " + getClass().getName()); } /** * Set the node name. * *@param name The new nodeName value */ public void setNodeName(QName name) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "setNodeName(QName name) not implemented on class " + getClass().getName()); } /** * @see org.w3c.dom.Node#isSupported(java.lang.String, java.lang.String) */ public boolean isSupported(String key, String value) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "isSupported(String key, String value) not implemented on class " + getClass().getName()); } /** * @see org.w3c.dom.Node#normalize() */ public void normalize() { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "normalize() not implemented on class " + getClass().getName()); } /** * Method supports. * @param feature * @param version * @return boolean */ public boolean supports(String feature, String version) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "supports(String feature, String version) not implemented on class " + getClass().getName()); } /** ? @see org.w3c.dom.Node#getBaseURI() */ public String getBaseURI() { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "getBaseURI() not implemented on class " + getClass().getName()); } /** ? @see org.w3c.dom.Node#compareDocumentPosition(org.w3c.dom.Node) */ public short compareDocumentPosition(Node other) throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "compareDocumentPosition(Node other) not implemented on class " + getClass().getName()); } /** ? @see org.w3c.dom.Node#getTextContent() */ public String getTextContent() throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "getTextContent() not implemented on class " + getClass().getName()); } /** ? @see org.w3c.dom.Node#setTextContent(java.lang.String) */ public void setTextContent(String textContent) throws DOMException { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "setTextContent(String textContent) not implemented on class " + getClass().getName()); } /** ? @see org.w3c.dom.Node#isSameNode(org.w3c.dom.Node) */ public boolean isSameNode(Node other) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "isSameNode(Node other) not implemented on class " + getClass().getName()); } /** ? @see org.w3c.dom.Node#lookupPrefix(java.lang.String) */ public String lookupPrefix(String namespaceURI) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "lookupPrefix(String namespaceURI) not implemented on class " + getClass().getName()); } /** ? @see org.w3c.dom.Node#isDefaultNamespace(java.lang.String) */ public boolean isDefaultNamespace(String namespaceURI) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "isDefaultNamespace(String namespaceURI) not implemented on class " + getClass().getName()); } /** ? @see org.w3c.dom.Node#lookupNamespaceURI(java.lang.String) */ public String lookupNamespaceURI(String prefix) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "lookupNamespaceURI(String prefix) not implemented on class " + getClass().getName()); } /** ? @see org.w3c.dom.Node#isEqualNode(org.w3c.dom.Node) */ public boolean isEqualNode(Node arg) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "isEqualNode(Node arg) not implemented on class " + getClass().getName()); } /** ? @see org.w3c.dom.Node#getFeature(java.lang.String, java.lang.String) */ public Object getFeature(String feature, String version) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "getFeature(String feature, String version) not implemented on class " + getClass().getName()); } /** ? @see org.w3c.dom.Node#getUserData(java.lang.String) */ public Object getUserData(String key) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "getUserData(String key) not implemented on class " + getClass().getName()); } /** ? @see org.w3c.dom.Node#setUserData(java.lang.String, java.lang.Object, org.w3c.dom.UserDataHandler) */ public Object setUserData(String key, Object data, UserDataHandler handler) { throw new DOMException(DOMException.NOT_SUPPORTED_ERR, "setUserData(String key, Object data, UserDataHandler handler) not implemented on class " + getClass().getName()); } /** * @see org.w3c.dom.Node#getPrefix() */ public String getPrefix() { QName nodeName = getQName(); //if (nodeName != null) { final String prefix = nodeName.getPrefix(); return prefix == null ? "" : prefix; //} //return ""; } /** * Sets the prefix attribute of the NodeImpl object * *@param prefix The new prefix value *@exception DOMException Description of the Exception */ public void setPrefix(String prefix) throws DOMException { QName nodeName = getQName(); if (nodeName != null) nodeName.setPrefix(prefix); } /** * @see org.w3c.dom.Node#getNamespaceURI() */ //TODO : remove default value public String getNamespaceURI() { QName nodeName = getQName(); //if (nodeName != null) return nodeName.getNamespaceURI(); //return ""; } /** * @see org.w3c.dom.Node#getLocalName() */ //TODO : remove default value public String getLocalName() { QName nodeName = getQName(); //if (nodeName != null) return nodeName.getLocalName(); //return ""; } /** * @see org.w3c.dom.Node#getNodeName() */ //TODO : remove default value public String getNodeName() { QName nodeName = getQName(); //if(nodeName != null) return nodeName.getStringValue(); //return ""; } }