![JAR search and dependency download from the Maven repository](/logo.png)
schema.services.exsd Maven / Gradle / Ivy
The newest version!
Define service factories so that services can be contributed declaratively and will be available through <code>IServiceLocator#getService(Class)</code>. The implementation of <code>AbstractServiceFactory</code> must be able to return a global service and multiple child services (if applicable).
<p>
Services must follow a general contract:
<ul>
<li>The top level service has no parent.</li>
<li>The child service may use the supplied parent, which can be cast to the service interface.</li>
<li>Any other services needed for initialization should be retrieved from the <code>IServiceLocator</code>.</li>
<li>If the service needs to clean up any state (like listeners) it should implement <code>IDisposable</code>.</li>
<li>Services should clearly specify when they perform cleanup for clients, such as removing listeners automatically on disposal.</li>
</ul>
</p>
Contribute services to the workbench.
Match a service interface to a factory that can supply a hierachical implementation of that service.
The factory that extends <code>AbstractServiceFactory</code> and can create the implementation for the serviceClass.
A service this factory can provide.
The interface that represents a service contract.
A Source Provider supplies source variables to the IEvaluationService. It can also notify the IEvaluationService when one or more of the variables change.
This class must provide variables and call the appropriate fireSourceChanged(*) method when any of the variables change.
A source variable from this provider. A source provider must declare all variables that it provides.
The name of a contributed source variable. It is a good practice to prepend the plugin id to the variable name to avoid collisions with other source providers.
For conflict resolution used by services like the IHandlerService. The source must select a priority for all contributed variables. <b>workbench</b> is the global default priority. See <code>ISources</code> for relative priority information.
3.4
<p>
Here is a basic definition:
<pre>
<extension
point="org.eclipse.ui.services">
<serviceFactory
factoryClass="org.eclipse.ui.tests.services.LevelServiceFactory">
<service
serviceClass="org.eclipse.ui.tests.services.ILevelService">
</service>
</serviceFactory>
</extension>
</pre></p>
<p>
The <code>LevelServiceFactory</code> can return an <code>ILevelService</code> when it is requested from the <code>IServiceLocator</code>:
<pre>
ILevelService s = (ILevelService) getSite().getService(ILevelService.class);
System.out.println(s.getLevel());
</pre>
</p>
<p>
In this test example, the factory would instantiate three <code>ILevelService</code> implementations during the first call to <code>getSite().getService(*)</code>. The global one in the workbench, one for the workbench window, and one for the site.
</p>
<p>
Please see <code>org.eclipse.ui.services.AbstractServiceFactory</code>, <code>org.eclipse.ui.services.IDisposable</code>, and <code>org.eclipse.ui.services.IServiceWithSources</code> for more information.
</p>
Copyright (c) 2007 IBM Corporation and others.<br>
All rights reserved. This program and the accompanying materials are made
available under the terms of the Eclipse Public License v1.0 which accompanies
this distribution, and is available at <a
href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>
© 2015 - 2025 Weber Informatics LLC | Privacy Policy