mirror of
https://github.com/sigmasternchen/fibonacci
synced 2025-03-15 08:08:58 +00:00
32 lines
859 B
Java
32 lines
859 B
Java
package business;
|
|
|
|
import java.util.function.BiConsumer;
|
|
import java.util.function.Consumer;
|
|
|
|
public interface StatefulConsumer<S, T> extends Consumer<T> {
|
|
class StatefulConsumerImpl<S, T> implements StatefulConsumer<S, T> {
|
|
private S state;
|
|
private BiConsumer<S, T> consumer;
|
|
|
|
private StatefulConsumerImpl(S state, BiConsumer<S, T> consumer) {
|
|
this.state = state;
|
|
this.consumer = consumer;
|
|
}
|
|
|
|
@Override
|
|
public void accept(S state, T value) {
|
|
consumer.accept(state, value);
|
|
}
|
|
|
|
@Override
|
|
public void accept(T t) {
|
|
accept(state, t);
|
|
}
|
|
}
|
|
|
|
void accept(S state, T value);
|
|
|
|
static <S, T> StatefulConsumer<S, T> get(S state, BiConsumer<S, T> consumer) {
|
|
return new StatefulConsumerImpl<>(state, consumer);
|
|
}
|
|
}
|