com.oracle.truffle.api.utilities

## Class UnionAssumption

- java.lang.Object
- - com.oracle.truffle.api.utilities.UnionAssumption

All Implemented Interfaces:
  Assumption

    public class UnionAssumption
    extends java.lang.Object
    implements Assumption

An assumption that combines two other assumptions. A check on this assumption checks both of the child assumptions.

### Constructor Summary

Constructors
Constructor and Description
`UnionAssumption(Assumption first, Assumption second)`
`UnionAssumption(java.lang.String name, Assumption first, Assumption second)`

### Method Summary

Methods
`void` `check()` Checks that this assumption is still valid.
`java.lang.String` `getName()` A name for the assumption that is used for debug output.
`void` `invalidate()` Invalidates this assumption.
`boolean` `isValid()` Checks whether the assumption is still valid.

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

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

### Constructor Detail

#### UnionAssumption

    public UnionAssumption(java.lang.String name,
                   Assumption first,
                   Assumption second)

#### UnionAssumption

    public UnionAssumption(Assumption first,
                   Assumption second)

### Method Detail

#### check

    public void check()
               throws InvalidAssumptionException

Description copied from interface: `Assumption`
Checks that this assumption is still valid. The method throws an exception, if this is no longer the case. This method is preferred over the `Assumption.isValid()` method when writing guest language interpreter code. The catch block should perform a node rewrite (see `Node.replace(Node)`) with a node that no longer relies on the assumption.

Specified by:
  `check` in interface `Assumption`
Throws:
  `InvalidAssumptionException` - If the assumption is no longer valid.

#### invalidate

    public void invalidate()

Description copied from interface: `Assumption`
Invalidates this assumption. Performs no operation, if the assumption is already invalid.

Specified by:
  `invalidate` in interface `Assumption`

#### getName

    public java.lang.String getName()

Description copied from interface: `Assumption`
A name for the assumption that is used for debug output.

Specified by:
  `getName` in interface `Assumption`
Returns:
  the name of the assumption

#### isValid

    public boolean isValid()

Description copied from interface: `Assumption`
Checks whether the assumption is still valid.

Specified by:
  `isValid` in interface `Assumption`
Returns:
  a boolean value indicating the validity of the assumption