Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "Eclipse4/RCP/EAS/Common Services"
(→Adapter Pattern) |
(→API Comparison) |
||
Line 28: | Line 28: | ||
public void update(Object object) { | public void update(Object object) { | ||
− | IModelProvider provider = (IModelProvider) Platform.getAdapterManager(object, IModelProvider.class); | + | IModelProvider provider = (IModelProvider) |
+ | Platform.getAdapterManager(object, IModelProvider.class); | ||
if (provider != null) { | if (provider != null) { | ||
model = provider.getModel(); | model = provider.getModel(); | ||
Line 46: | Line 47: | ||
public void update(Object object) { | public void update(Object object) { | ||
− | IModelProvider provider = adapter.adapt(object, IModelProvider.class); | + | IModelProvider provider = |
+ | adapter.adapt(object, IModelProvider.class); | ||
if (provider != null) { | if (provider != null) { | ||
model = provider.getModel(); | model = provider.getModel(); |
Revision as of 12:28, 12 April 2011
Besides OSGi services, the E4AP also exposes other services that can be consumed by clients.
Logging
The org.eclipse.e4.core.services.log.Logger class provides clients with a number of convenience methods for logging information. Some of its methods takes Object[] arrays and will perform binding internally to format the message appropriately.
Adapter Pattern
The org.eclipse.e4.core.services.adapter.Adapter interface provides a way for clients to adapt an object to another type. This is akin to the org.eclipse.core.runtime.IAdapterFactory and org.eclipse.core.runtime.IAdaptable interfaces from Eclipse 3.x.
API Comparison
Adapt an object |
|
Eclipse 3.x | Eclipse 4.x |
public class Consumer { private Model model; public void update(Object object) { IModelProvider provider = (IModelProvider) Platform.getAdapterManager(object, IModelProvider.class); if (provider != null) { model = provider.getModel(); } } } |
public class Consumer { @Inject private Adapter adapter; private Model model; public void update(Object object) { IModelProvider provider = adapter.adapt(object, IModelProvider.class); if (provider != null) { model = provider.getModel(); } } } |