EMMA Coverage Report (generated Thu Nov 26 15:54:18 CST 2009)
[all classes][org.eclipse.pde.api.tools.internal.builder]

COVERAGE SUMMARY FOR SOURCE FILE [IllegalMethodReferenceDetector.java]

nameclass, %method, %block, %line, %
IllegalMethodReferenceDetector.java100% (1/1)86%  (6/7)70%  (69/99)75%  (18/24)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class IllegalMethodReferenceDetector100% (1/1)86%  (6/7)70%  (69/99)75%  (18/24)
getQualifiedMessageArgs (IReference): String [] 0%   (0/1)0%   (0/25)0%   (0/5)
getSourceRange (IType, IDocument, IReference): Position 100% (1/1)77%  (17/22)80%  (4/5)
IllegalMethodReferenceDetector (): void 100% (1/1)100% (3/3)100% (1/1)
getMessageArgs (IReference): String [] 100% (1/1)100% (43/43)100% (9/9)
getProblemKind (): int 100% (1/1)100% (2/2)100% (1/1)
getReferenceKinds (): int 100% (1/1)100% (2/2)100% (2/2)
getSeverityKey (): String 100% (1/1)100% (2/2)100% (1/1)

1/*******************************************************************************
2 * Copyright (c) 2008, 2009 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 *******************************************************************************/
11package org.eclipse.pde.api.tools.internal.builder;
12 
13import org.eclipse.core.runtime.CoreException;
14import org.eclipse.jdt.core.IType;
15import org.eclipse.jface.text.BadLocationException;
16import org.eclipse.jface.text.IDocument;
17import org.eclipse.jface.text.Position;
18import org.eclipse.pde.api.tools.internal.provisional.builder.IReference;
19import org.eclipse.pde.api.tools.internal.provisional.model.IApiMethod;
20import org.eclipse.pde.api.tools.internal.provisional.problems.IApiProblem;
21import org.eclipse.pde.api.tools.internal.provisional.problems.IApiProblemTypes;
22import org.eclipse.pde.api.tools.internal.util.Signatures;
23 
24/**
25 * Detects when a 'no reference' method is called.
26 * 
27 * @since 1.1
28 */
29public class IllegalMethodReferenceDetector extends AbstractIllegalMethodReference {
30 
31        /* (non-Javadoc)
32         * @see org.eclipse.pde.api.tools.internal.provisional.search.IApiProblemDetector#getReferenceKinds()
33         */
34        public int getReferenceKinds() {
35                return
36                        IReference.REF_INTERFACEMETHOD |
37                        IReference.REF_SPECIALMETHOD |
38                        IReference.REF_STATICMETHOD |
39                        IReference.REF_VIRTUALMETHOD |
40                        IReference.REF_CONSTRUCTORMETHOD;
41        }
42        
43        /* (non-Javadoc)
44         * @see org.eclipse.pde.api.tools.internal.search.AbstractProblemDetector#getProblemKind()
45         */
46        protected int getProblemKind() {
47                return IApiProblem.ILLEGAL_REFERENCE;
48        }
49        
50        /* (non-Javadoc)
51         * @see org.eclipse.pde.api.tools.internal.search.AbstractProblemDetector#getSeverityKey()
52         */
53        protected String getSeverityKey() {
54                return IApiProblemTypes.ILLEGAL_REFERENCE;
55        }
56        
57        /* (non-Javadoc)
58         * @see org.eclipse.pde.api.tools.internal.search.AbstractProblemDetector#getMessageArgs(org.eclipse.pde.api.tools.internal.provisional.model.IReference)
59         */
60        protected String[] getMessageArgs(IReference reference) throws CoreException {
61                IApiMethod method = (IApiMethod) reference.getResolvedReference();
62                if (method.isConstructor()) {
63                        return new String[] {
64                                Signatures.getMethodSignature(method), 
65                                getSimpleTypeName(reference.getMember())};
66                }
67                return new String[] {
68                        getSimpleTypeName(method), 
69                        getSimpleTypeName(reference.getMember()), 
70                        Signatures.getMethodSignature(method)};
71        }
72 
73        /* (non-Javadoc)
74         * @see org.eclipse.pde.api.tools.internal.search.AbstractProblemDetector#getSourceRange(org.eclipse.jdt.core.IType, org.eclipse.jface.text.IDocument, org.eclipse.pde.api.tools.internal.provisional.model.IReference)
75         */
76        protected Position getSourceRange(IType type, IDocument document, IReference reference) throws CoreException, BadLocationException {
77                IApiMethod method = (IApiMethod) reference.getResolvedReference();
78                Position pos = getMethodNameRange(method.isConstructor(), Signatures.getMethodName(method), document, reference);
79                if(pos == null) {
80                        return defaultSourcePosition(type, reference);
81                }
82                return pos;
83        }
84 
85        /* (non-Javadoc)
86         * @see org.eclipse.pde.api.tools.internal.search.AbstractProblemDetector#getQualifiedMessageArgs(org.eclipse.pde.api.tools.internal.provisional.model.IReference)
87         */
88        protected String[] getQualifiedMessageArgs(IReference reference) throws CoreException {
89                IApiMethod method = (IApiMethod) reference.getResolvedReference();
90                return new String[] {
91                                getQualifiedTypeName(method), 
92                                getQualifiedTypeName(reference.getMember()),
93                                Signatures.getMethodSignature(method)};
94        }
95}

[all classes][org.eclipse.pde.api.tools.internal.builder]
EMMA 2.0.5312 EclEmma Fix 1 (C) Vladimir Roubtsov