package miniJVM.field;
import miniJVM.constant.ConstantPool;
import miniJVM.constant.UTF8Info;
public class Field {
private int accessFlag;
private int nameIndex;
private int descriptorIndex;
private int attributeCount;
private ConstantPool pool;
public Field( int accessFlag, int nameIndex, int descriptorIndex, int attributeCount, ConstantPool pool) {
this.accessFlag = accessFlag;
this.nameIndex = nameIndex;
this.descriptorIndex = descriptorIndex;
this.attributeCount = attributeCount;
this.pool = pool;
}
public String toString() {
String name = ((UTF8Info)pool.getConstantInfo(this.nameIndex)).getValue();
String desc = ((UTF8Info)pool.getConstantInfo(this.descriptorIndex)).getValue();
return name +":"+ desc;
}
// public static Field parse(ConstantPool pool,ByteCodeIterator iter){
//
// int accessFlag = iter.nextU2ToInt();
// int nameIndex = iter.nextU2ToInt();
// int descIndex = iter.nextU2ToInt();
// int attrCount = iter.nextU2ToInt();
// //System.out.println("field attribute count:"+ attribCount);
//
// Field f = new Field(accessFlag, nameIndex, descIndex,pool);
//
// if(attrCount > 0){
// throw new RuntimeException("Field Attribute has not been implemented");
// }
//
// return f;
// }
}