FindBugs™ 1.3.9

edu.umd.cs.findbugs.ba.deref
Class UnconditionalValueDerefSet

java.lang.Object
  extended by edu.umd.cs.findbugs.ba.deref.UnconditionalValueDerefSet

public class UnconditionalValueDerefSet
extends java.lang.Object

A set of values unconditionally dereferenced in the future.

Author:
David Hovemeyer

Constructor Summary
UnconditionalValueDerefSet(int numValueNumbersInMethod)
          Constructor.
 
Method Summary
 void addDeref(ValueNumber vn, Location location)
          Mark a value as being dereferenced at given Location.
 void cleanDerefSet(Location location, ValueNumberFrame vnaFrame)
           
 void clearDerefSet(ValueNumber value)
          Clear the set of dereferences for given ValueNumber
 int getLastUpdateTimestamp()
           
 java.util.Set<Location> getUnconditionalDerefLocationSet(ValueNumber vn)
          Get the set of Locations where given value is guaranteed to be dereferenced.
 java.util.Set<ValueNumber> getValueNumbersThatAreUnconditionallyDereferenced()
           
 boolean isBottom()
          Is this the bottom value?
 boolean isEmpty()
           
 boolean isSameAs(UnconditionalValueDerefSet otherFact)
          Return whether or not this dataflow fact is identical to the one given.
 boolean isTop()
          Is this the top value?
 boolean isUnconditionallyDereferenced(ValueNumber vn)
          Return whether or not the given value number is unconditionally dereferenced.
 void makeSameAs(UnconditionalValueDerefSet source)
          Make this dataflow fact the same as the given one.
 void mergeWith(UnconditionalValueDerefSet fact, ValueNumber skipMe, ValueNumberFactory valueNumberFactory)
          Merge given dataflow fact into this one.
 void retainOnlyTheseValueNumbers(java.util.Collection<ValueNumber> valueNumbers)
           
 void setDerefSet(ValueNumber vn, java.util.Set<Location> derefSet)
          Set a value as being unconditionally dereferenced at the given set of locations.
 void setIsBottom()
          Make this dataflow fact the bottom value.
 void setIsTop()
          Make this dataflow fact the top value.
 void setLastUpdateTimestamp(int lastUpdateTimestamp)
           
 java.lang.String toString()
           
 void unionWith(UnconditionalValueDerefSet fact, ValueNumberFactory valueNumberFactory)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UnconditionalValueDerefSet

public UnconditionalValueDerefSet(int numValueNumbersInMethod)
Constructor.

Parameters:
numValueNumbersInMethod - number of distinct value numbers in method
Method Detail

isBottom

public boolean isBottom()
Is this the bottom value?

Returns:
true if this is the bottom value, false otherwise

setIsBottom

public void setIsBottom()
Make this dataflow fact the bottom value.


isTop

public boolean isTop()
Is this the top value?

Returns:
true if this is the top value, false otherwise

setIsTop

public void setIsTop()
Make this dataflow fact the top value.


makeSameAs

public void makeSameAs(UnconditionalValueDerefSet source)
Make this dataflow fact the same as the given one.

Parameters:
source - another dataflow fact

isSameAs

public boolean isSameAs(UnconditionalValueDerefSet otherFact)
Return whether or not this dataflow fact is identical to the one given.

Parameters:
otherFact - another dataflow fact
Returns:
true if the other dataflow fact is identical to this one, false otherwise

mergeWith

public void mergeWith(UnconditionalValueDerefSet fact,
                      @CheckForNull
                      ValueNumber skipMe,
                      ValueNumberFactory valueNumberFactory)
Merge given dataflow fact into this one. We take the intersection of the unconditional deref value number set, and union the deref locations.

Parameters:
fact - another dataflow fact
skipMe - TODO

unionWith

public void unionWith(UnconditionalValueDerefSet fact,
                      ValueNumberFactory valueNumberFactory)

addDeref

public void addDeref(ValueNumber vn,
                     Location location)
Mark a value as being dereferenced at given Location.

Parameters:
vn - the value
location - the Location

setDerefSet

public void setDerefSet(ValueNumber vn,
                        java.util.Set<Location> derefSet)
Set a value as being unconditionally dereferenced at the given set of locations.

Parameters:
vn - the value
derefSet - the Set of dereference Locations

clearDerefSet

public void clearDerefSet(ValueNumber value)
Clear the set of dereferences for given ValueNumber

Parameters:
value - the ValueNumber

isUnconditionallyDereferenced

public boolean isUnconditionallyDereferenced(ValueNumber vn)
Return whether or not the given value number is unconditionally dereferenced.

Parameters:
vn - the value number
Returns:
true if the value is unconditionally dereferenced, false otherwise

getValueNumbersThatAreUnconditionallyDereferenced

public java.util.Set<ValueNumber> getValueNumbersThatAreUnconditionallyDereferenced()

retainOnlyTheseValueNumbers

public void retainOnlyTheseValueNumbers(java.util.Collection<ValueNumber> valueNumbers)

getUnconditionalDerefLocationSet

public java.util.Set<Location> getUnconditionalDerefLocationSet(ValueNumber vn)
Get the set of Locations where given value is guaranteed to be dereferenced. (I.e., if non-implicit-exception control paths are followed, one of these locations will be reached).

Parameters:
vn - the value
Returns:
set of Locations, one of which will definitely be reached if non-implicit-exception control paths are followed

toString

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

cleanDerefSet

public void cleanDerefSet(@CheckForNull
                          Location location,
                          ValueNumberFrame vnaFrame)
Parameters:
location -
vnaFrame -

setLastUpdateTimestamp

public void setLastUpdateTimestamp(int lastUpdateTimestamp)
Parameters:
lastUpdateTimestamp - The lastUpdateTimestamp to set.

getLastUpdateTimestamp

public int getLastUpdateTimestamp()
Returns:
Returns the lastUpdateTimestamp.

isEmpty

public boolean isEmpty()
Returns:
true if the set is empty

FindBugs™ 1.3.9

FindBugs™ is licenced under the LGPL. Copyright © 2006 University of Maryland.