KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > jdt > internal > debug > ui > monitors > JavaDebugElementAdapterFactory


1 /*******************************************************************************
2  * Copyright (c) 2000, 2006 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  * IBM Corporation - initial API and implementation
10  *******************************************************************************/

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 /**
18  * Adapter factory that generates workbench adapters for java debug elements to
19  * provide thread monitor information in the debug veiw.
20  */

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     /* (non-Javadoc)
30      * @see org.eclipse.core.runtime.IAdapterFactory#getAdapter(java.lang.Object, java.lang.Class)
31      */

32     public Object JavaDoc getAdapter(Object JavaDoc adaptableObject, Class JavaDoc 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 JavaDoc getWaitingThreadAdapter() {
52         if (fgWaitingThreadAdapter == null) {
53             fgWaitingThreadAdapter = new AsyncJavaWaitingThreadAdapter();
54         }
55         return fgWaitingThreadAdapter;
56     }
57
58     private Object JavaDoc 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     /* (non-Javadoc)
80      * @see org.eclipse.core.runtime.IAdapterFactory#getAdapterList()
81      */

82     public Class JavaDoc[] getAdapterList() {
83         return new Class JavaDoc[] {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