mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-17 07:20:53 +07:00
25 lines
811 B
Java
25 lines
811 B
Java
import java.util.Comparator;
|
|
|
|
interface BaseStream<T> {}
|
|
interface Stream<T> extends BaseStream<T> {}
|
|
interface IntermediateOp<E_IN, E_OUT> extends StreamOp<E_IN, Node<E_OUT>> {}
|
|
interface StreamOp<E_IN, R> {}
|
|
interface StatefulOp<E_IN, E_OUT> extends IntermediateOp<E_IN, E_OUT> {}
|
|
interface TerminalOp<E_IN, R> extends StreamOp<E_IN, R> {}
|
|
|
|
interface Node<T> extends Iterable<T> {}
|
|
class SortedOp<T> implements StatefulOp<T, T> {
|
|
public SortedOp(Comparator<? super T> comparator) {
|
|
}
|
|
}
|
|
|
|
class Usage<Ts> {
|
|
public <E, S extends BaseStream<E>> S pipeline(IntermediateOp<Ts, E> newOp) { return null; }
|
|
public <R> R pipeline(TerminalOp<Ts, R> terminal) { return null;}
|
|
|
|
|
|
public Stream<Ts> sorted(Comparator<? super Ts> comparator) {
|
|
return pipeline(new SortedOp<>(comparator));
|
|
}
|
|
}
|