From 4cb63e913202459da4fe9d01feb7c02f1b98dd6f Mon Sep 17 00:00:00 2001 From: jjenista Date: Mon, 11 Aug 2008 23:17:47 +0000 Subject: [PATCH] start of new file --- .../OwnershipAnalysis/SubstitutionTuple.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 Robust/src/Analysis/OwnershipAnalysis/SubstitutionTuple.java 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+">" ); + } +} -- 2.34.1