package com.coderising.jvm.constant;
public class FieldRefInfo extends ConstantInfo {
private int type = FIELD_INFO;// u1 tag
private int class_index;// u2 class_index
private int name_and_type_index;// u2 name_and_type_index
public FieldRefInfo(ConstantPool pool) {
super(pool);
}
@Override
public int getType() {
return type;
}
@Override
public void print() {
System.out.println("u1 tag:" + getType() + " FieldInfo"
+ ",u2 class_index:" + getClass_index()
+ ",u2 name_and_type_index:" + getName_and_type_index());
}
@Override
public String toString() {
return getClassName() + ":" + getFieldName() + " : " + getFieldType();
}
public String getClassName() {
ClassInfo classInfo = (ClassInfo) this.constantPool
.getConstantInfo(class_index);
return classInfo.getClassName();
}
public String getFieldName() {
NameAndTypeInfo nameAndTypeInfo = (NameAndTypeInfo) this.constantPool
.getConstantInfo(name_and_type_index);
return nameAndTypeInfo.getName();
}
public String getFieldType() {
NameAndTypeInfo nameAndTypeInfo = (NameAndTypeInfo) this.constantPool
.getConstantInfo(name_and_type_index);
return nameAndTypeInfo.getTypeInfo();
}
/*
* getter setter
*/
public int getClass_index() {
return class_index;
}
public void setClass_index(int class_index) {
this.class_index = class_index;
}
public int getName_and_type_index() {
return name_and_type_index;
}
public void setName_and_type_index(int name_and_type_index) {
this.name_and_type_index = name_and_type_index;
}
}