package ru.naumen.gintonic.utils;
import ru.naumen.gintonic.guice.injection.IInjectionPoint;
import ru.naumen.gintonic.guice.statements.BindingDefinition;
import ru.naumen.gintonic.guice.statements.LinkedBindingStatement;
/**
* @author Sergey Tselovalnikov
* @since Jan 27, 2014
*/
public final class BindingUtils {
private BindingUtils() {
}
public static String extractTypeName(IInjectionPoint injectionPoint, BindingDefinition bindingDefinition) {
String typeName = null;
if (bindingDefinition instanceof LinkedBindingStatement) {
LinkedBindingStatement binding = (LinkedBindingStatement) bindingDefinition;
typeName = binding.getImplType();
} else if (bindingDefinition != null) {
typeName = bindingDefinition.getBoundType();
}
if (typeName == null && injectionPoint.getTargetTypeBinding() != null) {
// Maybe class has not bindings, no annotation, but it injected and DI know about it
typeName = injectionPoint.getTargetTypeBinding().getQualifiedName();
}
return typeName;
}
}