package com.revolsys.util;
import java.util.Iterator;
import java.util.function.Predicate;
public interface CancellableProxy {
default <V> Iterable<V> cancellable(final Iterable<V> iterable) {
final Cancellable cancellable = getCancellable();
if (cancellable == null) {
return iterable;
} else {
return cancellable.cancellable(iterable);
}
}
default <V> Iterable<V> cancellable(final Iterable<V> iterable, final Predicate<V> filter) {
final Cancellable cancellable = getCancellable();
if (cancellable == null) {
return iterable;
} else {
return cancellable.cancellable(iterable, filter);
}
}
default <V> Iterator<V> cancellable(final Iterator<V> iterator) {
final Cancellable cancellable = getCancellable();
if (cancellable == null) {
return iterator;
} else {
return cancellable.cancellable(iterator);
}
}
default <V> Iterator<V> cancellable(final Iterator<V> iterator, final Predicate<V> filter) {
final Cancellable cancellable = getCancellable();
if (cancellable == null) {
return iterator;
} else {
return cancellable.cancellable(iterator, filter);
}
}
Cancellable getCancellable();
default boolean isCancelled() {
final Cancellable cancellable = getCancellable();
if (cancellable == null) {
return false;
} else {
return cancellable.isCancelled();
}
}
}