1 package Analysis.SSJava;
3 import java.util.HashMap;
4 import java.util.HashSet;
8 import IR.ClassDescriptor;
10 import IR.MethodDescriptor;
12 public class LocationInfo {
14 Map<String, Set<Descriptor>> mapLocNameToDescSet;
15 Map<String, String> mapDescSymbolToLocName;
16 Map<Descriptor, CompositeLocation> mapDescToInferCompositeLocation;
20 public LocationInfo() {
21 mapDescSymbolToLocName = new HashMap<String, String>();
22 mapLocNameToDescSet = new HashMap<String, Set<Descriptor>>();
23 mapDescToInferCompositeLocation = new HashMap<Descriptor, CompositeLocation>();
26 public LocationInfo(ClassDescriptor cd) {
28 this.mapDescSymbolToLocName = new HashMap<String, String>();
31 public void mapDescriptorToCompositeLocation(Descriptor desc, CompositeLocation inferLoc) {
32 mapDescToInferCompositeLocation.put(desc, inferLoc);
35 public void mapDescSymbolToLocName(String descSymbol, String locName) {
36 mapDescSymbolToLocName.put(descSymbol, locName);
39 public String getLocName(String descSymbol) {
40 if (!mapDescSymbolToLocName.containsKey(descSymbol)) {
41 mapDescSymbolToLocName.put(descSymbol, descSymbol);
43 return mapDescSymbolToLocName.get(descSymbol);
46 public void addMappingOfLocNameToDescriptor(String locName, Descriptor desc) {
48 // System.out.println("### MAP LocName=" + locName + " to " + desc);
50 if (!mapLocNameToDescSet.containsKey(locName)) {
51 mapLocNameToDescSet.put(locName, new HashSet<Descriptor>());
54 mapLocNameToDescSet.get(locName).add(desc);
58 public Set<Descriptor> getFlowNodeSet(String locName) {
60 if (!mapLocNameToDescSet.containsKey(locName)) {
61 mapLocNameToDescSet.put(locName, new HashSet<Descriptor>());
64 return mapLocNameToDescSet.get(locName);