1 21 package proguard.classfile.attribute.preverification; 22 23 import proguard.classfile.*; 24 import proguard.classfile.attribute.CodeAttribute; 25 import proguard.classfile.attribute.preverification.visitor.VerificationTypeVisitor; 26 27 33 public abstract class VerificationType implements VisitorAccepter 34 { 35 public static final int TOP_TYPE = 0; 36 public static final int INTEGER_TYPE = 1; 37 public static final int FLOAT_TYPE = 2; 38 public static final int DOUBLE_TYPE = 3; 39 public static final int LONG_TYPE = 4; 40 public static final int NULL_TYPE = 5; 41 public static final int UNINITIALIZED_THIS_TYPE = 6; 42 public static final int OBJECT_TYPE = 7; 43 public static final int UNINITIALIZED_TYPE = 8; 44 45 46 49 public Object visitorInfo; 50 51 52 55 public abstract int getTag(); 56 57 58 62 public abstract void accept(Clazz clazz, Method method, CodeAttribute codeAttribute, int instructionOffset, VerificationTypeVisitor verificationTypeVisitor); 63 64 65 68 public abstract void stackAccept(Clazz clazz, Method method, CodeAttribute codeAttribute, int instructionOffset, int stackIndex, VerificationTypeVisitor verificationTypeVisitor); 69 70 71 74 public abstract void variablesAccept(Clazz clazz, Method method, CodeAttribute codeAttribute, int instructionOffset, int variableIndex, VerificationTypeVisitor verificationTypeVisitor); 75 76 77 79 public Object getVisitorInfo() 80 { 81 return visitorInfo; 82 } 83 84 public void setVisitorInfo(Object visitorInfo) 85 { 86 this.visitorInfo = visitorInfo; 87 } 88 89 90 92 public boolean equals(Object object) 93 { 94 return object != null && 95 this.getClass() == object.getClass(); 96 } 97 98 99 public int hashCode() 100 { 101 return this.getClass().hashCode(); 102 } 103 } 104 | Popular Tags |