|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--soot.toolkits.scalar.AbstractFlowSet | +--soot.toolkits.scalar.AbstractBoundedFlowSet | +--soot.toolkits.scalar.BoundedArraySparseSet
Provides an efficient implementation of flowsets, that are usually
sparse or nearly full (after being complemented). This is done by
storing a flag complemented
. When a set is complemented,
only the elements, that are not in the full set are stored.
Even without the use of "complement()" or "topSet()" this flowSet is well
suited for sparse sets.
Field Summary | |
protected int |
modifyCounter
to be able to report concurrent modifications this integer has to be incremented for every modification of the set |
Constructor Summary | |
BoundedArraySparseSet()
creates a BoundedArraySparseSet without an explicite flow-universe. |
|
BoundedArraySparseSet(FlowUniverse flowUniverse)
a BoundedArraySparseSet with flowUniverse. |
Method Summary | |
void |
add(java.lang.Object obj)
Adds obj to this . |
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. |
void |
complement(FlowSet dest)
Complements this BoundedFlowSet, putting the result into dest . |
boolean |
contains(java.lang.Object obj)
Returns true if this FlowSet contains obj . |
void |
copy(FlowSet destFlow)
Copies the current FlowSet into dest. |
void |
difference(FlowSet otherFlow,
FlowSet destFlow)
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() |
boolean |
equals(java.lang.Object otherFlow)
|
void |
intersection(FlowSet otherFlow,
FlowSet destFlow)
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()
the returned iterator implements the remove() -method. |
void |
remove(java.lang.Object obj)
Removes obj from this . |
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 otherFlow,
FlowSet destFlow)
Returns the union (join) of this FlowSet and other , putting
result into dest . |
Methods inherited from class soot.toolkits.scalar.AbstractBoundedFlowSet |
complement, topSet |
Methods inherited from class soot.toolkits.scalar.AbstractFlowSet |
add, difference, intersection, remove, toString, union |
Methods inherited from class java.lang.Object |
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface soot.toolkits.scalar.FlowSet |
add, difference, intersection, remove, union |
Field Detail |
protected int modifyCounter
Constructor Detail |
public BoundedArraySparseSet()
public BoundedArraySparseSet(FlowUniverse flowUniverse)
flowUniverse
- all possible elements.Method Detail |
public java.lang.Object clone()
FlowSet
clone
in interface FlowSet
clone
in class AbstractFlowSet
public void clear()
FlowSet
clear
in interface FlowSet
clear
in class AbstractFlowSet
public java.lang.Object emptySet()
FlowSet
((FlowSet)clone()).clear()
emptySet
in interface FlowSet
emptySet
in class AbstractFlowSet
public int size()
FlowSet
size
in interface FlowSet
size
in class AbstractFlowSet
public boolean isEmpty()
FlowSet
isEmpty
in interface FlowSet
isEmpty
in class AbstractFlowSet
public java.util.Iterator iterator()
remove()
-method.
iterator
in interface FlowSet
iterator
in class AbstractFlowSet
public java.util.List toList()
FlowSet
toList
in interface FlowSet
toList
in class AbstractFlowSet
public void complement(FlowSet dest)
BoundedFlowSet
dest
. dest
and this
may be the
same object.
complement
in interface BoundedFlowSet
complement
in class AbstractBoundedFlowSet
public void add(java.lang.Object obj)
FlowSet
obj
to this
.
add
in interface FlowSet
add
in class AbstractFlowSet
public void remove(java.lang.Object obj)
FlowSet
obj
from this
.
remove
in interface FlowSet
remove
in class AbstractFlowSet
public void union(FlowSet otherFlow, FlowSet destFlow)
FlowSet
other
, putting
result into dest
. dest
, other
and
this
could be the same object.
union
in interface FlowSet
union
in class AbstractFlowSet
public void intersection(FlowSet otherFlow, FlowSet destFlow)
FlowSet
other
,
putting result into dest
. dest
,
other
and this
could be the same object.
intersection
in interface FlowSet
intersection
in class AbstractFlowSet
public void difference(FlowSet otherFlow, FlowSet destFlow)
FlowSet
other
, putting result into dest
.
dest
, other
and this
could be the
same object.
difference
in interface FlowSet
difference
in class AbstractFlowSet
public boolean contains(java.lang.Object obj)
FlowSet
obj
.
contains
in interface FlowSet
contains
in class AbstractFlowSet
public boolean equals(java.lang.Object otherFlow)
equals
in class AbstractFlowSet
public void copy(FlowSet destFlow)
FlowSet
copy
in interface FlowSet
copy
in class AbstractFlowSet
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |