Class ValueNumber

java.lang.Object
edu.umd.cs.findbugs.ba.vna.ValueNumber
All Implemented Interfaces:
Comparable<ValueNumber>

public class ValueNumber extends Object implements Comparable<ValueNumber>

A "value number" is a value produced somewhere in a methods. We use value numbers as dataflow values in Frames. When two frame slots have the same value number, then the same value is in both of those slots.

Instances of ValueNumbers produced by the same ValueNumberFactory are unique, so reference equality may be used to determine whether or not two value numbers are the same. In general, ValueNumbers from different factories cannot be compared.

Author:
David Hovemeyer
See Also:
  • Field Details

  • Method Details

    • mergeFlags

      public static int mergeFlags(int flags1, int flags2)
    • createValueNumber

      public static ValueNumber createValueNumber(int number, int flags)
    • createValueNumber

      public static ValueNumber createValueNumber(int number)
    • getNumber

      public int getNumber()
    • getFlags

      public int getFlags()
    • hasFlag

      public boolean hasFlag(int flag)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • compareTo

      public int compareTo(ValueNumber other)
      Specified by:
      compareTo in interface Comparable<ValueNumber>