package task8.jvm.print;
import task8.jvm.constant.*;
public class ConstantInfoVisitorImpl implements ConstantInfoVisitor {
@Override
public void visitClassInfo(ClassInfo classInfo) {
StringBuilder sb = new StringBuilder();
sb.append("Class\t#").append(classInfo.getUtf8Index()).append("\t").append(classInfo.getClassName());
System.out.println(sb);
}
@Override
public void visitFieldRefInfo(FieldRefInfo fieldRefInfo) {
StringBuilder sb = new StringBuilder();
sb.append("FieldRef\t#").append(fieldRefInfo.getClassInfoIndex()).append("\t").append(fieldRefInfo.getFieldName());
System.out.println(sb);
}
@Override
public void visitMethodRefInfo(MethodRefInfo methodRefInfo) {
StringBuilder sb = new StringBuilder();
sb.append("MethodRef\t#").append(methodRefInfo.getMethodName());
System.out.println(sb);
}
@Override
public void visitNameAndTypeInfo(NameAndTypeInfo nameAndTypeInfo) {
StringBuilder sb = new StringBuilder();
sb.append("NameAndType\t#").append(nameAndTypeInfo.getName()).append("\t")
.append(nameAndTypeInfo.getIndex1()).append("\t")
.append(nameAndTypeInfo.getIndex2()).append("\t")
.append(nameAndTypeInfo.getTypeInfo());
System.out.println(sb);
}
@Override
public void visitStringInfo(StringInfo stringInfo) {
StringBuilder sb = new StringBuilder();
sb.append("String\t#").append(stringInfo.getIndex());
System.out.println(sb);
}
@Override
public void visitUtf8Info(UTF8Info utf8Info) {
StringBuilder sb = new StringBuilder();
sb.append("UTF8\t#").append(utf8Info.getValue());
System.out.println(sb);
}
}