package com.coderising.jvm.constant; import com.coderising.jvm.constant.ConstantInfo.Visitor; public class MethodRefInfo extends ConstantInfo{ private int type = ConstantInfo.METHOD_INFO; private int classInfoIndex;// ָ�� �����÷������������ private int nameAndTypeIndex;// ָ������÷��� ���ƺ����͵����� public MethodRefInfo(ConstantPool pool){ super(pool); } @Override public int getType() { return type; } public int getClassInfoIndex(){ return classInfoIndex; } public void setClassInfoIndex(int classInfoIndex){ this.classInfoIndex = classInfoIndex; } public int getNameAndTypeIndex(){ return nameAndTypeIndex; } public void setNameAndTypeIndex(int nameAndTypeIndex){ this.nameAndTypeIndex = nameAndTypeIndex; } public String getClassName(){ ConstantPool pool = this.getConstantPool(); ClassInfo clzInfo = (ClassInfo)pool.getConstantInfo(this.classInfoIndex); return clzInfo.getClassName(); } public String getMethodName(){ ConstantPool pool = this.getConstantPool(); NameAndTypeInfo typeInfo = (NameAndTypeInfo)pool.getConstantInfo(this.nameAndTypeIndex); return typeInfo.getName(); } public String getParamAndReturnType(){ ConstantPool pool = this.getConstantPool(); NameAndTypeInfo typeInfo = (NameAndTypeInfo)pool.getConstantInfo(this.nameAndTypeIndex); return typeInfo.getTypeInfo(); } @Override public void accept(Visitor visitor) { visitor.visitMethodRef(this); } }