1 package Analysis.OwnershipAnalysis;
9 public class ChangeTupleSet extends Canonical {
11 private HashSet<ChangeTuple> changeTuples;
13 public ChangeTupleSet() {
14 changeTuples = new HashSet<ChangeTuple>();
17 public ChangeTupleSet( ChangeTuple ct ) {
19 changeTuples.add( ct );
22 public ChangeTupleSet( ChangeTupleSet cts ) {
23 changeTuples = (HashSet<ChangeTuple>) cts.changeTuples.clone(); //COPY?!
26 public ChangeTupleSet makeCanonical() {
27 return (ChangeTupleSet) Canonical.makeCanonical( this );
30 public Iterator iterator() {
31 return changeTuples.iterator();
34 public ChangeTupleSet union( ChangeTupleSet ctsIn ) {
35 ChangeTupleSet ctsOut = new ChangeTupleSet( this );
36 ctsOut.changeTuples.addAll( ctsIn.changeTuples );
37 return ctsOut.makeCanonical();
40 public boolean isSubset( ChangeTupleSet ctsIn ) {
41 return ctsIn.changeTuples.containsAll( this.changeTuples );
44 public boolean equals( Object o ) {
45 if( !(o instanceof ChangeTupleSet) ) {
49 ChangeTupleSet cts = (ChangeTupleSet) o;
50 return changeTuples.equals( cts.changeTuples );
53 public int hashCode() {
54 return changeTuples.hashCode();
57 public String toString() {
60 Iterator i = this.iterator();
61 while( i.hasNext() ) {