package com.coding.basic.homework_04.jvm.constant;
import com.coding.basic.homework_04.jvm.info.ClassInfo;
import com.coding.basic.homework_04.jvm.info.FieldRefInfo;
import com.coding.basic.homework_04.jvm.info.MethodRefInfo;
import com.coding.basic.homework_04.jvm.info.NameAndTypeInfo;
import com.coding.basic.homework_04.jvm.info.StringInfo;
import com.coding.basic.homework_04.jvm.info.UTF8Info;
public abstract class ConstantInfo {
public static final int CLASS_INFO = 7;
public static final int UTF8_INFO = 1;
public static final int STRING_INFO = 8;
public static final int FIELDREF_INFO = 9;
public static final int METHODREF_INFO = 10;
public static final int NAMEANDTYPE_INFO = 12;
protected ConstantPool pool;
public ConstantInfo(){
}
public ConstantInfo(ConstantPool pool) {
this.pool = pool;
}
public abstract int getType();
public abstract void accept(Visitor visitor);
public static interface Visitor{
public void visitClassInfo(ClassInfo info);
public void visitFieldRef(FieldRefInfo info);
public void visitMethodRef(MethodRefInfo info);
public void visitNameAndType(NameAndTypeInfo info);
public void visitString(StringInfo info);
public void visistUTF8(UTF8Info info);
}
}