00001 package de.fub.bytecode.generic;
00002
00003 import de.fub.bytecode.classfile.ConstantPool;
00004 import de.fub.bytecode.classfile.ConstantUtf8;
00005 import de.fub.bytecode.classfile.ConstantNameAndType;
00006 import de.fub.bytecode.classfile.ConstantCP;
00007 import de.fub.bytecode.classfile.*;
00008
00009
00010
00011
00012
00013
00014
00015 public abstract class FieldInstruction extends FieldOrMethod
00016 implements TypedInstruction {
00017
00018
00019
00020
00021 FieldInstruction() {}
00022
00023
00024
00025 protected FieldInstruction(short tag, int index) {
00026 super(tag, index);
00027 }
00028
00029
00030 public String getFieldName(ConstantPoolGen cpg) {
00031 return getName(cpg);
00032 }
00033
00034
00035 protected int getFieldSize(ConstantPoolGen cpg) {
00036 return getType(cpg).getSize();
00037 }
00038
00039
00040 public Type getFieldType(ConstantPoolGen cpg) {
00041 return Type.getType(getSignature(cpg));
00042 }
00043
00044
00045 public Type getType(ConstantPoolGen cpg) {
00046 return getFieldType(cpg);
00047 }
00048
00049
00050
00051 public String toString(ConstantPool cp) {
00052 return de.fub.bytecode.Constants.OPCODE_NAMES[tag] + " " +
00053 cp.constantToString(index, de.fub.bytecode.Constants.CONSTANT_Fieldref);
00054 }
00055 }