org.sfm.reflect.impl.InjectConstructorInstantiator Maven / Gradle / Ivy
package org.sfm.reflect.impl;
import org.sfm.reflect.ConstructorDefinition;
import org.sfm.reflect.ConstructorParameter;
import org.sfm.reflect.Getter;
import org.sfm.reflect.Instantiator;
import java.util.Map;
public final class InjectConstructorInstantiator implements Instantiator {
private final ConstructorDefinition constructorDefinition;
private final ArgumentBuilder argBuilder;
public InjectConstructorInstantiator(ConstructorDefinition constructorDefinition, Map> injections) {
this.constructorDefinition = constructorDefinition;
this.argBuilder = new ArgumentBuilder(constructorDefinition, injections);
}
@Override
public T newInstance(S s) throws Exception {
return constructorDefinition.getConstructor().newInstance(argBuilder.build(s));
}
@Override
public String toString() {
return "InjectConstructorInstantiator{" +
"constructorDefinition=" + constructorDefinition +
'}';
}
}