package org.fxmisc.easybind.select; import java.util.function.Function; import javafx.beans.value.ObservableValue; import org.fxmisc.easybind.monadic.MonadicBinding; interface ParentSelectedBuilder<T> extends SelectBuilder<T> { @Override default <U> SelectBuilder<U> select(Function<? super T, ObservableValue<U>> selector) { return new IntermediateSelectedBuilder<T, U>(this, selector); } @Override default <U> MonadicBinding<U> selectObject(Function<? super T, ObservableValue<U>> selector) { NestedSelectionElementFactory<T, U> leafSelectionFactory = onInvalidation -> { return new LeafSelectionElement<T, U>(onInvalidation, selector); }; return create(leafSelectionFactory); } <U> MonadicBinding<U> create(NestedSelectionElementFactory<T, U> nestedSelectionFactory); }