Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Eclipse4/RCP/EAS/Obtaining Services"
(→Service retrieval through the context) |
|||
Line 40: | Line 40: | ||
Services can also be retrieved from the <tt>IEclipseContext</tt> using its <tt>get(Class<?>)</tt> and <tt>get(String)</tt> methods. | Services can also be retrieved from the <tt>IEclipseContext</tt> using its <tt>get(Class<?>)</tt> and <tt>get(String)</tt> methods. | ||
− | ===Class=== | + | ===java.lang.Class=== |
<source lang="java"> | <source lang="java"> | ||
EPartService partService = context.get(EPartService.class); | EPartService partService = context.get(EPartService.class); | ||
</source> | </source> | ||
− | ===String=== | + | ===java.lang.String=== |
<source lang="java"> | <source lang="java"> | ||
MPart part = (MPart) context.get(IServiceConstants.ACTIVE_PART); | MPart part = (MPart) context.get(IServiceConstants.ACTIVE_PART); | ||
</source> | </source> |
Revision as of 14:08, 14 April 2011
The services are set by the dependency injection framework when your objects gets instantiated (or explicitly injected).
Contents
Injection of objects
The services that should be injected can be marked by the @Inject annotation.
Fields
public class AccountsPart { @Inject private Logger logger; }
Methods
public class AccountsPart { private Logger logger; @Inject void setLogger(Logger logger) { this.logger = logger; } }
Injection for method invocation
Here is an example of a handler's method being invoked by the framework with its parameters being provided through dependency injection.
public class ShowPartHandler { @Execute void execute(EPartService partService) { String partId = /* retrieve the desired id */; partService.showPart(partId, EPartService.PartState.ACTIVATE); } }
Service retrieval through the context
Services can also be retrieved from the IEclipseContext using its get(Class<?>) and get(String) methods.
java.lang.Class
EPartService partService = context.get(EPartService.class);
java.lang.String
MPart part = (MPart) context.get(IServiceConstants.ACTIVE_PART);