KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > mountainminds > eclemma > internal > core > analysis > JavaElementCoverageAdapterFactory


1 /*******************************************************************************
2  * Copyright (c) 2006 Mountainminds GmbH & Co. KG
3  * This software is provided under the terms of the Eclipse Public License v1.0
4  * See http://www.eclipse.org/legal/epl-v10.html.
5  *
6  * $Id: JavaElementCoverageAdapterFactory.java 11 2006-08-28 20:06:31Z mho $
7  ******************************************************************************/

8 package com.mountainminds.eclemma.internal.core.analysis;
9
10 import org.eclipse.core.resources.IResource;
11 import org.eclipse.core.runtime.IAdapterFactory;
12 import org.eclipse.jdt.core.IJavaElement;
13
14 import com.mountainminds.eclemma.core.CoverageTools;
15 import com.mountainminds.eclemma.core.analysis.IJavaElementCoverage;
16 import com.mountainminds.eclemma.core.analysis.IJavaModelCoverage;
17 import com.mountainminds.eclemma.core.analysis.ILineCoverage;
18
19 /**
20  * This factory adapts IResource and IJavaElement objects to the corresponding
21  * coverage information of the current session. The factory is hooked into the
22  * workbench through the extension point
23  * <code>org.eclipse.core.runtime.adapters</code>.
24  *
25  * @author Marc R. Hoffmann
26  * @version $Revision: 11 $
27  */

28 public class JavaElementCoverageAdapterFactory implements IAdapterFactory {
29
30   public Object JavaDoc getAdapter(Object JavaDoc object, Class JavaDoc adapterType) {
31     // if the object is a IResource find the corresponding IJavaElement
32
if (object instanceof IResource) {
33       object = ((IResource) object).getAdapter(IJavaElement.class);
34       if (object == null) {
35         return null;
36       }
37     }
38     // then find the coverage information from the current session
39
IJavaModelCoverage mc = CoverageTools.getJavaModelCoverage();
40     if (mc == null) {
41       return null;
42     } else {
43       IJavaElementCoverage coverage = mc.getCoverageFor((IJavaElement) object);
44       if (coverage != null && ILineCoverage.class.equals(adapterType)) {
45         return coverage.getLineCoverage();
46       } else {
47         return coverage;
48       }
49     }
50   }
51
52   public Class JavaDoc[] getAdapterList() {
53     return new Class JavaDoc[] { IJavaElementCoverage.class, ILineCoverage.class };
54   }
55
56 }
57
Popular Tags