/*
* `gnu.iou.dom'
* Copyright (C) 2006 John Pritchard.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
* 02111-1307 USA
*/
package gnu.iou.dom;
/**
*
* @author jdp
*/
public interface Node
extends org.w3c.dom.Node,
java.lang.Cloneable
{
public final static java.lang.String STR_NIL = null;
public final static java.lang.Class CLA_NIL = null;
public final static Name NAME_NIL = null;
public final static org.w3c.dom.Document DOC_NIL = null;
public final static java.lang.Class ClassDate = java.util.Date.class;
public void destroy();
/**
* <p> The document node has an I/O Source, but all nodes can
* reach it for convenience. </p>
* @return Document I/O Source maybe null
*/
public gnu.iou.dom.io.Source getSource();
public Mutex getMutex();
/**
* @return Is not cloned under parent when parent is cloned
*/
public boolean isShared();
/**
* @return Is cloned under parent when parent is cloned
*/
public boolean isSharedNot();
/**
* @param truf Cloned under parent when parent is cloned
*/
public void setShared(boolean truf);
/**
* <p> User space "out of band" boolean attributes. </p>
* @param attr Index identifier with value greater than negative one
* @return Value of indexed attribute, default FALSE for not found
*/
public boolean isOobAttribute(int attr);
/**
* <p> User space "out of band" boolean attributes. </p>
* @param attr Index identifier with value greater than negative one
* @return Inverse value of indexed attribute
*/
public boolean isOobAttributeNot(int attr);
/**
* <p> User space "out of band" boolean attributes. </p>
* @param attr Index identifier with value greater than negative one
* @param value Value of indexed attribute
*/
public void setOobAttribute(int attr, boolean value);
public java.lang.Long unique();
public long uniqueValue();
public java.lang.String uniqueString();
public java.lang.String getAttributeIdName();
public java.lang.String getAttributeId();
public java.lang.Integer getAttributeIdInt(CharacterData.User user);
public Name getNodeName2();
public void resetNodeName2(Name name);
public Document getOwnerDocument2();
public Node getParentNode2();
/**
* @param pp Set once latch, reset with null.
*/
public void setParentNode(org.w3c.dom.Node pp);
/**
* @param pp Set always
*/
public void resetParentNode(org.w3c.dom.Node pp);
/**
* @param attributes Set always
*/
public void resetAttributes(NamedNodeMap attributes);
/**
* @param children Set always
*/
public void resetChildNodes(NodeList children);
public NodeList getChildNodes2();
public int countChildNodes();
public void setOwnerDocument(org.w3c.dom.Document dd);
public void resetOwnerDocument(org.w3c.dom.Document dd);
public org.w3c.dom.Element getDocumentElement();
public Element getFirstChildElement();
public Element getLastChildElement();
public java.lang.String getChildText();
public void setChildText(java.lang.String data);
public void setChildData(java.lang.Object data, CharacterData.User user);
public java.lang.Object getChildData(int type, CharacterData.User user);
public Node getChildById(java.lang.String id);
public Node getChildById(java.lang.Integer id, CharacterData.User user);
public Node getChildByField(java.lang.String name, java.lang.String value);
public Node getChildByField(java.lang.String name, java.lang.Object value, CharacterData.User user);
public Node getChildByName(java.lang.String name);
public Node getChildByName(Name name);
public Node getChildByIndex(int idx);
public void setDataField(java.lang.String name, java.lang.Object data, CharacterData.User user);
public void pushDataField(java.lang.String name, java.lang.Object data, CharacterData.User user);
public void setDataField(java.lang.String name, java.lang.Object data, boolean push, CharacterData.User user);
public java.lang.String getDataField(java.lang.String name);
public java.lang.Object getDataField(java.lang.String name, CharacterData.User user);
public java.lang.Object getDataField(java.lang.String name, int type, CharacterData.User user);
public java.lang.Object popDataField(java.lang.String name, int type, CharacterData.User user);
public java.lang.Object getDataField(java.lang.String name, int type, boolean pop, CharacterData.User user);
public org.w3c.dom.Node cloneNode(Node nparent);
/** @see org.w3c.dom.Element
*/
public java.lang.String getTagName();
public NamedNodeMap getAttributes2();
/** @see org.w3c.dom.Element
*/
public java.lang.String getAttribute(java.lang.String name);
public java.lang.Integer getAttributeInt(java.lang.String name, CharacterData.User user);
/** @see org.w3c.dom.Element
*/
public java.lang.String getAttributeNS(java.lang.String ns, java.lang.String qn);
/** @see org.w3c.dom.Element
*/
public void setAttribute(java.lang.String name, java.lang.String value)
throws org.w3c.dom.DOMException;
/** @see org.w3c.dom.Element
*/
public void setAttributeNS(java.lang.String ns, java.lang.String qn, java.lang.String value)
throws org.w3c.dom.DOMException;
/** @see org.w3c.dom.Element
*/
public void removeAttribute(java.lang.String name)
throws org.w3c.dom.DOMException;
/** @see org.w3c.dom.Element
*/
public void removeAttributeNS(java.lang.String ns, java.lang.String qn)
throws org.w3c.dom.DOMException;
/** @see org.w3c.dom.Element
*/
public org.w3c.dom.Attr getAttributeNode(java.lang.String name);
public Attr getAttributeNode2(java.lang.String name);
public Attr getAttributeNode(Name name);
public Attr getCreateAttributeNode(java.lang.String name);
public Attr getCreateAttributeNode(Name name);
/** @see org.w3c.dom.Element
*/
public org.w3c.dom.Attr getAttributeNodeNS(java.lang.String ns, java.lang.String qn);
/** @see org.w3c.dom.Element
*/
public org.w3c.dom.Attr setAttributeNode(org.w3c.dom.Attr node)
throws org.w3c.dom.DOMException;
public org.w3c.dom.Attr setAttributeNodeNS(org.w3c.dom.Attr node)
throws org.w3c.dom.DOMException;
public org.w3c.dom.Attr removeAttributeNode(org.w3c.dom.Attr node)
throws org.w3c.dom.DOMException;
public org.w3c.dom.Node appendChild(org.w3c.dom.Node node)
throws org.w3c.dom.DOMException;
public org.w3c.dom.Node removeChild(org.w3c.dom.Node node)
throws org.w3c.dom.DOMException;
public org.w3c.dom.Node replaceChild(org.w3c.dom.Node newn,
org.w3c.dom.Node oldn)
throws org.w3c.dom.DOMException;
public org.w3c.dom.Node insertBefore(org.w3c.dom.Node newn,
org.w3c.dom.Node oldn)
throws org.w3c.dom.DOMException;
/**
* <p> Disused </p>
*/
public boolean isSupported(java.lang.String feature, java.lang.String version);
/**
* <p> Unimplemented </p>
*/
public void setPrefix(java.lang.String prefix)
throws org.w3c.dom.DOMException;
/** @see org.w3c.dom.Document
*/
public org.w3c.dom.Node importNode(org.w3c.dom.Node node, boolean deep)
throws org.w3c.dom.DOMException;
public org.w3c.dom.NodeList getElementsByTagName(java.lang.String name);
public org.w3c.dom.NodeList getElementsByTagNameNS(java.lang.String ns, java.lang.String qn);
public org.w3c.dom.Element getElementById(java.lang.String id);
/**
* @since DOM Level 3
* @since Java 1.5
*/
public String lookupPrefix(String ns);
/**
* @since DOM Level 3
* @since Java 1.5
*/
public boolean isDefaultNamespace(String ns);
/**
* @since DOM Level 3
* @since Java 1.5
*
*/
public String lookupNamespaceURI(String prefix);
/**
* @return Namespace is found among the ancestors (parents) of this node
*/
public boolean isDeclaredNamespace(String ns);
}