
com.github.nill14.utils.init.binding.target.ProviderInstanceBindingTarget Maven / Gradle / Ivy
The newest version!
package com.github.nill14.utils.init.binding.target;
import javax.inject.Provider;
import com.github.nill14.utils.init.binding.impl.BindingTarget;
import com.github.nill14.utils.init.binding.impl.BindingTargetVisitor;
import com.github.nill14.utils.init.inject.ReflectionUtils;
import com.google.common.reflect.TypeToken;
public class ProviderInstanceBindingTarget implements BindingTarget {
private final Provider provider;
private final TypeToken token;
public ProviderInstanceBindingTarget(Provider provider) {
this.provider = provider;
token = ReflectionUtils.getProviderReturnTypeToken(provider);
}
public Provider getProvider() {
return provider;
}
@SuppressWarnings("unchecked")
public TypeToken> getProviderToken() {
return TypeToken.of((Class>)provider.getClass());
}
public TypeToken getToken() {
return token;
}
@Override
public R accept(BindingTargetVisitor bindingTargetVisitor) {
return bindingTargetVisitor.visit(this);
}
@Override
public String toString() {
return String.format("ProviderInstanceBindingTarget(%s)", provider);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy