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

COVERAGE SUMMARY FOR SOURCE FILE [SignatureDecoder.java]

nameclass, %method, %block, %line, %
SignatureDecoder.java100% (1/1)82%  (14/17)91%  (82/90)88%  (35/40)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class SignatureDecoder100% (1/1)82%  (14/17)91%  (82/90)88%  (35/40)
visitExceptionType (): SignatureVisitor 0%   (0/1)0%   (0/2)0%   (0/1)
visitInnerClassType (String): void 0%   (0/1)0%   (0/1)0%   (0/1)
visitTypeArgument (): void 0%   (0/1)0%   (0/1)0%   (0/1)
visitTypeArgument (char): SignatureVisitor 100% (1/1)73%  (11/15)71%  (5/7)
SignatureDecoder (SignatureDescriptor): void 100% (1/1)100% (9/9)100% (4/4)
visitArrayType (): SignatureVisitor 100% (1/1)100% (2/2)100% (1/1)
visitBaseType (char): void 100% (1/1)100% (1/1)100% (1/1)
visitClassBound (): SignatureVisitor 100% (1/1)100% (5/5)100% (2/2)
visitClassType (String): void 100% (1/1)100% (31/31)100% (11/11)
visitEnd (): void 100% (1/1)100% (1/1)100% (1/1)
visitFormalTypeParameter (String): void 100% (1/1)100% (5/5)100% (2/2)
visitInterface (): SignatureVisitor 100% (1/1)100% (2/2)100% (1/1)
visitInterfaceBound (): SignatureVisitor 100% (1/1)100% (5/5)100% (2/2)
visitParameterType (): SignatureVisitor 100% (1/1)100% (2/2)100% (1/1)
visitReturnType (): SignatureVisitor 100% (1/1)100% (2/2)100% (1/1)
visitSuperclass (): SignatureVisitor 100% (1/1)100% (5/5)100% (2/2)
visitTypeVariable (String): void 100% (1/1)100% (1/1)100% (1/1)

1/*******************************************************************************
2 * Copyright (c) 2007, 2008 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.comparator;
12 
13import org.objectweb.asm.signature.SignatureVisitor;
14 
15/**
16 * This class is used to decode a generic signature for class or method
17 */
18final class SignatureDecoder implements SignatureVisitor {
19        static final int CLASS_BOUND = 1;
20        static final int DEFAULT = 0;
21        static final int INTERFACE_BOUND = 2;
22        static final int SUPER_CLASS = 3;
23        static final int NORMAL_TYPE_ARGUMENT = 4;
24        static final int EXTENDS_TYPE_ARGUMENT = 5;
25        static final int SUPER_TYPE_ARGUMENT = 6;
26 
27        int mode = DEFAULT;
28        SignatureDescriptor signatureDescriptor;
29 
30        public SignatureDecoder(SignatureDescriptor signatureDescriptor) {
31                this.signatureDescriptor = signatureDescriptor;
32        }
33        public SignatureVisitor visitArrayType() {
34                return this;
35        }
36 
37        public void visitBaseType(char descriptor) {
38                // nothing to do
39        }
40 
41        public SignatureVisitor visitClassBound() {
42                this.mode = CLASS_BOUND;
43                return this;
44        }
45 
46        public void visitClassType(String name) {
47                String classTypeName = name.replace('/', '.');
48                switch(this.mode) {
49                        case CLASS_BOUND :
50                                this.signatureDescriptor.setClassBound(classTypeName);
51                                break;
52                        case INTERFACE_BOUND :
53                                this.signatureDescriptor.addInterfaceBound(classTypeName);
54                                break;
55                        case SUPER_CLASS :
56                                this.signatureDescriptor.setSuperclass(classTypeName);
57                                break;
58                        case EXTENDS_TYPE_ARGUMENT :
59                        case SUPER_TYPE_ARGUMENT :
60                        case NORMAL_TYPE_ARGUMENT :
61                                this.signatureDescriptor.addTypeArgument(classTypeName);
62                                break;
63                }
64                this.mode = DEFAULT;
65        }
66 
67        public void visitEnd() {
68                // nothing to do
69        }
70 
71        public SignatureVisitor visitExceptionType() {
72                // nothing to do
73                return this;
74        }
75 
76        public void visitFormalTypeParameter(String name) {
77                this.signatureDescriptor.addTypeParameterDescriptor(name);
78        }
79 
80        public void visitInnerClassType(String name) {
81        }
82 
83        public SignatureVisitor visitInterface() {
84                return this;
85        }
86 
87        public SignatureVisitor visitInterfaceBound() {
88                this.mode = INTERFACE_BOUND;
89                return this;
90        }
91 
92        public SignatureVisitor visitParameterType() {
93                return this;
94        }
95 
96        public SignatureVisitor visitReturnType() {
97                return this;
98        }
99 
100        public SignatureVisitor visitSuperclass() {
101                this.mode = SUPER_CLASS;
102                return this;
103        }
104 
105        public void visitTypeArgument() {
106        }
107 
108        public SignatureVisitor visitTypeArgument(char wildcard) {
109                switch(wildcard) {
110                        case SignatureVisitor.EXTENDS :
111                                this.mode= EXTENDS_TYPE_ARGUMENT;
112                                break;
113                        case SignatureVisitor.SUPER :
114                                this.mode= SUPER_TYPE_ARGUMENT;
115                                break;
116                        case SignatureVisitor.INSTANCEOF :
117                                this.mode= NORMAL_TYPE_ARGUMENT;
118                }
119                return this;
120        }
121 
122        public void visitTypeVariable(String name) {
123        }
124}

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