00001 package edu.ksu.cis.bandera.pdgslicer.datastructure;
00002
00003 import ca.mcgill.sable.soot.*;
00004 import ca.mcgill.sable.soot.jimple.*;
00005
00006 public class SliceLocal extends SliceVariable {
00007 private SootMethod sm;
00008 private Local local;
00009
00010
00011
00012
00013
00014
00015 public SliceLocal(SootClass sootClass, SootMethod sootMethod, Local local) {
00016 super(sootClass);
00017 this.sm = sootMethod;
00018 this.local = local;
00019 }
00020
00021
00022
00023
00024
00025 public boolean equals(Object object) {
00026 if (object instanceof SliceLocal) {
00027 SliceLocal sloc = (SliceLocal) object;
00028 return local.equals(sloc.getLocal()) && sm==sloc.getSootMethod() && sc==sloc.getSootClass();
00029 } else {
00030 return false;
00031 }
00032 }
00033
00034
00035
00036
00037 public Local getLocal() {
00038 return local;
00039 }
00040
00041
00042
00043
00044 public SootMethod getSootMethod() {
00045 return sm;
00046 }
00047
00048
00049
00050
00051 public int hashCode() {
00052 return local.hashCode();
00053 }
00054
00055
00056
00057
00058
00059 public void setLocal(Local loc) {
00060 local = loc;
00061 }
00062
00063
00064
00065
00066
00067 public void setSootMethod(SootMethod smd) {
00068 sm = smd;
00069 }
00070
00071
00072
00073
00074 public String toString() {
00075 return local.toString()+" :: " + getSootMethod();
00076 }
00077 }