jif.visit

## Class IntegerBoundsChecker.DataFlowItem

- java.lang.Object
- - polyglot.visit.DataFlow.Item
  - - jif.visit.IntegerBoundsChecker.DataFlowItem

- Enclosing class:
    IntegerBoundsChecker

      protected static class IntegerBoundsChecker.DataFlowItem
      extends polyglot.visit.DataFlow.Item

  The items that this dataflow analysis operates on is essetially a set of integer constraints. There is a Map from LocalInstances (of type int) to a set of lower bounds.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.util.Map<polyglot.types.LocalInstance,IntegerBoundsChecker.Bounds>` | `bounds` map from LocalInstances (of type int) a set of lower bounds.

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `` | `DataFlowItem()`
    `` | `DataFlowItem(IntegerBoundsChecker.DataFlowItem d)`
    `protected` | `DataFlowItem(java.util.Map<polyglot.types.LocalInstance,IntegerBoundsChecker.Bounds> bounds)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(java.lang.Object o)`
    `int` | `hashCode()`
    `java.lang.String` | `toString()`
    `IntegerBoundsChecker.DataFlowItem` | `update(java.util.Map<polyglot.types.LocalInstance,IntegerBoundsChecker.Bounds> updates, polyglot.types.LocalInstance increased, polyglot.types.LocalInstance decreased)` Produce a new DataFlowItem that is updated with the updates.

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### bounds

          protected final java.util.Map<polyglot.types.LocalInstance,IntegerBoundsChecker.Bounds> bounds

      map from LocalInstances (of type int) a set of lower bounds. Elements in the set are either Number or LocalInstances

  - ### Constructor Detail

    - #### DataFlowItem

          public DataFlowItem()

    - #### DataFlowItem

          protected DataFlowItem(java.util.Map<polyglot.types.LocalInstance,IntegerBoundsChecker.Bounds> bounds)

    - #### DataFlowItem

          public DataFlowItem(IntegerBoundsChecker.DataFlowItem d)

  - ### Method Detail

    - #### equals

          public boolean equals(java.lang.Object o)

      Specified by:
        `equals` in class `polyglot.visit.DataFlow.Item`

    - #### hashCode

          public int hashCode()

      Specified by:
        `hashCode` in class `polyglot.visit.DataFlow.Item`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### update

          public IntegerBoundsChecker.DataFlowItem update(java.util.Map<polyglot.types.LocalInstance,IntegerBoundsChecker.Bounds> updates,
                                                          polyglot.types.LocalInstance increased,
                                                          polyglot.types.LocalInstance decreased)

      Produce a new DataFlowItem that is updated with the updates. In particular, the bounds in updates are known to be true. If a LocalInstance has changed, it can be specified as increased, decreased, or both. If increased is true, then it means that the value for the local instance may have increased; similarly, if decreased is true, it means that the value of the local instance may have decreased.