@Override
public <T> ComponentStrategy<T> create(Class<T> implementationType, Object qualifier, Scope scope) {
ComponentInjector<T> injector = injectorFactory.create(implementationType);
Instantiator<T> instantiator = instantiatorFactory.create(implementationType);
Scope theScope = metadataAdapter.getScope(implementationType);
if (theScope != null) {
if (!Scopes.SINGLETON.equals(scope)) {
throw new IllegalStateException("The class [" + implementationType.getName() + "] is annotated with a scope but also has a scope specified in a module. One approach must be chosen.");
}
} else {