Adapter
org.eclipse.core.runtime.IAdaptable
Adapter ermöglichen es eigentlich inkompatible Klassen zueinander zu konvertieren. Im Beispiel soll eine HashMap zu einer List konvertiert werden:
public class AdaptableHashMap extends HashMap implements IAdaptable { public Object getAdapter(Class clazz) { if (clazz == java.util.List.class) { List list = new ArrayList(this.size()); list.addAll(this.values()); return list; } return null; } }
Die Verwendung sieht dann so aus:
IAdaptable adaptable = new AdaptableHashMap(); List list = (List)adaptable.getAdapter(java.util.List.class); if (list != null) ...