From: jjenista Date: Mon, 11 Aug 2008 23:17:47 +0000 (+0000) Subject: start of new file X-Git-Tag: preEdgeChange~1 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=4cb63e913202459da4fe9d01feb7c02f1b98dd6f;p=IRC.git start of new file --- diff --git a/Robust/src/Analysis/OwnershipAnalysis/SubstitutionTuple.java b/Robust/src/Analysis/OwnershipAnalysis/SubstitutionTuple.java new file mode 100644 index 00000000..ce36f671 --- /dev/null +++ b/Robust/src/Analysis/OwnershipAnalysis/SubstitutionTuple.java @@ -0,0 +1,55 @@ +package Analysis.OwnershipAnalysis; + +import IR.*; +import IR.Flat.*; +import java.util.*; +import java.io.*; + + +// a change touple is a pair that indicates if the +// first TokenTupleSet is found in a ReachabilitySet, +// then the second TokenTupleSet should be added + +// THIS CLASS IS IMMUTABLE! + +public class ChangeTuple extends Canonical +{ + private TokenTupleSet toMatch; + private TokenTupleSet toAdd; + + public ChangeTuple( TokenTupleSet toMatch, + TokenTupleSet toAdd ) { + this.toMatch = toMatch; + this.toAdd = toAdd; + } + + public ChangeTuple makeCanonical() { + return (ChangeTuple) Canonical.makeCanonical( this ); + } + + public TokenTupleSet getSetToMatch() { return toMatch; } + public TokenTupleSet getSetToAdd() { return toAdd; } + + public boolean equals( Object o ) { + if( o == null ) { + return false; + } + + if( !(o instanceof ChangeTuple) ) { + return false; + } + + ChangeTuple ct = (ChangeTuple) o; + + return toMatch.equals( ct.getSetToMatch() ) && + toAdd.equals( ct.getSetToAdd() ); + } + + public int hashCode() { + return toMatch.hashCode() + toAdd.hashCode(); + } + + public String toString() { + return new String( "<"+toMatch+" -> "+toAdd+">" ); + } +}