|
||||||||||
| 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 FlowSetclone in class AbstractFlowSetpublic void clear()
FlowSet
clear in interface FlowSetclear in class AbstractFlowSetpublic java.lang.Object emptySet()
FlowSet((FlowSet)clone()).clear()
emptySet in interface FlowSetemptySet in class AbstractFlowSetpublic int size()
FlowSet
size in interface FlowSetsize in class AbstractFlowSetpublic boolean isEmpty()
FlowSet
isEmpty in interface FlowSetisEmpty in class AbstractFlowSetpublic java.util.Iterator iterator()
remove()-method.
iterator in interface FlowSetiterator in class AbstractFlowSetpublic java.util.List toList()
FlowSet
toList in interface FlowSettoList in class AbstractFlowSetpublic void complement(FlowSet dest)
BoundedFlowSetdest. dest and this may be the
same object.
complement in interface BoundedFlowSetcomplement in class AbstractBoundedFlowSetpublic void add(java.lang.Object obj)
FlowSetobj to this.
add in interface FlowSetadd in class AbstractFlowSetpublic void remove(java.lang.Object obj)
FlowSetobj from this.
remove in interface FlowSetremove in class AbstractFlowSet
public void union(FlowSet otherFlow,
FlowSet destFlow)
FlowSetother, putting
result into dest. dest, other and
this could be the same object.
union in interface FlowSetunion in class AbstractFlowSet
public void intersection(FlowSet otherFlow,
FlowSet destFlow)
FlowSetother,
putting result into dest. dest,
other and this could be the same object.
intersection in interface FlowSetintersection in class AbstractFlowSet
public void difference(FlowSet otherFlow,
FlowSet destFlow)
FlowSetother, putting result into dest.
dest, other and this could be the
same object.
difference in interface FlowSetdifference in class AbstractFlowSetpublic boolean contains(java.lang.Object obj)
FlowSetobj.
contains in interface FlowSetcontains in class AbstractFlowSetpublic boolean equals(java.lang.Object otherFlow)
equals in class AbstractFlowSetpublic void copy(FlowSet destFlow)
FlowSet
copy in interface FlowSetcopy in class AbstractFlowSet
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||