1 package Analysis.OwnershipAnalysis;
9 public class ReachabilitySet {
11 public HashSet<TokenTupleSet> possibleReachabilities;
13 public ReachabilitySet() {
14 possibleReachabilities = new HashSet<TokenTupleSet>();
17 public ReachabilitySet( ReachabilitySet rs ) {
18 possibleReachabilities = (HashSet<TokenTupleSet>) rs.possibleReachabilities.clone(); // again, DEEP COPY?!
21 public ReachabilitySet union( ReachabilitySet rsIn ) {
22 ReachabilitySet rsOut = new ReachabilitySet( this );
23 rsOut.possibleReachabilities.addAll( rsIn.possibleReachabilities );
27 public ReachabilitySet intersection( ReachabilitySet rsIn ) {
28 ReachabilitySet rsOut = new ReachabilitySet();
30 Iterator i = this.possibleReachabilities.iterator();
31 while( i.hasNext() ) {
32 TokenTupleSet tts = (TokenTupleSet) i.next();
33 if( rsIn.possibleReachabilities.contains( tts ) ) {
34 rsOut.possibleReachabilities.add( tts );
42 public ChangeTupleSet unionUpArity( ReachabilitySet rsIn ) {