# Class When

java.lang.Object
javafx.beans.binding.When

public class When extends Object
Starting point for a binding that calculates a ternary expression.

A ternary expression has the basic form `new When(cond).then(value1).otherwise(value2);`. The expression `cond` needs to be a `ObservableBooleanValue`. Based on the value of `cond`, the binding contains the value of `value1` (if `cond.getValue() == true`) or `value2` (if `cond.getValue() == false`). The values `value1` and `value2` have to be of the same type. They can be constant values or implementations of `ObservableValue`.

Since:
  JavaFX 2.0

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `class`
  `When.BooleanConditionBuilder`
  An intermediate class needed while assembling the ternary expression.
  `class`
  `When.NumberConditionBuilder`
  If-then-else expression returning a number.
  `class`
  `When.ObjectConditionBuilder<T>`
  An intermediate class needed while assembling the ternary expression.
  `class`
  `When.StringConditionBuilder`
  An intermediate class needed while assembling the ternary expression.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `When(ObservableBooleanValue condition)`
  The constructor of `When`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `When.BooleanConditionBuilder`
  `then(boolean thenValue)`
  Defines a constant value of the ternary expression, that is returned if the condition is `true`.
  `When.NumberConditionBuilder`
  `then(double thenValue)`
  Defines a constant value of the ternary expression, that is returned if the condition is `true`.
  `When.NumberConditionBuilder`
  `then(float thenValue)`
  Defines a constant value of the ternary expression, that is returned if the condition is `true`.
  `When.NumberConditionBuilder`
  `then(int thenValue)`
  Defines a constant value of the ternary expression, that is returned if the condition is `true`.
  `When.NumberConditionBuilder`
  `then(long thenValue)`
  Defines a constant value of the ternary expression, that is returned if the condition is `true`.
  `When.StringConditionBuilder`
  `then(String thenValue)`
  Defines a constant value of the ternary expression, that is returned if the condition is `true`.
  `When.BooleanConditionBuilder`
  `then(ObservableBooleanValue thenValue)`
  Defines the `ObservableBooleanValue` which value is returned by the ternary expression if the condition is `true`.
  `When.NumberConditionBuilder`
  `then(ObservableNumberValue thenValue)`
  Defines the `ObservableNumberValue` which value is returned by the ternary expression if the condition is `true`.
  `<T> When.ObjectConditionBuilder<T>`
  `then(ObservableObjectValue<T> thenValue)`
  Defines the `ObservableObjectValue` which value is returned by the ternary expression if the condition is `true`.
  `When.StringConditionBuilder`
  `then(ObservableStringValue thenValue)`
  Defines the `ObservableStringValue` which value is returned by the ternary expression if the condition is `true`.
  `<T> When.ObjectConditionBuilder<T>`
  `then(T thenValue)`
  Defines a constant value of the ternary expression, that is returned if the condition is `true`.

  ### Methods declared in class java.lang.Object

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

- ## Constructor Details

  - ### When

    public When(ObservableBooleanValue condition)
    The constructor of `When`.
    Parameters:
      `condition` - the condition of the ternary expression

- ## Method Details

  - ### then

    public When.NumberConditionBuilder then(ObservableNumberValue thenValue)
    Defines the `ObservableNumberValue` which value is returned by the ternary expression if the condition is `true`.
    Parameters:
      `thenValue` - the value
    Returns:
      the intermediate result which still requires the otherwise-branch

  - ### then

    public When.NumberConditionBuilder then(double thenValue)
    Defines a constant value of the ternary expression, that is returned if the condition is `true`.
    Parameters:
      `thenValue` - the value
    Returns:
      the intermediate result which still requires the otherwise-branch

  - ### then

    public When.NumberConditionBuilder then(float thenValue)
    Defines a constant value of the ternary expression, that is returned if the condition is `true`.
    Parameters:
      `thenValue` - the value
    Returns:
      the intermediate result which still requires the otherwise-branch

  - ### then

    public When.NumberConditionBuilder then(long thenValue)
    Defines a constant value of the ternary expression, that is returned if the condition is `true`.
    Parameters:
      `thenValue` - the value
    Returns:
      the intermediate result which still requires the otherwise-branch

  - ### then

    public When.NumberConditionBuilder then(int thenValue)
    Defines a constant value of the ternary expression, that is returned if the condition is `true`.
    Parameters:
      `thenValue` - the value
    Returns:
      the intermediate result which still requires the otherwise-branch

  - ### then

    public When.BooleanConditionBuilder then(ObservableBooleanValue thenValue)
    Defines the `ObservableBooleanValue` which value is returned by the ternary expression if the condition is `true`.
    Parameters:
      `thenValue` - the value
    Returns:
      the intermediate result which still requires the otherwise-branch

  - ### then

    public When.BooleanConditionBuilder then(boolean thenValue)
    Defines a constant value of the ternary expression, that is returned if the condition is `true`.
    Parameters:
      `thenValue` - the value
    Returns:
      the intermediate result which still requires the otherwise-branch

  - ### then

    public When.StringConditionBuilder then(ObservableStringValue thenValue)
    Defines the `ObservableStringValue` which value is returned by the ternary expression if the condition is `true`.
    Parameters:
      `thenValue` - the value
    Returns:
      the intermediate result which still requires the otherwise-branch

  - ### then

    public When.StringConditionBuilder then(String thenValue)
    Defines a constant value of the ternary expression, that is returned if the condition is `true`.
    Parameters:
      `thenValue` - the value
    Returns:
      the intermediate result which still requires the otherwise-branch

  - ### then

    public <T> When.ObjectConditionBuilder<T> then(ObservableObjectValue<T> thenValue)
    Defines the `ObservableObjectValue` which value is returned by the ternary expression if the condition is `true`.
    Type Parameters:
      `T` - the type of the intermediate result
    Parameters:
      `thenValue` - the value
    Returns:
      the intermediate result which still requires the otherwise-branch

  - ### then

    public <T> When.ObjectConditionBuilder<T> then(T thenValue)
    Defines a constant value of the ternary expression, that is returned if the condition is `true`.
    Type Parameters:
      `T` - the type of the intermediate result
    Parameters:
      `thenValue` - the value
    Returns:
      the intermediate result which still requires the otherwise-branch