package com.coderising.jvm.field;
import com.coderising.jvm.constant.ConstantPool;
import com.coderising.jvm.loader.ByteCodeIterator;
public class Field {
private int accessFlag;
private int nameIndex;
private int descriptorIndex;
private ConstantPool pool;
public Field( int accessFlag, int nameIndex, int descriptorIndex,ConstantPool pool) {
this.accessFlag = accessFlag;
this.nameIndex = nameIndex;
this.descriptorIndex = descriptorIndex;
this.pool = pool;
}
public static Field parse(ConstantPool pool,ByteCodeIterator iter){
Field field = new Field(iter.nextU2Int(), iter.nextU2Int(), iter.nextU2Int(),pool);
int attributeCount=iter.nextU2Int();
System.out.println("attributeCount:"+attributeCount);
for(int j=0;j<attributeCount;j++){
int attribute_name_index = iter.nextU2Int();
int attribute_length = iter.nextU4Integer();
int attribute_value_index = iter.nextU2Int();
}
return field;
}
@Override
public String toString() {
String name = pool.getUTF8String(nameIndex);
String descr = pool.getUTF8String(descriptorIndex);
return name+":"+descr;
}
}