//Auto-generated by kalyptus. DO NOT EDIT.
package org.trinitydesktop.koala;

import org.trinitydesktop.qt.TQt;
import org.trinitydesktop.qt.QtSupport;
import java.util.ArrayList;

/**

 By far the vast majority of objects (apart from text) that authors
 encounter when traversing a document are <code>Element</code>
 nodes. Assume the following XML document: &lt;elementExample
 id=&quot;demo&quot;&gt; &lt;subelement1/&gt;
 &lt;subelement2&gt;&lt;subsubelement/&gt;&lt;/subelement2&gt;
 &lt;/elementExample&gt;
  When represented using DOM, the top node is an <code>Element</code>
 node for &quot;elementExample&quot;, which contains two
 child <code>Element</code> nodes, one for &quot;subelement1&quot;
 and one for &quot;subelement2&quot;. &quot;subelement1&quot;
 contains no child nodes.
  Elements may have attributes associated with them; since the
 <code>Element</code> interface inherits from <code>Node</code>
 , the generic <code>Node</code> interface method
 <code>getAttributes</code> may be used to retrieve the set of all
 attributes for an element. There are methods on the <code>Element</code>
 interface to retrieve either an <code>Attr</code> object
 by name or an attribute value by name. In XML, where an attribute
 value may contain entity references, an <code>Attr</code> object
 should be retrieved to examine the possibly fairly complex sub-tree
 representing the attribute value. On the other hand, in HTML, where
 all attributes have simple string values, methods to directly
 access an attribute value can safely be used as a convenience.
 		@short    By far the vast majority of objects (apart from text) that authors  encounter when traversing a document are <code>Element</code>  nodes.

*/
public class Element extends Node  {
	protected Element(Class dummy){super((Class) null);}
	public Element() {
		super((Class) null);
		newElement();
	}
	private native void newElement();
	public Element(Node other) {
		super((Class) null);
		newElement(other);
	}
	private native void newElement(Node other);
	public Element(Element other) {
		super((Class) null);
		newElement(other);
	}
	private native void newElement(Element other);
	/**
		 The name of the element. For example, in: &lt;elementExample
		 id=&quot;demo&quot;&gt; ... &lt;/elementExample&gt; ,
		 <code>tagName</code> has the value <code>&quot;elementExample&quot;</code>
		 . Note that this is case-preserving in XML, as are all
		 of the operations of the DOM. The HTML DOM returns the
		 <code>tagName</code> of an HTML element in the canonical uppercase
		 form, regardless of the case in the source HTML document.
			     		@short    The name of the element.
	*/
	public native String tagName();
	/**
		 Retrieves an attribute value by name.
			@param name The name of the attribute to retrieve.
			     		@return The <code>Attr</code> value as a string, or the empty
 string if that attribute does not have a specified or default
 value.

		@short    Retrieves an attribute value by name.
	*/
	public native String getAttribute(String name);
	/**
		 Adds a new attribute. If an attribute with that name is already
		 present in the element, its value is changed to be that of the
		 value parameter. This value is a simple string, it is not
		 parsed as it is being set. So any markup (such as syntax to be
		 recognized as an entity reference) is treated as literal text,
		 and needs to be appropriately escaped by the implementation
		 when it is written out. In order to assign an attribute value
		 that contains entity references, the user must create an
		 <code>Attr</code> node plus any <code>Text</code> and
		 <code>EntityReference</code> nodes, build the appropriate subtree,
		 and use <code>setAttributeNode</code> to assign it as the
		 value of an attribute.
			@param name The name of the attribute to create or alter.
			@param value Value to set in string form.
			  NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
			     		@short    Adds a new attribute.
	*/
	public native void setAttribute(String name, String value);
	/**
		 Removes an attribute by name. If the removed attribute has a
		 default value it is immediately replaced.
			@param name The name of the attribute to remove.
			     		@short    Removes an attribute by name.
	*/
	public native void removeAttribute(String name);
	/**
		 Retrieves an <code>Attr</code> node by name.
			@param name The name of the attribute to retrieve.
			     		@return The <code>Attr</code> node with the specified
 attribute name or <code>null</code> if there is no such
 attribute.

		@short    Retrieves an <code>Attr</code> node by name.
	*/
	public native Attr getAttributeNode(String name);
	/**
		 Adds a new attribute. If an attribute with that name is already
		 present in the element, it is replaced by the new one.
			@param newAttr The <code>Attr</code> node to add to the
		 attribute list.
			  NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
			  INUSE_ATTRIBUTE_ERR: Raised if <code>newAttr</code> is
		 already an attribute of another <code>Element</code> object.
		 The DOM user must explicitly clone <code>Attr</code> nodes to
		 re-use them in other elements.
			     		@return If the <code>newAttr</code> attribute replaces an
 existing attribute with the same name, the previously existing
 <code>Attr</code> node is returned, otherwise <code>null</code>
 is returned.

		@short    Adds a new attribute.
	*/
	public native Attr setAttributeNode(Attr newAttr);
	/**
		 Removes the specified attribute.
			@param oldAttr The <code>Attr</code> node to remove from the
		 attribute list. If the removed <code>Attr</code> has a
		 default value it is immediately replaced.
			  NOT_FOUND_ERR: Raised if <code>oldAttr</code> is not an
		 attribute of the element.
			     		@return The <code>Attr</code> node that was removed.

		@short    Removes the specified attribute.
	*/
	public native Attr removeAttributeNode(Attr oldAttr);
	/**
		 Returns a <code>ArrayList</code> of all descendant elements
		 with a given tag name, in the order in which they would be
		 encountered in a preorder traversal of the <code>Element</code>
		 tree.
			@param name The name of the tag to match on. The special value
		 "*" matches all tags.
			     		@return A list of matching <code>Element</code> nodes.

		@short    Returns a <code>NodeList</code> of all descendant elements  with a given tag name, in the order in which they would be  encountered in a preorder traversal of the <code>Element</code>  tree.
	*/
	public native ArrayList getElementsByTagName(String name);
	/**
		 Introduced in DOM Level 2
		 Returns an ArrayList of all the descendant Elements with a given local
		 name and namespace URI in the order in which they are encountered in a
		 preorder traversal of this Element tree.
			@param namespaceURI The namespace URI of the elements to match on. The
		 special value "*" matches all namespaces.
			@param localName The local name of the elements to match on. The special
		 value "*" matches all local names.
				@return A new NodeList object containing all the matched Elements.

		@short    Introduced in DOM Level 2  Returns a NodeList of all the descendant Elements with a given local  name and namespace URI in the order in which they are encountered in a  preorder traversal of this Element tree.
	*/
	public native ArrayList getElementsByTagNameNS(String namespaceURI, String localName);
	/**
		 Introduced in DOM Level 2.
			 No Exceptions.
			 Retrieves an attribute value by local name and namespace URI. HTML-only
		 DOM implementations do not need to implement this method.
			@param namespaceURI The namespace URI of the attribute to retrieve.
			@param localName The local name of the attribute to retrieve.
				@return The Attr value as a string, or the empty string if that
 attribute does not have a specified or default value.

		@short    Introduced in DOM Level 2.
	*/
	public native String getAttributeNS(String namespaceURI, String localName);
	/**
		 Introduced in DOM Level 2
			 Adds a new attribute. If an attribute with the same local name and
		 namespace URI is already present on the element, its prefix is changed
		 to be the prefix part of the qualifiedName, and its value is changed to
		 be the value parameter. This value is a simple string; it is not parsed
		 as it is being set. So any markup (such as syntax to be recognized as an
		 entity reference) is treated as literal text, and needs to be
		 appropriately escaped by the implementation when it is written out. In
		 order to assign an attribute value that contains entity references, the
		 user must create an Attr node plus any Text and EntityReference nodes,
		 build the appropriate subtree, and use setAttributeNodeNS or
		 setAttributeNode to assign it as the value of an attribute.
			 HTML-only DOM implementations do not need to implement this method.
			@param namespaceURI The namespace URI of the attribute to create or
		 alter.
			@param qualifiedName The qualified name of the attribute to create or
		 alter.
			@param value The value to set in string form.
			 NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
			 NAMESPACE_ERR: Raised if the qualifiedName is malformed, if the
		 qualifiedName has a prefix and the namespaceURI is null, if the
		 qualifiedName has a prefix that is "xml" and the namespaceURI is
		 different from "http://www.w3.org/XML/1998/namespace", or if the
		 qualifiedName is "xmlns" and the namespaceURI is different from
		 "http://www.w3.org/2000/xmlns/".
		     		@short    Introduced in DOM Level 2
	*/
	public native void setAttributeNS(String namespaceURI, String qualifiedName, String value);
	/**
		 Introduced in DOM Level 2
			 Removes an attribute by local name and namespace URI. If the removed
		 attribute has a default value it is immediately replaced. The replacing
		 attribute has the same namespace URI and local name, as well as the
		 original prefix.
			 HTML-only DOM implementations do not need to implement this method.
			@param namespaceURI The namespace URI of the attribute to remove.
			@param localName The local name of the attribute to remove.
				@short    Introduced in DOM Level 2
	*/
	public native void removeAttributeNS(String namespaceURI, String localName);
	/**
		 Introduced in DOM Level 2
			 Retrieves an Attr node by local name and namespace URI. HTML-only DOM
		 implementations do not need to implement this method.
			@param namespaceURI The namespace URI of the attribute to retrieve.
			@param localName The local name of the attribute to retrieve.
				@return The Attr node with the specified attribute local name and
 namespace URI or null if there is no such attribute.

		@short    Introduced in DOM Level 2
	*/
	public native Attr getAttributeNodeNS(String namespaceURI, String localName);
	/**
		 Introduced in DOM Level 2
			 Adds a new attribute. If an attribute with that local name and that
		 namespace URI is already present in the element, it is replaced by the
		 new one.
			 HTML-only DOM implementations do not need to implement this method.
			@param newAttr The Attr node to add to the attribute list.
			 NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
			 INUSE_ATTRIBUTE_ERR: Raised if newAttr is already an attribute of
		 another Element object. The DOM user must explicitly clone Attr nodes to
		 re-use them in other elements.
		     		@return If the newAttr attribute replaces an existing attribute with the
 same local name and namespace URI, the replaced Attr node is returned,
 otherwise null is returned.

		@short    Introduced in DOM Level 2
	*/
	public native Attr setAttributeNodeNS(Attr newAttr);
	/**
		 Returns true when an attribute with a given name is specified on this
		 element or has a default value, false otherwise.
		 Introduced in DOM Level 2.
			@param name The name of the attribute to look for.
				@return true if an attribute with the given name is specified on this
 element or has a default value, false otherwise.

		@short    Returns true when an attribute with a given name is specified on this  element or has a default value, false otherwise.
	*/
	public native boolean hasAttribute(String name);
	/**
		 Introduced in DOM Level 2
			 Returns true when an attribute with a given local name and namespace URI
		 is specified on this element or has a default value, false otherwise.
		 HTML-only DOM implementations do not need to implement this method.
			@param namespaceURI The namespace URI of the attribute to look for.
			@param localName The local name of the attribute to look for.
				@return true if an attribute with the given local name and namespace URI
 is specified or has a default value on this element, false otherwise.

		@short    Introduced in DOM Level 2
	*/
	public native boolean hasAttributeNS(String namespaceURI, String localName);
	/**
		 Introduced in DOM Level 2
		 This method is from the CSSStyleDeclaration interface
			 The style attribute
		     		@short    Introduced in DOM Level 2  This method is from the CSSStyleDeclaration interface
	*/
	public native CSSStyleDeclaration style();
	/**
		 not part of the official DOM
			 This method will always reflect the editability setting of this
		 element as specified by a direct or indirect (that means, inherited)
		 assignment to contentEditable or the respective CSS rule, even if
		 design mode is active.
				@return whether this element is editable.

		@short    not part of the official DOM
		@see #setContentEditable
	*/
	public native boolean contentEditable();
	/**
		 not part of the official DOM
			 This element can be made editable by setting its contentEditable
		 property to <code>true.</code> The setting will be inherited to its children
		 as well.
			 Setting or clearing contentEditable when design mode is active will
		 take no effect. However, its status will still be propagated to all
		 child elements.
			@param enabled <code>true</code> to make this element editable, <code>false</code>
		 otherwise.
				@short    not part of the official DOM
		@see Document#designMode
	*/
	public native void setContentEditable(boolean enabled);
	/**
			 not part of the DOM
		     		@short
	*/
	public native boolean isHTMLElement();
	/**
		 TDEHTML extension to DOM
		 This method returns the associated form element.
		 returns null if this element is not a form-like element
		 or if this elment is not in the scope of a form element.
		     		@short    TDEHTML extension to DOM  This method returns the associated form element.
	*/
	public native Element form();
	public static native boolean tdehtmlValidAttrName(String name);
	public static native boolean tdehtmlValidPrefix(String name);
	public static native boolean tdehtmlValidQualifiedName(String name);
	public static native boolean tdehtmlMalformedQualifiedName(String name);
	public static native boolean tdehtmlMalformedPrefix(String name);
	// DOM::Element* Element(DOM::ElementImpl* arg1); >>>> NOT CONVERTED
}
