Clover coverage report - Dependency Finder
Coverage timestamp: Mon Nov 29 2010 15:00:50 PST
file stats: LOC: 121   Methods: 11
NCLOC: 68   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
Field_info.java 72.7% 89.7% 100% 86.1%
coverage coverage
 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   
 33    package com.jeantessier.classreader.impl;
 34   
 35    import java.io.*;
 36    import java.util.*;
 37   
 38    import com.jeantessier.classreader.*;
 39   
 40    public 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  1974 public Field_info(Classfile classfile, DataInput in) throws IOException {
 46  1974 super(classfile, in);
 47    }
 48   
 49  9184 public String getFeatureType() {
 50  9184 return "field";
 51    }
 52   
 53  8158 public boolean isVolatile() {
 54  8158 return (getAccessFlag() & ACC_VOLATILE) != 0;
 55    }
 56   
 57  8158 public boolean isTransient() {
 58  8158 return (getAccessFlag() & ACC_TRANSIENT) != 0;
 59    }
 60   
 61  29 public boolean isEnum() {
 62  29 return (getAccessFlag() & ACC_ENUM) != 0;
 63    }
 64   
 65  8073 public String getType() {
 66  8073 return DescriptorHelper.getType(getDescriptor());
 67    }
 68   
 69  7820 public String getDeclaration() {
 70  7820 StringBuffer result = new StringBuffer();
 71   
 72  7820 if (isPublic()) result.append("public ");
 73  0 if (isProtected()) result.append("protected ");
 74  0 if (isPrivate()) result.append("private ");
 75  6001 if (isStatic()) result.append("static ");
 76  6001 if (isFinal()) result.append("final ");
 77  0 if (isVolatile()) result.append("volatile ");
 78  0 if (isTransient()) result.append("transient ");
 79   
 80  7820 result.append(getType()).append(" ");
 81  7820 result.append(getName());
 82   
 83  7820 return result.toString();
 84    }
 85   
 86  28 public String getFullDeclaration() {
 87  28 String result = getDeclaration();
 88   
 89  28 if (getConstantValue() != null) {
 90  28 if (getConstantValue().getRawValue() instanceof String_info) {
 91  12 result += " = \"" + getConstantValue().getRawValue() + "\"";
 92    } else {
 93  16 result += " = " + getConstantValue().getRawValue();
 94    }
 95    }
 96   
 97  28 return result;
 98    }
 99   
 100  2543 public String getSignature() {
 101  2543 return getName();
 102    }
 103   
 104  2062 public ConstantValue_attribute getConstantValue() {
 105  2062 ConstantValue_attribute result = null;
 106   
 107  2062 Iterator i = getAttributes().iterator();
 108  2062 while (result == null && i.hasNext()) {
 109  1522 Object temp = i.next();
 110  1522 if (temp instanceof ConstantValue_attribute) {
 111  1437 result = (ConstantValue_attribute) temp;
 112    }
 113    }
 114   
 115  2062 return result;
 116    }
 117   
 118  381 public void accept(Visitor visitor) {
 119  381 visitor.visitField_info(this);
 120    }
 121    }