EMMA Coverage Report (generated Mon Nov 29 14:43:38 PST 2010)
[all classes][com.jeantessier.classreader.impl]

COVERAGE SUMMARY FOR SOURCE FILE [Field_info.java]

nameclass, %method, %block, %line, %
Field_info.java100% (1/1)100% (11/11)89%  (158/178)92%  (32.2/35)

COVERAGE BREAKDOWN BY CLASS AND METHOD

nameclass, %method, %block, %line, %
     
class Field_info100% (1/1)100% (11/11)89%  (158/178)92%  (32.2/35)
getDeclaration (): String 100% (1/1)76%  (52/68)79%  (8.7/11)
isTransient (): boolean 100% (1/1)78%  (7/9)77%  (0.8/1)
isVolatile (): boolean 100% (1/1)78%  (7/9)77%  (0.8/1)
Field_info (Classfile, DataInput): void 100% (1/1)100% (5/5)100% (2/2)
accept (Visitor): void 100% (1/1)100% (4/4)100% (2/2)
getConstantValue (): ConstantValue_attribute 100% (1/1)100% (23/23)100% (8/8)
getFeatureType (): String 100% (1/1)100% (2/2)100% (1/1)
getFullDeclaration (): String 100% (1/1)100% (42/42)100% (6/6)
getSignature (): String 100% (1/1)100% (3/3)100% (1/1)
getType (): String 100% (1/1)100% (4/4)100% (1/1)
isEnum (): boolean 100% (1/1)100% (9/9)100% (1/1)

1/*
2 *  Copyright (c) 2001-2009, Jean Tessier
3 *  All rights reserved.
4 *  
5 *  Redistribution and use in source and binary forms, with or without
6 *  modification, are permitted provided that the following conditions
7 *  are met:
8 *  
9 *      * Redistributions of source code must retain the above copyright
10 *        notice, this list of conditions and the following disclaimer.
11 *  
12 *      * Redistributions in binary form must reproduce the above copyright
13 *        notice, this list of conditions and the following disclaimer in the
14 *        documentation and/or other materials provided with the distribution.
15 *  
16 *      * Neither the name of Jean Tessier nor the names of his contributors
17 *        may be used to endorse or promote products derived from this software
18 *        without specific prior written permission.
19 *  
20 *  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 *  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 *  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 *  A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR
24 *  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 *  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 *  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27 *  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28 *  LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29 *  NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 *  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32 
33package com.jeantessier.classreader.impl;
34 
35import java.io.*;
36import java.util.*;
37 
38import com.jeantessier.classreader.*;
39 
40public class Field_info extends Feature_info implements com.jeantessier.classreader.Field_info {
41    private static final int ACC_VOLATILE  = 0x0040;
42    private static final int ACC_TRANSIENT = 0x0080;
43    private static final int ACC_ENUM = 0x4000;
44 
45    public Field_info(Classfile classfile, DataInput in) throws IOException {
46        super(classfile, in);
47    }
48 
49    public String getFeatureType() {
50        return "field";
51    }
52 
53    public boolean isVolatile() {
54        return (getAccessFlag() & ACC_VOLATILE) != 0;
55    }
56 
57    public boolean isTransient() {
58        return (getAccessFlag() & ACC_TRANSIENT) != 0;
59    }
60 
61    public boolean isEnum() {
62        return (getAccessFlag() & ACC_ENUM) != 0;
63    }
64 
65    public String getType() {
66        return DescriptorHelper.getType(getDescriptor());
67    }
68 
69    public String getDeclaration() {
70        StringBuffer result = new StringBuffer();
71 
72        if (isPublic()) result.append("public ");
73        if (isProtected()) result.append("protected ");
74        if (isPrivate()) result.append("private ");
75        if (isStatic()) result.append("static ");
76        if (isFinal()) result.append("final ");
77        if (isVolatile()) result.append("volatile ");
78        if (isTransient()) result.append("transient ");
79    
80        result.append(getType()).append(" ");
81        result.append(getName());
82 
83        return result.toString();
84    }
85 
86    public String getFullDeclaration() {
87        String result = getDeclaration();
88 
89        if (getConstantValue() != null) {
90            if (getConstantValue().getRawValue() instanceof String_info) {
91                result += " = \"" + getConstantValue().getRawValue() + "\"";
92            } else {
93                result += " = " + getConstantValue().getRawValue();
94            }
95        }
96 
97        return result;
98    }
99 
100    public String getSignature() {
101        return getName();
102    }
103 
104    public ConstantValue_attribute getConstantValue() {
105        ConstantValue_attribute result = null;
106 
107        Iterator i = getAttributes().iterator();
108        while (result == null && i.hasNext()) {
109            Object temp = i.next();
110            if (temp instanceof ConstantValue_attribute) {
111                result = (ConstantValue_attribute) temp;
112            }
113        }
114 
115        return result;
116    }
117 
118    public void accept(Visitor visitor) {
119        visitor.visitField_info(this);
120    }
121}

[all classes][com.jeantessier.classreader.impl]
EMMA 2.0.5312 (C) Vladimir Roubtsov