if ((localBindingImpl == null) || (!localBindingImpl.isConstant()))
return null;
String str = (String)localBindingImpl.getProvider().get();
Object localObject1 = localBindingImpl.getSource();
TypeLiteral localTypeLiteral = paramKey.getTypeLiteral();
TypeConverterBinding localTypeConverterBinding = this.state.getConverter(str, localTypeLiteral, paramErrors, localObject1);
if (localTypeConverterBinding == null)
return null;
try
{
Object localObject2 = localTypeConverterBinding.getTypeConverter().convert(str, localTypeLiteral);
if (localObject2 == null)
throw paramErrors.converterReturnedNull(str, localObject1, localTypeLiteral, localTypeConverterBinding).toException();
if (!localTypeLiteral.getRawType().isInstance(localObject2))
throw paramErrors.conversionTypeError(str, localObject1, localTypeLiteral, localTypeConverterBinding, localObject2).toException();
return new ConvertedConstantBindingImpl(this, paramKey, localObject2, localBindingImpl, localTypeConverterBinding);