# Class LongExpression

java.lang.Object
javafx.beans.binding.NumberExpressionBase
javafx.beans.binding.LongExpression

All Implemented Interfaces:
  `NumberExpression`, `Observable`, `ObservableLongValue`, `ObservableNumberValue`, `ObservableValue<Number>`

Direct Known Subclasses:
  `LongBinding`, `ReadOnlyLongProperty`

public abstract class LongExpression extends NumberExpressionBase implements ObservableLongValue
`LongExpression` is an `ObservableLongValue` plus additional convenience methods to generate bindings in a fluent style.

A concrete sub-class of `LongExpression` has to implement the method `ObservableLongValue.get()`, which provides the actual value of this expression.

Since:
  JavaFX 2.0

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `LongExpression()`
  Creates a default `LongExpression`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `DoubleBinding`
  `add(double other)`
  Creates a new `NumberBinding` that calculates the sum of this `NumberExpression` and a constant value.
  `FloatBinding`
  `add(float other)`
  Creates a new `NumberBinding` that calculates the sum of this `NumberExpression` and a constant value.
  `LongBinding`
  `add(int other)`
  Creates a new `NumberBinding` that calculates the sum of this `NumberExpression` and a constant value.
  `LongBinding`
  `add(long other)`
  Creates a new `NumberBinding` that calculates the sum of this `NumberExpression` and a constant value.
  `ObjectExpression<Long>`
  `asObject()`
  Creates an `ObjectExpression` that holds the value of this `LongExpression`.
  `DoubleBinding`
  `divide(double other)`
  Creates a new `NumberBinding` that calculates the division of this `NumberExpression` and a constant value.
  `FloatBinding`
  `divide(float other)`
  Creates a new `NumberBinding` that calculates the division of this `NumberExpression` and a constant value.
  `LongBinding`
  `divide(int other)`
  Creates a new `NumberBinding` that calculates the division of this `NumberExpression` and a constant value.
  `LongBinding`
  `divide(long other)`
  Creates a new `NumberBinding` that calculates the division of this `NumberExpression` and a constant value.
  `double`
  `doubleValue()`
  Returns the value of this `ObservableNumberValue` as a `double`.
  `float`
  `floatValue()`
  Returns the value of this `ObservableNumberValue` as a `float`.
  `Long`
  `getValue()`
  Returns the current value of this `ObservableValue`
  `int`
  `intValue()`
  Returns the value of this `ObservableNumberValue` as an `int` .
  `static LongExpression`
  `longExpression(ObservableLongValue value)`
  Returns a `LongExpression` that wraps a `ObservableLongValue`.
  `static <T extends Number>
  LongExpression`
  `longExpression(ObservableValue<T> value)`
  Returns a `LongExpression` that wraps an `ObservableValue`.
  `long`
  `longValue()`
  Returns the value of this `ObservableNumberValue` as a `long` .
  `DoubleBinding`
  `multiply(double other)`
  Creates a new `NumberBinding` that calculates the product of this `NumberExpression` and a constant value.
  `FloatBinding`
  `multiply(float other)`
  Creates a new `NumberBinding` that calculates the product of this `NumberExpression` and a constant value.
  `LongBinding`
  `multiply(int other)`
  Creates a new `NumberBinding` that calculates the product of this `NumberExpression` and a constant value.
  `LongBinding`
  `multiply(long other)`
  Creates a new `NumberBinding` that calculates the product of this `NumberExpression` and a constant value.
  `LongBinding`
  `negate()`
  Creates a new `NumberBinding` that calculates the negation of `NumberExpression`.
  `DoubleBinding`
  `subtract(double other)`
  Creates a new `NumberBinding` that calculates the difference of this `NumberExpression` and a constant value.
  `FloatBinding`
  `subtract(float other)`
  Creates a new `NumberBinding` that calculates the difference of this `NumberExpression` and a constant value.
  `LongBinding`
  `subtract(int other)`
  Creates a new `NumberBinding` that calculates the difference of this `NumberExpression` and a constant value.
  `LongBinding`
  `subtract(long other)`
  Creates a new `NumberBinding` that calculates the difference of this `NumberExpression` and a constant value.

  ### Methods declared in class javafx.beans.binding.NumberExpressionBase

  `add, asString, asString, asString, divide, greaterThan, greaterThan, greaterThan, greaterThan, greaterThan, greaterThanOrEqualTo, greaterThanOrEqualTo, greaterThanOrEqualTo, greaterThanOrEqualTo, greaterThanOrEqualTo, isEqualTo, isEqualTo, isEqualTo, isEqualTo, isEqualTo, isEqualTo, isEqualTo, isEqualTo, isNotEqualTo, isNotEqualTo, isNotEqualTo, isNotEqualTo, isNotEqualTo, isNotEqualTo, isNotEqualTo, isNotEqualTo, lessThan, lessThan, lessThan, lessThan, lessThan, lessThanOrEqualTo, lessThanOrEqualTo, lessThanOrEqualTo, lessThanOrEqualTo, lessThanOrEqualTo, multiply, numberExpression, subtract`

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

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

  ### Methods declared in interface javafx.beans.Observable

  `addListener, removeListener, subscribe`

  ### Methods declared in interface javafx.beans.value.ObservableLongValue

  `get`

  ### Methods declared in interface javafx.beans.value.ObservableValue

  `addListener, flatMap, map, orElse, removeListener, subscribe, subscribe, when`

