<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xml.xpath.ui.views</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xml.xpath.ui.views</strong></font><br>
               Class DOMTreeContentProvider</h2><br><hr><pre>public class <strong>DOMTreeContentProvider</strong>
extends java.lang.Object</pre><hr><table width="100%" border="1"><tr cols="2" bgcolor="#CCCCFF"><td colspan="2" width="100%"><h2>Field Summary</h2></td></tr><tr valign="top"><td width="20%" align="right"><code>package-private org.w3c.dom.Node</code></td><td width="80%" align="left"><code><a href="#field_node">node</a></code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>package-private static  java.lang.Object[]</code></td><td width="80%" align="left"><code><a href="#field_NOTHING">NOTHING</a></code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr></table><br><table width="100%" border="1"><tr bgcolor="#CCCCFF"><td width="100%"><h2>Constructor Summary</h2></td></tr><tr><td><code><strong><a href="#con_DOMTreeContentProvider">DOMTreeContentProvider</a></strong>()</code></td></tr></table><br><table width="100%" border="1"><tr cols="2" bgcolor="#CCCCFF"><td colspan="2" width="100%"><h2>Method Summary</h2></td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_dispose">dispose</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public java.lang.Object[]</code></td><td width="" align="left"><code><a href="#method_getChildren">getChildren</a>(java.lang.Object parentElement)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public java.lang.Object[]</code></td><td width="" align="left"><code><a href="#method_getElements">getElements</a>(java.lang.Object inputElement)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public java.lang.Object</code></td><td width="" align="left"><code><a href="#method_getParent">getParent</a>(java.lang.Object element)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_hasChildren">hasChildren</a>(java.lang.Object element)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_inputChanged">inputChanged</a>(Viewer viewer
         ,
      java.lang.Object oldInput
         ,
      java.lang.Object newInput)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr></table><hr><table cols="2" width="100%" border="1"><tr colspan="2" width="100%" bgcolor="#CCCCFF" align="left"><td><h2>
                  Field Detail
               </h2></td></tr></table><h2><a name="field_node">node</a></h2><p><code>package-private org.w3c.dom.Node <strong>node</strong></code></p><hr><h2><a name="field_NOTHING">NOTHING</a></h2><p><code>package-private static  java.lang.Object[] <strong>NOTHING</strong></code></p><hr><table cols="2" width="100%" border="1"><tr colspan="2" width="100%" bgcolor="#CCCCFF" align="left"><td><h2>
                  Constructor Detail
               </h2></td></tr></table><h2><a name="con_DOMTreeContentProvider">DOMTreeContentProvider</a></h2><p><code>public <strong>DOMTreeContentProvider</strong>()</code></p><p></p><hr><table cols="2" width="100%" border="1"><tr colspan="2" width="100%" bgcolor="#CCCCFF" align="left"><td><h2>
                  Methods Detail
               </h2></td></tr></table><h2><a name="method_dispose">dispose</a></h2><p><code>public void <strong>dispose</strong>()</code></p><p></p><hr><h2><a name="method_getChildren">getChildren</a></h2><p><code>public java.lang.Object[] <strong>getChildren</strong>(java.lang.Object parentElement)</code></p><p></p><h3>Parameters</h3><p><code>parentElement</code></p><h3>Returns</h3><p><code>java.lang.Object[]</code></p><hr><h2><a name="method_getElements">getElements</a></h2><p><code>public java.lang.Object[] <strong>getElements</strong>(java.lang.Object inputElement)</code></p><p></p><h3>Parameters</h3><p><code>inputElement</code></p><h3>Returns</h3><p><code>java.lang.Object[]</code></p><hr><h2><a name="method_getParent">getParent</a></h2><p><code>public java.lang.Object <strong>getParent</strong>(java.lang.Object element)</code></p><p></p><h3>Parameters</h3><p><code>element</code></p><h3>Returns</h3><p><code>java.lang.Object</code></p><hr><h2><a name="method_hasChildren">hasChildren</a></h2><p><code>public boolean <strong>hasChildren</strong>(java.lang.Object element)</code></p><p></p><h3>Parameters</h3><p><code>element</code></p><h3>Returns</h3><p><code>boolean</code></p><hr><h2><a name="method_inputChanged">inputChanged</a></h2><p><code>public void <strong>inputChanged</strong>(Viewer viewer
         ,
      java.lang.Object oldInput
         ,
      java.lang.Object newInput)</code></p><p></p><h3>Parameters</h3><p><code>viewer</code></p><p><code>oldInput</code></p><p><code>newInput</code></p><hr></body></html>