1 package Analysis.SSJava;
3 import java.util.HashMap;
4 import java.util.HashSet;
9 import IR.MethodDescriptor;
11 public class MethodLocationInfo extends LocationInfo {
18 Map<Integer, String> mapParamIdxToLocName;
19 Set<String> paramLocNameSet;
21 public MethodLocationInfo(MethodDescriptor md) {
23 this.mapParamIdxToLocName = new HashMap<Integer, String>();
24 this.paramLocNameSet = new HashSet<String>();
25 this.PCLocName = SSJavaAnalysis.TOP;
29 * public void mapFlowNodeToInferLocation(FlowNode node, CompositeLocation
30 * location) { mapFlowNodeToLocation.put(node, location); }
32 * public CompositeLocation getInferLocation(FlowNode node) { return
33 * mapFlowNodeToLocation.get(node); }
36 public void setGlobalLocName(String globalLocName) {
37 this.globalLocName = globalLocName;
40 public String getReturnLocName() {
44 public void setReturnLocName(String returnLocName) {
45 this.returnLocName = returnLocName;
48 public String getThisLocName() {
52 public void setThisLocName(String thisLocName) {
53 this.thisLocName = thisLocName;
56 public String getPCLocName() {
60 public void setPCLocName(String pCLocName) {
61 PCLocName = pCLocName;
64 public void addParameter(String name, Descriptor desc, int idx) {
65 mapParamIdxToLocName.put(new Integer(idx), name);
66 // addMappingOfLocNameToDescriptor(name, desc);
69 public Set<String> getParameterLocNameSet() {
70 Set<String> paramSet = new HashSet<String>();
72 paramSet.add(PCLocName);
74 if (thisLocName != null) {
75 paramSet.add(thisLocName);
78 if (returnLocName != null) {
79 paramSet.add(returnLocName);
82 paramSet.addAll(mapParamIdxToLocName.values());
87 public void removeMaplocalVarToLocSet(Descriptor localVarDesc) {
88 String localVarLocSymbol = localVarDesc.getSymbol();
89 getDescSet(localVarLocSymbol).remove(localVarDesc);