com.sta.mutils.TetraConsumer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xtools Show documentation
Show all versions of xtools Show documentation
Executable tools for all projects.
package com.sta.mutils;
import java.util.Objects;
/**
* Name: TetraConsumer
* Description: Erweiterung von BiConsumer.
* @param the type of the first argument to the operation
* @param the type of the second argument to the operation
* @param the type of the third argument to the operation
* @param the type of the 4th argument to the operation
*
* Comment: ...
*
* Copyright: Copyright (c) 2020, 2021
* Company: >StA-Soft<
* @author StA
* @version 1.0
*/
@FunctionalInterface
public interface TetraConsumer
{
/**
* Performs this operation on the given arguments.
* @param t0 the first input argument
* @param t1 the second input argument
* @param t2 the third input argument
* @param t3 the 4th input argument
*/
void accept(T0 t0, T1 t1, T2 t2, T3 t3);
/**
* Returns a composed {@code TetraConsumer} that performs, in sequence, this
* operation followed by the {@code after} operation. If performing either
* operation throws an exception, it is relayed to the caller of the
* composed operation. If performing this operation throws an exception,
* the {@code after} operation will not be performed.
* @param after the operation to perform after this operation
* @return a composed {@code TetraConsumer} that performs in sequence this operation followed by the {@code after} operation
* @throws NullPointerException if {@code after} is null
*/
default TetraConsumer andThen(TetraConsumer super T0, ? super T1, ? super T2, ? super T3> after)
{
Objects.requireNonNull(after);
return (t0, t1, t2, t3) ->
{
accept(t0, t1, t2, t3);
after.accept(t0, t1, t2, t3);
};
}
}