1 20 21 26 27 28 package soot; 29 import java.util.*; 30 import soot.util.*; 31 32 35 public class EquivalentValue implements Value { 36 Value e; 37 public EquivalentValue(Value e) { this.e = e; } 38 public boolean equals(Object o) 39 { 40 if (o instanceof EquivalentValue) 41 o = ((EquivalentValue)o).e; 42 return e.equivTo(o); 43 } 44 45 49 public boolean equivToValue(Value v) { 50 return e.equivTo(v); 51 } 52 53 57 public boolean equalsToValue(Value v) { 58 return e.equals(v); 59 } 60 61 66 public Value getDeepestValue() { 67 Value deepest = e; 68 while (e instanceof EquivalentValue) 69 deepest = ((EquivalentValue)deepest).getValue(); 70 return deepest; 71 } 72 73 public int hashCode() { return e.equivHashCode(); } 74 public String toString() { return e.toString(); } 75 public Value getValue() { return e; } 76 77 78 79 80 public List getUseBoxes() { 81 return e.getUseBoxes(); 82 } 83 84 public Type getType() { 85 return e.getType(); 86 } 87 88 public Object clone() { 89 EquivalentValue equiVal = new EquivalentValue((Value)e.clone()); 90 return equiVal; 91 } 92 93 public boolean equivTo(Object o) { 94 return e.equivTo(o); 95 } 96 97 public int equivHashCode() { 98 return e.equivHashCode(); 99 } 100 101 public void apply(Switch sw) { 102 e.apply(sw); 103 } 104 public void toString( UnitPrinter up ) { 105 e.toString(up); 106 } 107 } 108 | Popular Tags |