1 11 package org.eclipse.ui.internal.components.util; 12 13 import java.util.Collection ; 14 import java.util.Collections ; 15 16 import org.eclipse.core.runtime.IAdaptable; 17 import org.eclipse.ui.internal.components.framework.ComponentHandle; 18 import org.eclipse.ui.internal.components.framework.IServiceProvider; 19 import org.eclipse.ui.internal.components.framework.NonDisposingHandle; 20 import org.eclipse.ui.internal.components.framework.ServiceFactory; 21 22 34 public class InstanceToServiceFactoryAdapter extends ServiceFactory { 35 private Object originalObject; 36 private ComponentHandle handleForOriginalObject; 37 38 44 public InstanceToServiceFactoryAdapter(Object originalObject) { 45 this.handleForOriginalObject = new NonDisposingHandle(originalObject); 46 this.originalObject = originalObject; 47 } 48 49 52 public ComponentHandle createHandle(Object componentKey, 53 IServiceProvider container) { 54 55 if (componentKey instanceof Class ) { 56 Class c = (Class ) componentKey; 57 58 if (c.isInstance(originalObject)) { 59 return handleForOriginalObject; 60 } 61 62 if (originalObject instanceof IAdaptable) { 63 Object adapter = ((IAdaptable)originalObject).getAdapter(c); 64 65 if (adapter != null) { 66 return new NonDisposingHandle(adapter); 67 } 68 } 69 } 70 71 return null; 72 } 73 74 77 public boolean hasService(Object componentKey) { 78 if (componentKey instanceof Class ) { 79 Class c = (Class ) componentKey; 80 81 if (c.isInstance(originalObject)) { 82 return true; 83 } 84 85 if (originalObject instanceof IAdaptable) { 86 Object adapter = ((IAdaptable)originalObject).getAdapter(c); 87 88 if (adapter != null) { 89 return true; 90 } 91 } 92 } 93 94 return false; 95 } 96 97 100 public Collection getMissingDependencies() { 101 return Collections.EMPTY_SET; 102 } 103 } 104 | Popular Tags |