class OptionalProperty extends AbstractProperty<Optional<T>> implements ObservableOptional<T> {

  @NotNull
  @Override
  public final ObservableBool isPresent() {
    return new BooleanExpression(this) {
      @NotNull
      @Override
      public Boolean get() {
        return OptionalProperty.this.get().isPresent();
      }
    };
  }

}