@Override
public Injectable<Object> getInjectable(ComponentContext cc, Inject a, Type t) {
if (!(t instanceof Class))
return null;
final ResourceComponentProvider rcp = getResourceComponentProvider(cc, (Class)t);
return new Injectable<Object>() {
@Override
public Object getValue() {
return rcp.getInstance(context);
}
};
}
});
injectableFactory.add(
new InjectableProvider<Inject, Type>() {
@Override
public ComponentScope getScope() {
return ComponentScope.Undefined;
}
@Override
public Injectable<Object> getInjectable(ComponentContext cc, Inject a, Type t) {
if (!(t instanceof Class))
return null;
final ResourceComponentProvider rcp = getResourceComponentProvider(cc, (Class)t);
if (rcp.getScope() == ComponentScope.PerRequest)
return null;
return new Injectable<Object>() {
@Override
public Object getValue() {
return rcp.getInstance(context);
}
};
}
});
injectableFactory.add(
new InjectableProvider<Inject, Type>() {
@Override
public ComponentScope getScope() {
return ComponentScope.Singleton;
}
@Override
public Injectable<Object> getInjectable(ComponentContext cc, Inject a, Type t) {
if (!(t instanceof Class))
return null;
final ResourceComponentProvider rcp = getResourceComponentProvider(cc, (Class)t);
if (rcp.getScope() != ComponentScope.Singleton)
return null;
return new Injectable<Object>() {
@Override
public Object getValue() {
return rcp.getInstance(context);
}
};
}
});
// Add injectable provider for @ResourceRef
injectableFactory.add(
new InjectableProvider<InjectParam, Type>() {
@Override
public ComponentScope getScope() {
return ComponentScope.PerRequest;
}
@Override
public Injectable<Object> getInjectable(ComponentContext cc, InjectParam a, Type t) {
if (!(t instanceof Class))
return null;
final ResourceComponentProvider rcp = getResourceComponentProvider(cc, (Class)t);
return new Injectable<Object>() {
@Override
public Object getValue() {
return rcp.getInstance(context);
}
};
}
});
injectableFactory.add(
new InjectableProvider<InjectParam, Type>() {
@Override
public ComponentScope getScope() {
return ComponentScope.Undefined;
}
@Override
public Injectable<Object> getInjectable(ComponentContext cc, InjectParam a, Type t) {
if (!(t instanceof Class))
return null;
final ResourceComponentProvider rcp = getResourceComponentProvider(cc, (Class)t);
if (rcp.getScope() == ComponentScope.PerRequest)
return null;
return new Injectable<Object>() {
@Override
public Object getValue() {
return rcp.getInstance(context);
}
};
}
});
injectableFactory.add(
new InjectableProvider<InjectParam, Type>() {
@Override
public ComponentScope getScope() {
return ComponentScope.Singleton;
}
@Override
public Injectable<Object> getInjectable(ComponentContext cc, InjectParam a, Type t) {
if (!(t instanceof Class))
return null;
final ResourceComponentProvider rcp = getResourceComponentProvider(cc, (Class)t);
if (rcp.getScope() != ComponentScope.Singleton)
return null;
return new Injectable<Object>() {
@Override
public Object getValue() {
return rcp.getInstance(context);
}
};
}
});