3 import java.util.HashSet;
4 import java.util.Hashtable;
5 import java.util.Iterator;
8 public class MethodSummary {
10 public static final Integer VOID=new Integer(0);
11 public static final Integer ACCESSIBLE = new Integer(1);
12 public static final Integer INACCESSIBLE=new Integer(2);
14 private int childSESECount;
15 private HashSet<PreEffectsKey> effectsSet;
16 private Integer accessibility;
17 private StallSite returnStallSite;
19 private Hashtable<Integer, HashSet<StallTag>> mapParamIndexToRelatedStallTag;
21 public MethodSummary() {
22 effectsSet = new HashSet<PreEffectsKey>();
23 accessibility = MethodSummary.VOID;
26 mapParamIndexToRelatedStallTag=new Hashtable<Integer, HashSet<StallTag>>();
29 public void addStallParamIdxSet(Set<Integer> paramIdxSet, HashSet<StallTag> stallTagSet){
31 if(paramIdxSet!=null){
32 for (Iterator iterator = paramIdxSet.iterator(); iterator.hasNext();) {
33 Integer paramIdx = (Integer) iterator.next();
34 mapParamIndexToRelatedStallTag.put(paramIdx, stallTagSet);
39 public HashSet<StallTag> getStallTagByParamIdx(Integer paramIdx){
40 return mapParamIndexToRelatedStallTag.get(paramIdx);
44 public Set<Integer> getStallParamIdxSet(){
45 return mapParamIndexToRelatedStallTag.keySet();
48 public void setReturnStallSite(StallSite ss){
52 public StallSite getReturnStallSite(){
53 return returnStallSite;
56 public void increaseChildSESECount() {
60 public int getChildSESECount() {
61 return childSESECount;
64 public Integer getReturnValueAccessibility() {
68 public void setReturnValueAccessibility(Integer accessibility) {
69 this.accessibility = accessibility;
72 public HashSet<PreEffectsKey> getEffectsSet() {
77 public String toString() {
78 return "MethodSummary [accessibility=" + accessibility
79 + ", childSESECount=" + childSESECount + ", effectsSet="
83 public HashSet<PreEffectsKey> getEffectsSetByParamIdx(int paramIdx){
85 HashSet<PreEffectsKey> returnSet=new HashSet<PreEffectsKey>();
87 for (Iterator iterator = effectsSet.iterator(); iterator.hasNext();) {
88 PreEffectsKey preEffectsKey = (PreEffectsKey) iterator.next();
89 if(preEffectsKey.getParamIndex().equals(new Integer(paramIdx))){
90 returnSet.add(preEffectsKey);
101 public static final Integer READ_EFFECT = new Integer(1);
102 public static final Integer WRITE_EFFECT = new Integer(2);
105 private String field;
106 private Integer effectType;
107 private Integer paramIndex;
109 public PreEffectsKey(Integer paramIndex, String field, String type,
110 Integer effectType) {
111 this.paramIndex = paramIndex;
114 this.effectType = effectType;
117 public String getType() {
121 public String getField() {
125 public Integer getEffectType() {
129 public Integer getParamIndex() {
133 public String toString() {
134 return "PreEffectsKey [effectType=" + effectType + ", field=" + field
135 + ", paramIndex=" + paramIndex + ", type=" + type + "]";
138 public boolean equals(Object o) {
144 if (!(o instanceof PreEffectsKey)) {
148 PreEffectsKey in = (PreEffectsKey) o;
150 if (paramIndex.equals(in.getParamIndex())
151 && field.equals(in.getField()) && type.equals(in.getType())
152 && effectType.equals(in.getEffectType())) {