Primitive-Collections/src/main/resources/speiger/assets/collections/templates/functions/Consumer.template

47 lines
1.0 KiB
Plaintext

package speiger.src.collections.PACKAGE.functions;
import java.util.Objects;
import java.util.function.Consumer;
#if !TYPE_BOOLEAN
#if !JDK_CONSUMER
import speiger.src.collections.utils.SanityChecks;
#endif
public interface CONSUMER extends Consumer<CLASS_TYPE>, JAVA_CONSUMER
#else
public interface CONSUMER extends Consumer<CLASS_TYPE>
#endif
{
void accept(KEY_TYPE t);
#if !JDK_CONSUMER
@Override
default void accept(JAVA_TYPE t) { accept(SanityChecks.SANITY_CAST(t)); }
#endif
@Override
default void accept(CLASS_TYPE t) { accept(OBJ_TO_KEY(t)); }
@Deprecated
@Override
default CONSUMER andThen(Consumer<? super CLASS_TYPE> after) {
Objects.requireNonNull(after);
return T -> {accept(T); after.accept(KEY_TO_OBJ(T));};
}
#if PRIMITIVES
@Deprecated
@Override
default CONSUMER andThen(JAVA_CONSUMER after) {
Objects.requireNonNull(after);
return T -> {accept(T); after.accept(T);};
}
#endif
default CONSUMER andThen(CONSUMER after) {
Objects.requireNonNull(after);
return T -> {accept(T); after.accept(T);};
}
}