}
@SuppressWarnings("deprecation")
private static String getFieldInjectionExpression(JField field, String iocContainerVariable, Map<String, IocConfig<?>> configurations)
{
Inject inject = field.getAnnotation(Inject.class);
if (inject != null)
{
JType fieldType = field.getType();
if (!field.isStatic())
{
if (fieldType.isClassOrInterface() != null)
{
String fieldTypeName = fieldType.getQualifiedSourceName();
IocConfigImpl<?> iocConfig = (IocConfigImpl<?>) configurations.get(fieldTypeName);
if (iocConfig != null)
{
if (inject.scope().equals(org.cruxframework.crux.core.client.ioc.Inject.Scope.DEFAULT))
{
return iocContainerVariable+".get"+fieldTypeName.replace('.', '_')+
"("+Scope.class.getCanonicalName()+"."+iocConfig.getScope().name()+", null)";
}
return iocContainerVariable+".get"+fieldTypeName.replace('.', '_')+
"("+Scope.class.getCanonicalName()+"."+getScopeName(inject.scope())+", "+EscapeUtils.quote(inject.subscope())+")";
}
else
{
return "GWT.create("+fieldTypeName+".class)";
}