soot.toolkits.scalar
Interface FlowSet

All Known Subinterfaces:
BoundedFlowSet
All Known Implementing Classes:
AbstractFlowSet

public interface FlowSet

Represents information for flow analysis. A FlowSet is an element of a lattice; this lattice might be described by a FlowUniverse. If add, remove, size, isEmpty, toList and contains are implemented, the lattice must be the powerset of some set.


Method Summary
 void add(java.lang.Object obj)
          Adds obj to this.
 void add(java.lang.Object obj, FlowSet dest)
          puts this union obj into dest.
 void clear()
          Sets this FlowSet to the empty set (more generally, the bottom element of the lattice.)
 java.lang.Object clone()
          Clones the current FlowSet.
 boolean contains(java.lang.Object obj)
          Returns true if this FlowSet contains obj.
 void copy(FlowSet dest)
          Copies the current FlowSet into dest.
 void difference(FlowSet other)
          Returns the set difference (this join ~other) of this FlowSet and other, putting result into this.
 void difference(FlowSet other, FlowSet dest)
          Returns the set difference (this join ~other) of this FlowSet and other, putting result into dest.
 java.lang.Object emptySet()
          returns an empty set, most often more efficient than: ((FlowSet)clone()).clear()
 void intersection(FlowSet other)
          Returns the intersection (meet) of this FlowSet and other, putting result into this.
 void intersection(FlowSet other, FlowSet dest)
          Returns the intersection (meet) of this FlowSet and other, putting result into dest.
 boolean isEmpty()
          Returns true if this FlowSet is the empty set.
 java.util.Iterator iterator()
          returns an iterator over the elements of the flowSet.
 void remove(java.lang.Object obj)
          Removes obj from this.
 void remove(java.lang.Object obj, FlowSet dest)
          Puts this minus obj into dest.
 int size()
          Returns the size of the current FlowSet.
 java.util.List toList()
          Returns an unbacked list of contained objects for this FlowSet.
 void union(FlowSet other)
          Returns the union (join) of this FlowSet and other, putting result into this.
 void union(FlowSet other, FlowSet dest)
          Returns the union (join) of this FlowSet and other, putting result into dest.
 

Method Detail

clone

public java.lang.Object clone()
Clones the current FlowSet.
Overrides:
clone in class java.lang.Object

emptySet

public java.lang.Object emptySet()
returns an empty set, most often more efficient than: ((FlowSet)clone()).clear()

copy

public void copy(FlowSet dest)
Copies the current FlowSet into dest.

clear

public void clear()
Sets this FlowSet to the empty set (more generally, the bottom element of the lattice.)

union

public void union(FlowSet other)
Returns the union (join) of this FlowSet and other, putting result into this.

union

public void union(FlowSet other,
                  FlowSet dest)
Returns the union (join) of this FlowSet and other, putting result into dest. dest, other and this could be the same object.

intersection

public void intersection(FlowSet other)
Returns the intersection (meet) of this FlowSet and other, putting result into this.

intersection

public void intersection(FlowSet other,
                         FlowSet dest)
Returns the intersection (meet) of this FlowSet and other, putting result into dest. dest, other and this could be the same object.

difference

public void difference(FlowSet other)
Returns the set difference (this join ~other) of this FlowSet and other, putting result into this.

difference

public void difference(FlowSet other,
                       FlowSet dest)
Returns the set difference (this join ~other) of this FlowSet and other, putting result into dest. dest, other and this could be the same object.

isEmpty

public boolean isEmpty()
Returns true if this FlowSet is the empty set.

size

public int size()
Returns the size of the current FlowSet.

add

public void add(java.lang.Object obj)
Adds obj to this.

add

public void add(java.lang.Object obj,
                FlowSet dest)
puts this union obj into dest.

remove

public void remove(java.lang.Object obj)
Removes obj from this.

remove

public void remove(java.lang.Object obj,
                   FlowSet dest)
Puts this minus obj into dest.

contains

public boolean contains(java.lang.Object obj)
Returns true if this FlowSet contains obj.

iterator

public java.util.Iterator iterator()
returns an iterator over the elements of the flowSet. Note that the iterator might be backed, and hence be faster in the creation, than doing toList().iterator().

toList

public java.util.List toList()
Returns an unbacked list of contained objects for this FlowSet.