![JAR search and dependency download from the Maven repository](/logo.png)
com.nntk.restplus.util.GenericBuilder Maven / Gradle / Ivy
package com.nntk.restplus.util;
import java.util.ArrayList;
import java.util.List;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Supplier;
public class GenericBuilder {
private final Supplier instantiator;
private List> instanceModifiers = new ArrayList<>();
public GenericBuilder(Supplier instantiator) {
this.instantiator = instantiator;
}
public static GenericBuilder of(Supplier instantiator) {
return new GenericBuilder(instantiator);
}
public GenericBuilder with(BiConsumer consumer, U value) {
Consumer c = instance -> consumer.accept(instance, value);
instanceModifiers.add(c);
return this;
}
public T build() {
T value = instantiator.get();
instanceModifiers.forEach(modifier -> modifier.accept(value));
instanceModifiers.clear();
return value;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy