<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xml.xpath.core</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xml.xpath.core</strong></font><br>
               Class XPathCorePlugin</h2><br><hr><pre>public class <strong>XPathCorePlugin</strong>
extends Plugin</pre>The activator class controls the plug-in life cycle<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  java.lang.String</code></td><td width="80%" align="left"><code><a href="#field_PLUGIN_ID">PLUGIN_ID</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_XPathCorePlugin">XPathCorePlugin</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 static org.eclipse.wst.xml.xpath.core.XPathCorePlugin</code></td><td width="" align="left"><code><a href="#method_getDefault">getDefault</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Returns the shared instance</td></tr><tr valign="top"><td width="20%" align="right"><code>public void</code></td><td width="" align="left"><code><a href="#method_start">start</a>(org.osgi.framework.BundleContext context)</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_stop">stop</a>(org.osgi.framework.BundleContext context)</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_PLUGIN_ID">PLUGIN_ID</a></h2><p><code>public static  java.lang.String <strong>PLUGIN_ID</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_XPathCorePlugin">XPathCorePlugin</a></h2><p><code>public <strong>XPathCorePlugin</strong>()</code></p><p>The constructor</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_getDefault">getDefault</a></h2><p><code>public org.eclipse.wst.xml.xpath.core.XPathCorePlugin <strong>getDefault</strong>()</code></p><p>Returns the shared instance</p><h3>Returns</h3><p><code>org.eclipse.wst.xml.xpath.core.XPathCorePlugin</code> - the shared instance</p><hr><h2><a name="method_start">start</a></h2><p><code>public void <strong>start</strong>(org.osgi.framework.BundleContext context)</code></p><p></p><h3>Parameters</h3><p><code>context</code></p><h3>Throws:</h3><p><code>java.lang.Exception</code></p><hr><h2><a name="method_stop">stop</a></h2><p><code>public void <strong>stop</strong>(org.osgi.framework.BundleContext context)</code></p><p></p><h3>Parameters</h3><p><code>context</code></p><h3>Throws:</h3><p><code>java.lang.Exception</code></p><hr></body></html>