Package com.google.javascript.rhino.jstype

# Enum TernaryValue

java.lang.Object
java.lang.Enum<TernaryValue>
com.google.javascript.rhino.jstype.TernaryValue

All Implemented Interfaces:
  `Serializable`, `Comparable<TernaryValue>`, `java.lang.constant.Constable`

public enum TernaryValue extends Enum<TernaryValue>

An enum for ternary logic. The `TRUE` and `FALSE` values are equivalent to typical booleans, and the `UNKNOWN` value plays the role of a placeholder, which can be either `TRUE` or `FALSE`.

A ternary value expression evaluates to `TRUE` or `FALSE` only if all replacements of `UNKNOWN` in this expression yield the same result. Therefore, the ternary logic coincides with typical Boolean logic if the `UNKNOWN` value is not present in an expression.

See Also:
  - Ternary Logic

## Nested Class Summary

## Nested classes/interfaces inherited from class java.lang.Enum

`Enum.EnumDesc<E extends Enum<E>>`

## Enum Constant Summary

Enum Constants
Enum Constant
Description
`FALSE`
`false`
`TRUE`
`true`
`UNKNOWN`
`unknown`, it represents lack of knowledge about whether this value is `true` or `false`.

## Method Summary

Modifier and Type
Method
Description
`abstract TernaryValue`
`and(TernaryValue that)`
Gets the `and` of `this` and `that`.
`static TernaryValue`
`forBoolean(boolean val)`
Gets the TernaryValue for the given boolean.
`abstract TernaryValue`
`not()`
Gets the `not` of `this`.
`abstract TernaryValue`
`or(TernaryValue that)`
Gets the `or` of `this` and `that`.
`abstract boolean`
`toBoolean(boolean unknown)`
Converts `this` ternary value to boolean.
`static TernaryValue`
`valueOf(String name)`
Returns the enum constant of this type with the specified name.
`static TernaryValue[]`
`values()`
Returns an array containing the constants of this enum type, in the order they are declared.
`abstract TernaryValue`
`xor(TernaryValue that)`
Gets the `xor` of `this` and `that`.

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

`clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

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

`getClass, notify, notifyAll, wait, wait, wait`

## Enum Constant Details

### FALSE

public static final TernaryValue FALSE
`false`

### TRUE

public static final TernaryValue TRUE
`true`

### UNKNOWN

public static final TernaryValue UNKNOWN
`unknown`, it represents lack of knowledge about whether this value is `true` or `false`.

## Method Details

### values

public static TernaryValue[] values()
Returns an array containing the constants of this enum type, in the order they are declared.

Returns:
  an array containing the constants of this enum type, in the order they are declared

### valueOf

public static TernaryValue valueOf(String name)
Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Parameters:
  `name` - the name of the enum constant to be returned.
Returns:
  the enum constant with the specified name
Throws:
  `IllegalArgumentException` - if this enum type has no constant with the specified name
  `NullPointerException` - if the argument is null

### and

public abstract TernaryValue and(TernaryValue that)
Gets the `and` of `this` and `that`.

### not

public abstract TernaryValue not()
Gets the `not` of `this`.

### or

public abstract TernaryValue or(TernaryValue that)
Gets the `or` of `this` and `that`.

### xor

public abstract TernaryValue xor(TernaryValue that)
Gets the `xor` of `this` and `that`.

### toBoolean

public abstract boolean toBoolean(boolean unknown)
Converts `this` ternary value to boolean. The `#TRUE` and `#FALSE` values are simply converted to `true` and `false` respectively, whilst the `UNKNOWN` is converted to the specified `unknown` value.

Parameters:
  `unknown` - the boolean value to which the `UNKNOWN` value is converted
Returns:

      return
           this == TRUE ? true :
           this == FALSE ? false :
           unknown

### forBoolean

public static TernaryValue forBoolean(boolean val)
Gets the TernaryValue for the given boolean.