Skip to main content

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.

Jump to: navigation, search

Difference between revisions of "Eclipse4/RCP/EAS/Common Services"

< Eclipse4‎ | RCP‎ | EAS
(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();
    }
  }
}

Back to the top