add new class file
authorjjenista <jjenista>
Tue, 11 Nov 2008 05:38:34 +0000 (05:38 +0000)
committerjjenista <jjenista>
Tue, 11 Nov 2008 05:38:34 +0000 (05:38 +0000)
Robust/src/Analysis/OwnershipAnalysis/MethodContext.java [new file with mode: 0644]

diff --git a/Robust/src/Analysis/OwnershipAnalysis/MethodContext.java b/Robust/src/Analysis/OwnershipAnalysis/MethodContext.java
new file mode 100644 (file)
index 0000000..19d7992
--- /dev/null
@@ -0,0 +1,74 @@
+package Analysis.OwnershipAnalysis;
+
+import IR.*;
+import IR.Flat.*;
+import java.util.*;
+import java.io.*;
+
+public class MethodContext {
+
+  private Descriptor descMethodOrTask;
+  private Set aliasedParameterIndices;
+
+  public MethodContext( Descriptor d ) {
+    descMethodOrTask = d;
+    aliasedParameterIndices = new HashSet();
+  }
+
+  public MethodContext( Descriptor d, Set a ) {
+    descMethodOrTask = d;
+    aliasedParameterIndices = a;
+  }
+  
+  public boolean equals(Object o) {
+    if( o == null ) {
+      return false;
+    }
+
+    if( !( o instanceof MethodContext) ) {
+      return false;
+    }
+
+    MethodContext mc = (MethodContext) o;
+
+    return mc.descMethodOrTask.equals( descMethodOrTask ) &&
+      mc.aliasedParameterIndices.equals( aliasedParameterIndices );
+  }
+  
+  public int hashCode() {
+    return descMethodOrTask.hashCode() ^ 
+      aliasedParameterIndices.hashCode();
+  }
+
+  public Descriptor getDescriptor() {
+    return descMethodOrTask;
+  }
+
+  public Set getAliasedParamIndices() {
+    return aliasedParameterIndices;
+  }
+
+
+  private String getAliasString() {
+    if( aliasedParameterIndices.isEmpty() ) {
+      return "";
+    }
+
+    String s = "aliased";
+    Iterator i = aliasedParameterIndices.iterator();
+    while( i.hasNext() ) {
+      s += i.next();
+      if( i.hasNext() ) {
+       s += "a";
+      }
+    }
+
+    return s;
+  }
+
+  public String toString() {
+    return descMethodOrTask.getSymbol()+
+           descMethodOrTask.getNum()+
+           getAliasString();
+  }
+}