<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xsl.ui.internal.contentassist</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xsl.ui.internal.contentassist</strong></font><br>
               Class ExcludeResultPrefixesContentAssist</h2><br><hr><pre>public class <strong>ExcludeResultPrefixesContentAssist</strong>
extends org.eclipse.wst.xsl.ui.provisional.contentassist.AbstractXSLContentAssistRequest</pre>Provides content assistance for xsl elements that have the
 exclude-result-prefixes attribute.  This will provide a list 
 of all known result prefixes that aren't currently in the attribute
 list.  This list is a space separated list.   The XSL prefix is
 excluded.<p></p><p></p><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>protected java.lang.String[]</code></td><td width="80%" align="left"><code><a href="#field_tokens">tokens</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_ExcludeResultPrefixesContentAssist">ExcludeResultPrefixesContentAssist</a></strong>(org.w3c.dom.Node node
         ,
      IStructuredDocumentRegion documentRegion
         ,
      ITextRegion completionRegion
         ,
      int begin
         ,
      int length
         ,
      java.lang.String filter
         ,
      ITextViewer textViewer)</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.util.ArrayList</code></td><td width="" align="left"><code><a href="#method_getCompletionProposals">getCompletionProposals</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               (non-Javadoc)</td></tr><tr valign="top"><td width="20%" align="right"><code>protected boolean</code></td><td width="" align="left"><code><a href="#method_includePrefix">includePrefix</a>(NamespaceInfo namespace)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>protected boolean</code></td><td width="" align="left"><code><a href="#method_prefixExists">prefixExists</a>(java.lang.String prefix)</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_tokens">tokens</a></h2><p><code>protected java.lang.String[] <strong>tokens</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_ExcludeResultPrefixesContentAssist">ExcludeResultPrefixesContentAssist</a></h2><p><code>public <strong>ExcludeResultPrefixesContentAssist</strong>(org.w3c.dom.Node node
         ,
      IStructuredDocumentRegion documentRegion
         ,
      ITextRegion completionRegion
         ,
      int begin
         ,
      int length
         ,
      java.lang.String filter
         ,
      ITextViewer textViewer)</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_getCompletionProposals">getCompletionProposals</a></h2><p><code>public java.util.ArrayList <strong>getCompletionProposals</strong>()</code></p><p>(non-Javadoc)</p><h3>Returns</h3><p><code>java.util.ArrayList</code></p><hr><h2><a name="method_includePrefix">includePrefix</a></h2><p><code>protected boolean <strong>includePrefix</strong>(NamespaceInfo namespace)</code></p><p></p><h3>Parameters</h3><p><code>namespace</code></p><h3>Returns</h3><p><code>boolean</code></p><hr><h2><a name="method_prefixExists">prefixExists</a></h2><p><code>protected boolean <strong>prefixExists</strong>(java.lang.String prefix)</code></p><p></p><h3>Parameters</h3><p><code>prefix</code></p><h3>Returns</h3><p><code>boolean</code></p><hr></body></html>