package week567_miniJVM.method;
import week567_miniJVM.clz.ClassFile;
import week567_miniJVM.constant.ConstantInfo;
import week567_miniJVM.constant.UTF8Info;
import week567_miniJVM.loader.ByteCodeIterator;
import week567_miniJVM.attr.AttrFactory;
import week567_miniJVM.attr.AttributeInfo;
import week567_miniJVM.attr.CodeAttr;
public class Method {
private int accessFlag,nameIndex,descIndex;
private CodeAttr codeAttr;
private ClassFile clzFile;
public ClassFile getClzFile() {
return clzFile;
}
public int getAccessFlag(){
return accessFlag;
}
public int getNameIndex() {
return nameIndex;
}
public int getDescriptorIndex() {
return descIndex;
}
public CodeAttr getCodeAttr() {
return codeAttr;
}
public void setCodeAttr(CodeAttr code) {
this.codeAttr = code;
}
public Method(ClassFile clzFile,int accessFlag, int nameIndex, int descIndex) {
this.clzFile = clzFile;
this.accessFlag = accessFlag;
this.nameIndex = nameIndex;
this.descIndex = descIndex;
}
public void parse(ClassFile clzFile, ByteCodeIterator iter){
int attributeNum = iter.nextU2ToInt();
while(attributeNum>0){
attributeNum -= 1;
AttributeInfo attrinfo = AttrFactory.Instance().parse(clzFile, iter);
if(attrinfo == null) continue;
}
}
}