wtf.metio.memoization.jool.Consumer13Memoizer Maven / Gradle / Ivy
The newest version!
/*
* SPDX-FileCopyrightText: The memoization.java Authors
* SPDX-License-Identifier: 0BSD
*/
package wtf.metio.memoization.jool;
import org.jooq.lambda.function.Consumer13;
import org.jooq.lambda.function.Function13;
import wtf.metio.memoization.core.AbstractMemoizer;
import java.util.concurrent.ConcurrentMap;
import static java.util.Objects.requireNonNull;
final class Consumer13Memoizer
extends AbstractMemoizer
implements Consumer13 {
private final Function13 keyFunction;
private final Consumer13 consumer;
Consumer13Memoizer(
final ConcurrentMap cache,
final Function13 keyFunction,
final Consumer13 consumer) {
super(cache);
this.keyFunction = requireNonNull(keyFunction, "Provide a key function.");
this.consumer = requireNonNull(consumer,
"Cannot memoize a NULL Consumer13 - provide an actual Consumer13 to fix this.");
}
@Override
public void accept(final TYPE1 v1, final TYPE2 v2, final TYPE3 v3, final TYPE4 v4, final TYPE5 v5, final TYPE6 v6, final TYPE7 v7, final TYPE8 v8, final TYPE9 v9, final TYPE10 v10, final TYPE11 v11, final TYPE12 v12, final TYPE13 v13) {
computeIfAbsent(keyFunction.apply(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13), key -> {
consumer.accept(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13);
return key;
});
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy