1 package Analysis.SSJava;
3 import java.util.HashMap;
4 import java.util.HashSet;
9 import IR.MethodDescriptor;
11 public class MethodLocationInfo extends LocationInfo {
17 Map<Integer, String> mapParamIdxToLocName;
18 Set<String> paramLocNameSet;
20 public MethodLocationInfo(MethodDescriptor md) {
22 this.mapParamIdxToLocName = new HashMap<Integer, String>();
23 this.paramLocNameSet = new HashSet<String>();
24 this.PCLocName = SSJavaAnalysis.TOP;
28 * public void mapFlowNodeToInferLocation(FlowNode node, CompositeLocation
29 * location) { mapFlowNodeToLocation.put(node, location); }
31 * public CompositeLocation getInferLocation(FlowNode node) { return
32 * mapFlowNodeToLocation.get(node); }
34 public String getReturnLocName() {
38 public void setReturnLocName(String returnLocName) {
39 this.returnLocName = returnLocName;
42 public String getThisLocName() {
46 public void setThisLocName(String thisLocName) {
47 this.thisLocName = thisLocName;
50 public String getPCLocName() {
54 public void setPCLocName(String pCLocName) {
55 PCLocName = pCLocName;
58 public void addParameter(String name, Descriptor desc, int idx) {
59 mapParamIdxToLocName.put(new Integer(idx), name);
60 // addMappingOfLocNameToDescriptor(name, desc);
63 public Set<String> getParameterLocNameSet() {
64 Set<String> paramSet = new HashSet<String>();
66 paramSet.add(PCLocName);
68 if (thisLocName != null) {
69 paramSet.add(thisLocName);
72 if (returnLocName != null) {
73 paramSet.add(returnLocName);
76 paramSet.addAll(mapParamIdxToLocName.values());
81 public void removeMaplocalVarToLocSet(Descriptor localVarDesc) {
82 String localVarLocSymbol = localVarDesc.getSymbol();
83 getDescSet(localVarLocSymbol).remove(localVarDesc);