<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xsl.core.internal.parser.regions</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xsl.core.internal.parser.regions</strong></font><br>
               Class XPathSeparatorRegion</h2><br><hr><pre>public class <strong>XPathSeparatorRegion</strong>
extends java.lang.Object</pre><hr><table width="100%" border="1"><tr bgcolor="#CCCCFF"><td width="100%"><h2>Constructor Summary</h2></td></tr><tr><td><code><strong><a href="#con_XPathSeparatorRegion">XPathSeparatorRegion</a></strong>()</code></td></tr><tr><td><code><strong><a href="#con_XPathSeparatorRegion">XPathSeparatorRegion</a></strong>(int start
         ,
      int textLength
         ,
      int length)</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_adjustLength">adjustLength</a>(int i)</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_adjustStart">adjustStart</a>(int i)</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_adjustTextLength">adjustTextLength</a>(int i)</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_equatePositions">equatePositions</a>(ITextRegion region)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public int</code></td><td width="" align="left"><code><a href="#method_getEnd">getEnd</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public int</code></td><td width="" align="left"><code><a href="#method_getLength">getLength</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public int</code></td><td width="" align="left"><code><a href="#method_getStart">getStart</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public int</code></td><td width="" align="left"><code><a href="#method_getTextEnd">getTextEnd</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public int</code></td><td width="" align="left"><code><a href="#method_getTextLength">getTextLength</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public java.lang.String</code></td><td width="" align="left"><code><a href="#method_getType">getType</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public java.lang.String</code></td><td width="" align="left"><code><a href="#method_toString">toString</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public StructuredDocumentEvent</code></td><td width="" align="left"><code><a href="#method_updateRegion">updateRegion</a>(java.lang.Object requester
         ,
      IStructuredDocumentRegion parent
         ,
      java.lang.String changes
         ,
      int requestStart
         ,
      int lengthToReplace)</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>
                  Constructor Detail
               </h2></td></tr></table><h2><a name="con_XPathSeparatorRegion">XPathSeparatorRegion</a></h2><p><code>public <strong>XPathSeparatorRegion</strong>()</code></p><p></p><hr><h2><a name="con_XPathSeparatorRegion">XPathSeparatorRegion</a></h2><p><code>public <strong>XPathSeparatorRegion</strong>(int start
         ,
      int textLength
         ,
      int length)</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_adjustLength">adjustLength</a></h2><p><code>public void <strong>adjustLength</strong>(int i)</code></p><p></p><h3>Parameters</h3><p><code>i</code></p><hr><h2><a name="method_adjustStart">adjustStart</a></h2><p><code>public void <strong>adjustStart</strong>(int i)</code></p><p></p><h3>Parameters</h3><p><code>i</code></p><hr><h2><a name="method_adjustTextLength">adjustTextLength</a></h2><p><code>public void <strong>adjustTextLength</strong>(int i)</code></p><p></p><h3>Parameters</h3><p><code>i</code></p><hr><h2><a name="method_equatePositions">equatePositions</a></h2><p><code>public void <strong>equatePositions</strong>(ITextRegion region)</code></p><p></p><h3>Parameters</h3><p><code>region</code></p><hr><h2><a name="method_getEnd">getEnd</a></h2><p><code>public int <strong>getEnd</strong>()</code></p><p></p><h3>Returns</h3><p><code>int</code></p><hr><h2><a name="method_getLength">getLength</a></h2><p><code>public int <strong>getLength</strong>()</code></p><p></p><h3>Returns</h3><p><code>int</code></p><hr><h2><a name="method_getStart">getStart</a></h2><p><code>public int <strong>getStart</strong>()</code></p><p></p><h3>Returns</h3><p><code>int</code></p><hr><h2><a name="method_getTextEnd">getTextEnd</a></h2><p><code>public int <strong>getTextEnd</strong>()</code></p><p></p><h3>Returns</h3><p><code>int</code></p><hr><h2><a name="method_getTextLength">getTextLength</a></h2><p><code>public int <strong>getTextLength</strong>()</code></p><p></p><h3>Returns</h3><p><code>int</code></p><hr><h2><a name="method_getType">getType</a></h2><p><code>public java.lang.String <strong>getType</strong>()</code></p><p></p><h3>Returns</h3><p><code>java.lang.String</code></p><hr><h2><a name="method_toString">toString</a></h2><p><code>public java.lang.String <strong>toString</strong>()</code></p><p></p><h3>Returns</h3><p><code>java.lang.String</code></p><hr><h2><a name="method_updateRegion">updateRegion</a></h2><p><code>public StructuredDocumentEvent <strong>updateRegion</strong>(java.lang.Object requester
         ,
      IStructuredDocumentRegion parent
         ,
      java.lang.String changes
         ,
      int requestStart
         ,
      int lengthToReplace)</code></p><p></p><h3>Parameters</h3><p><code>requester</code></p><p><code>parent</code></p><p><code>changes</code></p><p><code>requestStart</code></p><p><code>lengthToReplace</code></p><h3>Returns</h3><p><code>StructuredDocumentEvent</code></p><hr></body></html>