envgen.analysis.stat
Class DataFlowSet

java.lang.Object
  |
  +--envgen.analysis.stat.DataFlowSet
All Implemented Interfaces:
soot.toolkits.scalar.FlowSet

public class DataFlowSet
extends java.lang.Object
implements soot.toolkits.scalar.FlowSet

Keeps mapping between references and a set of locations they refer to in alias analysis, and a mapping between locations and a set of values they possibly hold in side-effects analysis.


Field Summary
(package private)  int debug
           
(package private)  java.util.HashMap map
          Adds obj into dest set, requires obj to be of type ValueSetPair.
 
Constructor Summary
(package private) DataFlowSet()
           
(package private) DataFlowSet(java.util.HashMap map)
           
 
Method Summary
 void add(java.lang.Object obj)
           
 void add(java.lang.Object obj, soot.toolkits.scalar.FlowSet dest)
           
 void addWeak(java.lang.Object obj, soot.toolkits.scalar.FlowSet dest)
          Adds a mapping without overwriting previous results, used for weak update.
 void clear()
          Clears the data flow set so it contains no entries.
 java.lang.Object clone()
          Creates a shallow copy of this set.
 boolean contains(java.lang.Object obj)
           
 boolean containsKey(java.lang.Object obj)
          Returns true if this data flow set contains an element that is structurally identical to obj.
 void copy(soot.toolkits.scalar.FlowSet dest)
          Copies elements of this set into dest set.
 void difference(soot.toolkits.scalar.FlowSet other)
           
 void difference(soot.toolkits.scalar.FlowSet other, soot.toolkits.scalar.FlowSet dest)
          Walks through the other set and subtracts its elements from this set, writing the result into dest.
 java.lang.Object emptySet()
           
 boolean equals(java.lang.Object second)
          Compares based on the content regardless of order.
 java.lang.Object get(java.lang.Object key)
           
 soot.Value getKey(java.lang.Object obj)
          Returns the first element from this data flow set that is structurally identical to obj (not necessarily the same pointer).
 java.util.HashMap getMap()
           
 void intersection(soot.toolkits.scalar.FlowSet other)
           
 void intersection(soot.toolkits.scalar.FlowSet other, soot.toolkits.scalar.FlowSet dest)
           
 boolean isEmpty()
           
 java.util.Iterator iterator()
           
 java.util.Set keySet()
           
 java.lang.Object put(java.lang.Object key, java.lang.Object value)
           
 void remove(java.lang.Object obj)
           
 void remove(java.lang.Object obj, soot.toolkits.scalar.FlowSet dest)
           
 void removeKey(java.lang.Object key)
           
 int size()
           
 java.util.List toList()
           
 java.lang.String toString()
           
 void union(soot.toolkits.scalar.FlowSet other)
           
 void union(soot.toolkits.scalar.FlowSet other, soot.toolkits.scalar.FlowSet dest)
          Walks through the other set and adds its elements to this set, writng the result into dest.
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

debug

int debug

map

java.util.HashMap map
Adds obj into dest set, requires obj to be of type ValueSetPair.

Constructor Detail

DataFlowSet

DataFlowSet()

DataFlowSet

DataFlowSet(java.util.HashMap map)
Method Detail

add

public void add(java.lang.Object obj,
                soot.toolkits.scalar.FlowSet dest)
Specified by:
add in interface soot.toolkits.scalar.FlowSet

addWeak

public void addWeak(java.lang.Object obj,
                    soot.toolkits.scalar.FlowSet dest)
Adds a mapping without overwriting previous results, used for weak update.


add

public void add(java.lang.Object obj)
Specified by:
add in interface soot.toolkits.scalar.FlowSet

containsKey

public boolean containsKey(java.lang.Object obj)
Returns true if this data flow set contains an element that is structurally identical to obj.


getKey

public soot.Value getKey(java.lang.Object obj)
Returns the first element from this data flow set that is structurally identical to obj (not necessarily the same pointer).


copy

public void copy(soot.toolkits.scalar.FlowSet dest)
Copies elements of this set into dest set. requires this != null requires dest != null

Specified by:
copy in interface soot.toolkits.scalar.FlowSet

difference

public void difference(soot.toolkits.scalar.FlowSet other,
                       soot.toolkits.scalar.FlowSet dest)
Walks through the other set and subtracts its elements from this set, writing the result into dest.

Specified by:
difference in interface soot.toolkits.scalar.FlowSet

difference

public void difference(soot.toolkits.scalar.FlowSet other)
Specified by:
difference in interface soot.toolkits.scalar.FlowSet

intersection

public void intersection(soot.toolkits.scalar.FlowSet other,
                         soot.toolkits.scalar.FlowSet dest)
Specified by:
intersection in interface soot.toolkits.scalar.FlowSet

intersection

public void intersection(soot.toolkits.scalar.FlowSet other)
Specified by:
intersection in interface soot.toolkits.scalar.FlowSet

emptySet

public java.lang.Object emptySet()
Specified by:
emptySet in interface soot.toolkits.scalar.FlowSet

remove

public void remove(java.lang.Object obj,
                   soot.toolkits.scalar.FlowSet dest)
Specified by:
remove in interface soot.toolkits.scalar.FlowSet

remove

public void remove(java.lang.Object obj)
Specified by:
remove in interface soot.toolkits.scalar.FlowSet

removeKey

public void removeKey(java.lang.Object key)

iterator

public java.util.Iterator iterator()
Specified by:
iterator in interface soot.toolkits.scalar.FlowSet

toList

public java.util.List toList()
Specified by:
toList in interface soot.toolkits.scalar.FlowSet

union

public void union(soot.toolkits.scalar.FlowSet other,
                  soot.toolkits.scalar.FlowSet dest)
Walks through the other set and adds its elements to this set, writng the result into dest.

Specified by:
union in interface soot.toolkits.scalar.FlowSet

union

public void union(soot.toolkits.scalar.FlowSet other)
Specified by:
union in interface soot.toolkits.scalar.FlowSet

equals

public boolean equals(java.lang.Object second)
Compares based on the content regardless of order.

Overrides:
equals in class java.lang.Object

contains

public boolean contains(java.lang.Object obj)
Specified by:
contains in interface soot.toolkits.scalar.FlowSet

getMap

public java.util.HashMap getMap()

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

put

public java.lang.Object put(java.lang.Object key,
                            java.lang.Object value)

get

public java.lang.Object get(java.lang.Object key)

size

public int size()
Specified by:
size in interface soot.toolkits.scalar.FlowSet

keySet

public java.util.Set keySet()

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface soot.toolkits.scalar.FlowSet

clear

public void clear()
Clears the data flow set so it contains no entries.

Specified by:
clear in interface soot.toolkits.scalar.FlowSet

clone

public java.lang.Object clone()
Creates a shallow copy of this set.

Specified by:
clone in interface soot.toolkits.scalar.FlowSet
Overrides:
clone in class java.lang.Object