@SuppressWarnings("unchecked") private <T> Binder createClassBinders(Class<T> clazz, boolean isResource) { final Class<? extends Annotation> scope = getProviderScope(clazz); if (isResource) { return new AbstractBinder() { @Override protected void configure() { ClassBinding<T> descriptor = bindAsContract(clazz).in(scope); for (Class contract : Providers.getProviderContracts(clazz)) { descriptor.addAlias(contract) .in(scope.getName()) .qualifiedBy(CustomAnnotationLiteral.INSTANCE); } } }; } else { return new AbstractBinder() { @Override protected void configure() { ClassBinding<T> builder = bind(clazz).in(scope).qualifiedBy(CustomAnnotationLiteral.INSTANCE); Providers.getProviderContracts(clazz).forEach(contract -> builder.to((Class<? super T>) contract)); } }; } }
@SuppressWarnings("unchecked") private <T> Binder createClassBinders(Class<T> clazz, boolean isResource) { final Class<? extends Annotation> scope = getProviderScope(clazz); if (isResource) { return new AbstractBinder() { @Override protected void configure() { ClassBinding<T> descriptor = bindAsContract(clazz).in(scope); for (Class contract : Providers.getProviderContracts(clazz)) { descriptor.addAlias(contract) .in(scope.getName()) .qualifiedBy(CustomAnnotationLiteral.INSTANCE); } } }; } else { return new AbstractBinder() { @Override protected void configure() { ClassBinding<T> builder = bind(clazz).in(scope).qualifiedBy(CustomAnnotationLiteral.INSTANCE); Providers.getProviderContracts(clazz).forEach(contract -> builder.to((Class<? super T>) contract)); } }; } }
@SuppressWarnings("unchecked") private <T> Binder createClassBinders(Class<T> clazz, boolean isResource) { final Class<? extends Annotation> scope = getProviderScope(clazz); if (isResource) { return new AbstractBinder() { @Override protected void configure() { ClassBinding<T> descriptor = bindAsContract(clazz).in(scope); for (Class contract : Providers.getProviderContracts(clazz)) { descriptor.addAlias(contract) .in(scope.getName()) .qualifiedBy(CustomAnnotationLiteral.INSTANCE); } } }; } else { return new AbstractBinder() { @Override protected void configure() { ClassBinding<T> builder = bind(clazz).in(scope).qualifiedBy(CustomAnnotationLiteral.INSTANCE); Providers.getProviderContracts(clazz).forEach(contract -> builder.to((Class<? super T>) contract)); } }; } }
@SuppressWarnings("unchecked") private <T> Binder createClassBinders(Class<T> clazz, boolean isResource) { final Class<? extends Annotation> scope = getProviderScope(clazz); if (isResource) { return new AbstractBinder() { @Override protected void configure() { ClassBinding<T> descriptor = bindAsContract(clazz).in(scope); for (Class contract : Providers.getProviderContracts(clazz)) { descriptor.addAlias(contract) .in(scope.getName()) .qualifiedBy(CustomAnnotationLiteral.INSTANCE); } } }; } else { return new AbstractBinder() { @Override protected void configure() { ClassBinding<T> builder = bind(clazz).in(scope).qualifiedBy(CustomAnnotationLiteral.INSTANCE); Providers.getProviderContracts(clazz).forEach(contract -> builder.to((Class<? super T>) contract)); } }; } }
@SuppressWarnings("unchecked") private <T> void bindClass(final Class<T> clazz, final ServiceLocator locator, final DynamicConfiguration dc, final boolean isResource) { final Class<? extends Annotation> scope = getProviderScope(clazz); if (isResource) { final ActiveDescriptor<?> descriptor = dc.bind(BuilderHelper.activeLink(clazz).to(clazz).in(scope).build()); for (final Class contract : Providers.getProviderContracts(clazz)) { final AliasDescriptor aliasDescriptor = new AliasDescriptor(locator, descriptor, contract.getName(), null); aliasDescriptor.setScope(scope.getName()); aliasDescriptor.addQualifierAnnotation(CustomAnnotationLiteral.INSTANCE); dc.bind(aliasDescriptor); } } else { final ScopedBindingBuilder<T> bindingBuilder = Injections.newBinder(clazz).in(scope).qualifiedBy(CustomAnnotationLiteral.INSTANCE); for (final Class contract : Providers.getProviderContracts(clazz)) { bindingBuilder.to(contract); } Injections.addBinding(bindingBuilder, dc); } }
@SuppressWarnings("unchecked") private <T> void bindClass(final Class<T> clazz, final ServiceLocator locator, final DynamicConfiguration dc, final boolean isResource) { final Class<? extends Annotation> scope = getProviderScope(clazz); if (isResource) { final ActiveDescriptor<?> descriptor = dc.bind(BuilderHelper.activeLink(clazz).to(clazz).in(scope).build()); for (final Class contract : Providers.getProviderContracts(clazz)) { final AliasDescriptor aliasDescriptor = new AliasDescriptor(locator, descriptor, contract.getName(), null); aliasDescriptor.setScope(scope.getName()); aliasDescriptor.addQualifierAnnotation(CustomAnnotationLiteral.INSTANCE); dc.bind(aliasDescriptor); } } else { final ScopedBindingBuilder<T> bindingBuilder = Injections.newBinder(clazz).in(scope).qualifiedBy(CustomAnnotationLiteral.INSTANCE); for (final Class contract : Providers.getProviderContracts(clazz)) { bindingBuilder.to(contract); } Injections.addBinding(bindingBuilder, dc); } }
@SuppressWarnings("unchecked") private <T> void bindClass(final Class<T> clazz, final ServiceLocator locator, final DynamicConfiguration dc, final boolean isResource) { final Class<? extends Annotation> scope = getProviderScope(clazz); if (isResource) { final ActiveDescriptor<?> descriptor = dc.bind(BuilderHelper.activeLink(clazz).to(clazz).in(scope).build()); for (final Class contract : Providers.getProviderContracts(clazz)) { final AliasDescriptor aliasDescriptor = new AliasDescriptor(locator, descriptor, contract.getName(), null); aliasDescriptor.setScope(scope.getName()); aliasDescriptor.addQualifierAnnotation(CustomAnnotationLiteral.INSTANCE); dc.bind(aliasDescriptor); } } else { final ScopedBindingBuilder<T> bindingBuilder = Injections.newBinder(clazz).in(scope).qualifiedBy(CustomAnnotationLiteral.INSTANCE); for (final Class contract : Providers.getProviderContracts(clazz)) { bindingBuilder.to(contract); } Injections.addBinding(bindingBuilder, dc); } }