1 11 package org.eclipse.jdt.internal.debug.ui.monitors; 12 13 import org.eclipse.core.runtime.IAdapterFactory; 14 import org.eclipse.debug.internal.ui.viewers.provisional.IAsynchronousContentAdapter; 15 import org.eclipse.jdt.debug.core.IJavaThread; 16 17 21 public class JavaDebugElementAdapterFactory implements IAdapterFactory { 22 23 private static IAsynchronousContentAdapter fgThreadAdapter; 24 private static IAsynchronousContentAdapter fgContendedMonitorAdapter; 25 private static IAsynchronousContentAdapter fgOwnedMonitorAdapter; 26 private static IAsynchronousContentAdapter fgOwningThreadAdapter; 27 private static IAsynchronousContentAdapter fgWaitingThreadAdapter; 28 29 32 public Object getAdapter(Object adaptableObject, Class adapterType) { 33 if (adaptableObject instanceof IJavaThread) { 34 return getThreadAdapter(); 35 } 36 if (adaptableObject instanceof JavaContendedMonitor) { 37 return getContendedMonitorAdapter(); 38 } 39 if (adaptableObject instanceof JavaOwnedMonitor) { 40 return getOwnedMonitorAdapater(); 41 } 42 if (adaptableObject instanceof JavaOwningThread) { 43 return getOwningThreadAdapter(); 44 } 45 if (adaptableObject instanceof JavaWaitingThread) { 46 return getWaitingThreadAdapter(); 47 } 48 return null; 49 } 50 51 private Object getWaitingThreadAdapter() { 52 if (fgWaitingThreadAdapter == null) { 53 fgWaitingThreadAdapter = new AsyncJavaWaitingThreadAdapter(); 54 } 55 return fgWaitingThreadAdapter; 56 } 57 58 private Object getOwningThreadAdapter() { 59 if (fgOwningThreadAdapter == null) { 60 fgOwningThreadAdapter = new AsyncJavaOwningThreadAdapter(); 61 } 62 return fgOwningThreadAdapter; 63 } 64 65 private IAsynchronousContentAdapter getOwnedMonitorAdapater() { 66 if (fgOwnedMonitorAdapter == null) { 67 fgOwnedMonitorAdapter = new AsyncJavaOwnedMonitorAdapter(); 68 } 69 return fgOwnedMonitorAdapter; 70 } 71 72 private IAsynchronousContentAdapter getContendedMonitorAdapter() { 73 if (fgContendedMonitorAdapter == null) { 74 fgContendedMonitorAdapter = new AsyncJavaContendedMonitorAdapter(); 75 } 76 return fgContendedMonitorAdapter; 77 } 78 79 82 public Class [] getAdapterList() { 83 return new Class [] {IAsynchronousContentAdapter.class}; 84 } 85 86 private IAsynchronousContentAdapter getThreadAdapter() { 87 if (fgThreadAdapter == null) { 88 fgThreadAdapter = new AsyncJavaThreadAdapter(); 89 } 90 return fgThreadAdapter; 91 } 92 } 93 | Popular Tags |