accrue.analysis.ctldep

## Class CDAbsVal

- java.lang.Object
- - polyglot.visit.DataFlow.Item
  - - accrue.analysis.ctldep.CDAbsVal

- All Implemented Interfaces:
    Ordered<CDAbsVal>, AbstractValue<CDAbsVal>, java.lang.Cloneable

      public class CDAbsVal
      extends polyglot.visit.DataFlow.Item
      implements AbstractValue<CDAbsVal>

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static CDAbsVal` | `BOTTOM`
    `protected java.util.Set<EdgeIdentifier>` | `controlDeps`
    `protected CDAbsVal` | `parent`
    `static CDAbsVal` | `STARTPROC`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CDAbsVal(CDAbsVal parent, EdgeIdentifier ctlDep)`
    `CDAbsVal(CDAbsVal parent, java.util.Set<EdgeIdentifier> controlDeps)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Set<EdgeIdentifier>` | `controlDeps()`
    `boolean` | `equals(java.lang.Object o)`
    `int` | `hashCode()`
    `boolean` | `isBottom()` An AbstractValue may indicate that it is the bottom element.
    `boolean` | `leq(CDAbsVal o)` Is the given object less than or equal to this one
    `CDAbsVal` | `popControlDeps()`
    `void` | `setParent(CDAbsVal parent)`
    `CDAbsVal` | `upperBound(CDAbsVal o)` Compute the upper bound of `this` and `o`
    `static CDAbsVal` | `upperBound(java.util.List<CDAbsVal> vals)`
    `CDAbsVal` | `widen(CDAbsVal o)` Compute the widening operator on `this` and `o`.

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

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

- - ### Field Detail

    - #### STARTPROC

          public static final CDAbsVal STARTPROC

    - #### BOTTOM

          public static final CDAbsVal BOTTOM

    - #### controlDeps

          protected final java.util.Set<EdgeIdentifier> controlDeps

    - #### parent

          protected CDAbsVal parent

  - ### Constructor Detail

    - #### CDAbsVal

          public CDAbsVal(CDAbsVal parent,
                  java.util.Set<EdgeIdentifier> controlDeps)

    - #### CDAbsVal

          public CDAbsVal(CDAbsVal parent,
                  EdgeIdentifier ctlDep)

  - ### Method Detail

    - #### setParent

          public void setParent(CDAbsVal parent)

    - #### isBottom

          public boolean isBottom()

      Description copied from interface: `AbstractValue`
      An AbstractValue may indicate that it is the bottom element. Note that the analysis monotonically increases abstract values, i.e., the bottom value is typically the initial, and most precise value.
      Specified by:
        `isBottom` in interface `AbstractValue<CDAbsVal>`
      Returns:

    - #### leq

          public boolean leq(CDAbsVal o)

      Description copied from interface: `Ordered`
      Is the given object less than or equal to this one
      Specified by:
        `leq` in interface `Ordered<CDAbsVal>`
      Parameters:
        `o` - object to compare to `this`
      Returns:
        true if this is less than or equal to `o`

    - #### upperBound

          public CDAbsVal upperBound(CDAbsVal o)

      Description copied from interface: `Ordered`
      Compute the upper bound of `this` and `o`
      Specified by:
        `upperBound` in interface `Ordered<CDAbsVal>`
      Parameters:
        `o` - object to upper bound with this
      Returns:
        the upper bound of `this` with `o`

    - #### widen

          public CDAbsVal widen(CDAbsVal o)

      Description copied from interface: `Ordered`
      Compute the widening operator on `this` and `o`. A widening operator is an upper bound where all ascending chains eventually stabilize.
      Specified by:
        `widen` in interface `Ordered<CDAbsVal>`
      Parameters:
        `o` - object to widen with `this`
      Returns:
        Widened upper bound of `this` and `o`

    - #### 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`

    - #### upperBound

          public static CDAbsVal upperBound(java.util.List<CDAbsVal> vals)

    - #### controlDeps

          public java.util.Set<EdgeIdentifier> controlDeps()

    - #### popControlDeps

          public CDAbsVal popControlDeps()