<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xml.xpath2.processor.internal.ast</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xml.xpath2.processor.internal.ast</strong></font><br>
               Class ReverseStep</h2><br><hr><pre>public class <strong>ReverseStep</strong>
extends org.eclipse.wst.xml.xpath2.processor.internal.ast.Step</pre>Class for Reverse stepping support for Step operations.<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>public static  int</code></td><td width="80%" align="left"><code><a href="#field_ANCESTOR">ANCESTOR</a></code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Set internal value for ANCESTOR.</td></tr><tr valign="top"><td width="20%" align="right"><code>public static  int</code></td><td width="80%" align="left"><code><a href="#field_ANCESTOR_OR_SELF">ANCESTOR_OR_SELF</a></code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Set internal value for ANCESTOR_OR_SELF.</td></tr><tr valign="top"><td width="20%" align="right"><code>public static  int</code></td><td width="80%" align="left"><code><a href="#field_DOTDOT">DOTDOT</a></code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Set internal value for DOTDOT.</td></tr><tr valign="top"><td width="20%" align="right"><code>public static  int</code></td><td width="80%" align="left"><code><a href="#field_PARENT">PARENT</a></code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Set internal value for PARENT.</td></tr><tr valign="top"><td width="20%" align="right"><code>public static  int</code></td><td width="80%" align="left"><code><a href="#field_PRECEDING">PRECEDING</a></code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Set internal value for PRECEDING.</td></tr><tr valign="top"><td width="20%" align="right"><code>public static  int</code></td><td width="80%" align="left"><code><a href="#field_PRECEDING_SIBLING">PRECEDING_SIBLING</a></code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Set internal value for PRECEDING_SIBLING.</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_ReverseStep">ReverseStep</a></strong>(int axis
         ,
      org.eclipse.wst.xml.xpath2.processor.internal.ast.NodeTest node_test)</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 java.lang.Object</code></td><td width="" align="left"><code><a href="#method_accept">accept</a>(org.eclipse.wst.xml.xpath2.processor.internal.ast.XPathVisitor v)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Support for Visitor interface.</td></tr><tr valign="top"><td width="20%" align="right"><code>public int</code></td><td width="" align="left"><code><a href="#method_axis">axis</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Support for Axis interface.</td></tr><tr valign="top"><td width="20%" align="right"><code>public org.eclipse.wst.xml.xpath2.processor.internal.ReverseAxis</code></td><td width="" align="left"><code><a href="#method_iterator">iterator</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Support for Iterator interface.</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_ANCESTOR">ANCESTOR</a></h2><p><code>public static  int <strong>ANCESTOR</strong></code></p><table><tr><td>Set internal value for ANCESTOR.</td></tr></table><hr><h2><a name="field_ANCESTOR_OR_SELF">ANCESTOR_OR_SELF</a></h2><p><code>public static  int <strong>ANCESTOR_OR_SELF</strong></code></p><table><tr><td>Set internal value for ANCESTOR_OR_SELF.</td></tr></table><hr><h2><a name="field_DOTDOT">DOTDOT</a></h2><p><code>public static  int <strong>DOTDOT</strong></code></p><table><tr><td>Set internal value for DOTDOT.</td></tr></table><hr><h2><a name="field_PARENT">PARENT</a></h2><p><code>public static  int <strong>PARENT</strong></code></p><table><tr><td>Set internal value for PARENT.</td></tr></table><hr><h2><a name="field_PRECEDING">PRECEDING</a></h2><p><code>public static  int <strong>PRECEDING</strong></code></p><table><tr><td>Set internal value for PRECEDING.</td></tr></table><hr><h2><a name="field_PRECEDING_SIBLING">PRECEDING_SIBLING</a></h2><p><code>public static  int <strong>PRECEDING_SIBLING</strong></code></p><table><tr><td>Set internal value for PRECEDING_SIBLING.</td></tr></table><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_ReverseStep">ReverseStep</a></h2><p><code>public <strong>ReverseStep</strong>(int axis
         ,
      org.eclipse.wst.xml.xpath2.processor.internal.ast.NodeTest node_test)</code></p><p>Constructor for ReverseStep.</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_accept">accept</a></h2><p><code>public java.lang.Object <strong>accept</strong>(org.eclipse.wst.xml.xpath2.processor.internal.ast.XPathVisitor v)</code></p><p>Support for Visitor interface.</p><h3>Parameters</h3><p><code>v</code></p><h3>Returns</h3><p><code>java.lang.Object</code> - Result of Visitor operation.</p><hr><h2><a name="method_axis">axis</a></h2><p><code>public int <strong>axis</strong>()</code></p><p>Support for Axis interface.</p><h3>Returns</h3><p><code>int</code> - Result of Axis operation.</p><hr><h2><a name="method_iterator">iterator</a></h2><p><code>public org.eclipse.wst.xml.xpath2.processor.internal.ReverseAxis <strong>iterator</strong>()</code></p><p>Support for Iterator interface.</p><h3>Returns</h3><p><code>org.eclipse.wst.xml.xpath2.processor.internal.ReverseAxis</code> - Result of Iterator operation.</p><hr></body></html>