Class IsNullConditionDecision

java.lang.Object
edu.umd.cs.findbugs.ba.npe.IsNullConditionDecision

public class IsNullConditionDecision extends Object
A control decision which resulted in information being gained about whether a particular value is null or non-null on the IFCMP_EDGE and FALL_THROUGH_EDGE branches.
See Also:
  • Field Details

    • value

      private final @Nullable ValueNumber value
    • ifcmpDecision

      private final @Nullable IsNullValue ifcmpDecision
    • fallThroughDecision

      private final @Nullable IsNullValue fallThroughDecision
  • Constructor Details

    • IsNullConditionDecision

      public IsNullConditionDecision(@Nullable ValueNumber value, @Nullable IsNullValue ifcmpDecision, @Nullable IsNullValue fallThroughDecision)
      Constructor.
      Parameters:
      value - the ValueNumber for which we have new information; null if no new information
      ifcmpDecision - the decision for the IFCMP_EDGE; null if that edge is not feasible
      fallThroughDecision - the decision for the FALL_THROUGH_EDGE; null if that edge is not feasible
  • Method Details

    • hashCode

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

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

      public ValueNumber getValue()
      Get the value about which the branch yields information.
    • isRedundant

      public boolean isRedundant()
      Determine whether or not the comparison is redundant.
    • isEdgeFeasible

      public boolean isEdgeFeasible(int edgeType)
      Determine whether or not the given edge is feasible. An edge may be infeasible if the comparison is redundant (i.e., can only be determined one way)
      Parameters:
      edgeType - the type of edge; must be IFCMP_EDGE or FALL_THROUGH_EDGE
      Returns:
      true if the edge is feasible, false if infeasible
    • getDecision

      public @Nullable IsNullValue getDecision(int edgeType)
      Get the decision reached about the value on outgoing edge of given type.
      Parameters:
      edgeType - the type of edge; must be IFCMP_EDGE or FALL_THROUGH_EDGE
      Returns:
      the IsNullValue representing the decision, or null if the edge is infeasible
    • toString

      public String toString()
      Overrides:
      toString in class Object