- ## Constructor Details

  - ### LongExpression

    public LongExpression()
    Creates a default `LongExpression`.

- ## Method Details

  - ### intValue

    public int intValue()
    Description copied from interface: `ObservableNumberValue`
    Returns the value of this `ObservableNumberValue` as an `int` . If the value is not an `int`, a standard cast is performed.
    Specified by:
      `intValue` in interface `ObservableNumberValue`
    Returns:
      The value of this `ObservableNumberValue` as an `int`

  - ### longValue

    public long longValue()
    Description copied from interface: `ObservableNumberValue`
    Returns the value of this `ObservableNumberValue` as a `long` . If the value is not a `long`, a standard cast is performed.
    Specified by:
      `longValue` in interface `ObservableNumberValue`
    Returns:
      The value of this `ObservableNumberValue` as a `long`

  - ### floatValue

    public float floatValue()
    Description copied from interface: `ObservableNumberValue`
    Returns the value of this `ObservableNumberValue` as a `float`. If the value is not a `float`, a standard cast is performed.
    Specified by:
      `floatValue` in interface `ObservableNumberValue`
    Returns:
      The value of this `ObservableNumberValue` as a `float`

  - ### doubleValue

    public double doubleValue()
    Description copied from interface: `ObservableNumberValue`
    Returns the value of this `ObservableNumberValue` as a `double`. If the value is not a `double`, a standard cast is performed.
    Specified by:
      `doubleValue` in interface `ObservableNumberValue`
    Returns:
      The value of this `ObservableNumberValue` as a `double`

  - ### getValue

    public Long getValue()
    Description copied from interface: `ObservableValue`
    Returns the current value of this `ObservableValue`
    Specified by:
      `getValue` in interface `ObservableValue<Number>`
    Returns:
      The current value

  - ### longExpression

    public static LongExpression longExpression(ObservableLongValue value)
    Returns a `LongExpression` that wraps a `ObservableLongValue`. If the `ObservableLongValue` is already a `LongExpression`, it will be returned. Otherwise a new `LongBinding` is created that is bound to the `ObservableLongValue`.
    Parameters:
      `value` - The source `ObservableLongValue`
    Returns:
      A `LongExpression` that wraps the `ObservableLongValue` if necessary
    Throws:
      `NullPointerException` - if `value` is `null`

  - ### longExpression

    public static <T extends Number> LongExpression longExpression(ObservableValue<T> value)
    Returns a `LongExpression` that wraps an `ObservableValue`. If the `ObservableValue` is already a `LongExpression`, it will be returned. Otherwise a new `LongBinding` is created that is bound to the `ObservableValue`.

    Note: this method can be used to convert an `ObjectExpression` or `ObjectProperty` of specific number type to LongExpression, which is essentially an `ObservableValue<Number>`. See sample below.

    >        LongProperty longProperty = new SimpleLongProperty(1L);
    >        ObjectProperty<Long> objectProperty = new SimpleObjectProperty<>(2L);
    >        BooleanBinding binding = longProperty.greaterThan(LongExpression.longExpression(objectProperty));

    Note: null values will be interpreted as 0L
    Type Parameters:
      `T` - The type of Number to be wrapped
    Parameters:
      `value` - The source `ObservableValue`
    Returns:
      A `LongExpression` that wraps the `ObservableValue` if necessary
    Throws:
      `NullPointerException` - if `value` is `null`
    Since:
      JavaFX 8.0

  - ### negate

    public LongBinding negate()
    Description copied from interface: `NumberExpression`
    Creates a new `NumberBinding` that calculates the negation of `NumberExpression`.
    Specified by:
      `negate` in interface `NumberExpression`
    Returns:
      the new `NumberBinding`

  - ### add

    public DoubleBinding add(double other)
    Description copied from interface: `NumberExpression`
    Creates a new `NumberBinding` that calculates the sum of this `NumberExpression` and a constant value.
    Specified by:
      `add` in interface `NumberExpression`
    Parameters:
      `other` - the constant value
    Returns:
      the new `NumberBinding`

  - ### add

    public FloatBinding add(float other)
    Description copied from interface: `NumberExpression`
    Creates a new `NumberBinding` that calculates the sum of this `NumberExpression` and a constant value.
    Specified by:
      `add` in interface `NumberExpression`
    Parameters:
      `other` - the constant value
    Returns:
      the new `NumberBinding`

  - ### add

    public LongBinding add(long other)
    Description copied from interface: `NumberExpression`
    Creates a new `NumberBinding` that calculates the sum of this `NumberExpression` and a constant value.
    Specified by:
      `add` in interface `NumberExpression`
    Parameters:
      `other` - the constant value
    Returns:
      the new `NumberBinding`

  - ### add

    public LongBinding add(int other)
    Description copied from interface: `NumberExpression`
    Creates a new `NumberBinding` that calculates the sum of this `NumberExpression` and a constant value.
    Specified by:
      `add` in interface `NumberExpression`
    Parameters:
      `other` - the constant value
    Returns:
      the new `NumberBinding`

  - ### subtract

    public DoubleBinding subtract(double other)
    Description copied from interface: `NumberExpression`
    Creates a new `NumberBinding` that calculates the difference of this `NumberExpression` and a constant value.
    Specified by:
      `subtract` in interface `NumberExpression`
    Parameters:
      `other` - the constant value
    Returns:
      the new `NumberBinding`

  - ### subtract

    public FloatBinding subtract(float other)
    Description copied from interface: `NumberExpression`
    Creates a new `NumberBinding` that calculates the difference of this `NumberExpression` and a constant value.
    Specified by:
      `subtract` in interface `NumberExpression`
    Parameters:
      `other` - the constant value
    Returns:
      the new `NumberBinding`

  - ### subtract

    public LongBinding subtract(long other)
    Description copied from interface: `NumberExpression`
    Creates a new `NumberBinding` that calculates the difference of this `NumberExpression` and a constant value.
    Specified by:
      `subtract` in interface `NumberExpression`
    Parameters:
      `other` - the constant value
    Returns:
      the new `NumberBinding`

  - ### subtract

    public LongBinding subtract(int other)
    Description copied from interface: `NumberExpression`
    Creates a new `NumberBinding` that calculates the difference of this `NumberExpression` and a constant value.
    Specified by:
      `subtract` in interface `NumberExpression`
    Parameters:
      `other` - the constant value
    Returns:
      the new `NumberBinding`

  - ### multiply

    public DoubleBinding multiply(double other)
    Description copied from interface: `NumberExpression`
    Creates a new `NumberBinding` that calculates the product of this `NumberExpression` and a constant value.
    Specified by:
      `multiply` in interface `NumberExpression`
    Parameters:
      `other` - the constant value
    Returns:
      the new `NumberBinding`

  - ### multiply

    public FloatBinding multiply(float other)
    Description copied from interface: `NumberExpression`
    Creates a new `NumberBinding` that calculates the product of this `NumberExpression` and a constant value.
    Specified by:
      `multiply` in interface `NumberExpression`
    Parameters:
      `other` - the constant value
    Returns:
      the new `NumberBinding`

  - ### multiply

    public LongBinding multiply(long other)
    Description copied from interface: `NumberExpression`
    Creates a new `NumberBinding` that calculates the product of this `NumberExpression` and a constant value.
    Specified by:
      `multiply` in interface `NumberExpression`
    Parameters:
      `other` - the constant value
    Returns:
      the new `NumberBinding`

  - ### multiply

    public LongBinding multiply(int other)
    Description copied from interface: `NumberExpression`
    Creates a new `NumberBinding` that calculates the product of this `NumberExpression` and a constant value.
    Specified by:
      `multiply` in interface `NumberExpression`
    Parameters:
      `other` - the constant value
    Returns:
      the new `NumberBinding`

  - ### divide

    public DoubleBinding divide(double other)
    Description copied from interface: `NumberExpression`
    Creates a new `NumberBinding` that calculates the division of this `NumberExpression` and a constant value.
    Specified by:
      `divide` in interface `NumberExpression`
    Parameters:
      `other` - the constant value
    Returns:
      the new `NumberBinding`

  - ### divide

    public FloatBinding divide(float other)
    Description copied from interface: `NumberExpression`
    Creates a new `NumberBinding` that calculates the division of this `NumberExpression` and a constant value.
    Specified by:
      `divide` in interface `NumberExpression`
    Parameters:
      `other` - the constant value
    Returns:
      the new `NumberBinding`

  - ### divide

    public LongBinding divide(long other)
    Description copied from interface: `NumberExpression`
    Creates a new `NumberBinding` that calculates the division of this `NumberExpression` and a constant value.
    Specified by:
      `divide` in interface `NumberExpression`
    Parameters:
      `other` - the constant value
    Returns:
      the new `NumberBinding`

  - ### divide

    public LongBinding divide(int other)
    Description copied from interface: `NumberExpression`
    Creates a new `NumberBinding` that calculates the division of this `NumberExpression` and a constant value.
    Specified by:
      `divide` in interface `NumberExpression`
    Parameters:
      `other` - the constant value
    Returns:
      the new `NumberBinding`

  - ### asObject

    public ObjectExpression<Long> asObject()
    Creates an `ObjectExpression` that holds the value of this `LongExpression`. If the value of this `LongExpression` changes, the value of the `ObjectExpression` will be updated automatically.
    Returns:
      the new `ObjectExpression`
    Since:
      JavaFX 8.0