1 21 package proguard.evaluation.value; 22 23 28 public abstract class Value 29 { 30 public static final int NEVER = -1; 31 public static final int MAYBE = 0; 32 public static final int ALWAYS = 1; 33 34 public static final int TYPE_INTEGER = 1; 35 public static final int TYPE_LONG = 2; 36 public static final int TYPE_FLOAT = 3; 37 public static final int TYPE_DOUBLE = 4; 38 public static final int TYPE_REFERENCE = 5; 39 public static final int TYPE_INSTRUCTION_OFFSET = 6; 40 public static final int TYPE_TOP = 7; 41 42 43 46 public Category1Value category1Value() 47 { 48 throw new IllegalArgumentException ("Value is not a Category 1 value [" + this.getClass().getName() + "]"); 49 } 50 51 54 public Category2Value category2Value() 55 { 56 throw new IllegalArgumentException ("Value is not a Category 2 value [" + this.getClass().getName() + "]"); 57 } 58 59 60 63 public IntegerValue integerValue() 64 { 65 throw new IllegalArgumentException ("Value is not an integer value [" + this.getClass().getName() + "]"); 66 } 67 68 71 public LongValue longValue() 72 { 73 throw new IllegalArgumentException ("Value is not a long value [" + this.getClass().getName() + "]"); 74 } 75 76 79 public FloatValue floatValue() 80 { 81 throw new IllegalArgumentException ("Value is not a float value [" + this.getClass().getName() + "]"); 82 } 83 84 87 public DoubleValue doubleValue() 88 { 89 throw new IllegalArgumentException ("Value is not a double value [" + this.getClass().getName() + "]"); 90 } 91 92 95 public ReferenceValue referenceValue() 96 { 97 throw new IllegalArgumentException ("Value is not a reference value [" + this.getClass().getName() + "]"); 98 } 99 100 103 public InstructionOffsetValue instructionOffsetValue() 104 { 105 throw new IllegalArgumentException ("Value is not an instruction offset value [" + this.getClass().getName() + "]"); 106 } 107 108 109 112 public boolean isSpecific() 113 { 114 return false; 115 } 116 117 118 121 public abstract Value generalize(Value other); 122 123 124 129 public abstract boolean isCategory2(); 130 131 132 141 public abstract int computationalType(); 142 143 144 157 public abstract String internalType(); 158 } 159 | Popular Tags |