/** * Invoked by Guice at Injector-creation time to prepare providers for each * element in this set. At this time the set's size is known, but its * contents are only evaluated when get() is invoked. */ @Inject public void initialize(Injector injector) { providers = new ArrayList<>(); Set<Dependency<?>> dependencies = new HashSet<>(); for (Binding<?> entry : injector.findBindingsByType(elementType)) { if (keyMatches(entry.getKey())) { @SuppressWarnings("unchecked") // protected by findBindingsByType() Binding<T> binding = (Binding<T>) entry; providers.add(binding.getProvider()); dependencies.add(Dependency.get(binding.getKey())); } } this.dependencies = unmodifiableSet(dependencies); this.binder = null; }
private Scope getScopeInstanceOrNull(Binding<?> binding) { return binding.acceptScopingVisitor(new DefaultBindingScopingVisitor<Scope>() { @Override public Scope visitScope(Scope scope) { return scope; } }); } };
@Override public <T> Boolean visit(Binding<T> command) { final Object source = command.getSource(); if (Void.class.equals(command.getKey().getRawType())) { if (command instanceof ProviderInstanceBinding && ((ProviderInstanceBinding) command).getProviderInstance() instanceof ProviderMethod) { final Key<T> key = command.getKey(); Class<? super T> rawType = key.getTypeLiteral().getRawType(); validateKey(command.getSource(), command.getKey()); command.acceptTargetVisitor(new BindingTargetVisitor<T, Void>() {
static <T> InternalFactory<Provider<T>> createInternalFactory(Binding<T> providedBinding) { final Provider<T> provider = providedBinding.getProvider(); return new InternalFactory<Provider<T>>() { @Override public Provider<T> get(Errors errors, InternalContext context, Dependency dependency) { return provider; } }; }
ProviderBindingImpl(InjectorImpl injector, Key<Provider<T>> key, Binding<T> providedBinding) { super(injector, key, providedBinding.getSource(), createInternalFactory(providedBinding), Scoping.UNSCOPED); this.providedBinding = (BindingImpl<T>) providedBinding; }
@Override public Key<String> getSourceKey() { return originalBinding.getKey(); }
static <T> InternalFactory<Provider<T>> createInternalFactory(Binding<T> providedBinding) { final Provider<T> provider = providedBinding.getProvider(); return new InternalFactory<Provider<T>>() { @Override public Provider<T> get(Errors errors, InternalContext context, Dependency dependency) { return provider; } }; }
ConvertedConstantBindingImpl( Injector injector, Key<T> key, T value, Binding<String> originalBinding) { super(injector, key, originalBinding.getSource(), new ConstantFactory<>(Initializables.of(value)), Scoping.UNSCOPED); this.value = value; provider = Providers.of(value); this.originalBinding = originalBinding; }
<T> void index(Binding<T> binding) { bindingsMultimap.put(binding.getKey().getTypeLiteral(), binding); }
@Override public <T> Boolean visit(Binding<T> command) { final Object source = command.getSource(); if (Void.class.equals(command.getKey().getRawType())) { if (command instanceof ProviderInstanceBinding && ((ProviderInstanceBinding) command).getProviderInstance() instanceof ProviderMethod) { final Key<T> key = command.getKey(); Class<? super T> rawType = key.getTypeLiteral().getRawType(); validateKey(command.getSource(), command.getKey()); command.acceptTargetVisitor(new BindingTargetVisitor<T, Void>() {
/** * Invoked by Guice at Injector-creation time to prepare providers for each * element in this set. At this time the set's size is known, but its * contents are only evaluated when get() is invoked. */ @Inject public void initialize(Injector injector) { providers = new ArrayList<>(); Set<Dependency<?>> dependencies = new HashSet<>(); for (Binding<?> entry : injector.findBindingsByType(elementType)) { if (keyMatches(entry.getKey())) { @SuppressWarnings("unchecked") // protected by findBindingsByType() Binding<T> binding = (Binding<T>) entry; providers.add(binding.getProvider()); dependencies.add(Dependency.get(binding.getKey())); } } this.dependencies = unmodifiableSet(dependencies); this.binder = null; }
static <T> InternalFactory<Provider<T>> createInternalFactory(Binding<T> providedBinding) { final Provider<T> provider = providedBinding.getProvider(); return new InternalFactory<Provider<T>>() { @Override public Provider<T> get(Errors errors, InternalContext context, Dependency dependency) { return provider; } }; }
private void putBinding(BindingImpl<?> binding) { Key<?> key = binding.getKey(); Class<?> rawType = key.getRawType(); if (FORBIDDEN_TYPES.contains(rawType)) { errors.cannotBindToGuiceType(rawType.getSimpleName()); return; } Binding<?> original = injector.state.getExplicitBinding(key); if (original != null && !isOkayDuplicate(original, binding)) { errors.bindingAlreadySet(key, original.getSource()); return; } // prevent the parent from creating a JIT binding for this key injector.state.parent().blacklist(key); injector.state.putBinding(key, binding); }
@Override public Key<String> getSourceKey() { return originalBinding.getKey(); }
private Scope getScopeInstanceOrNull(Binding<?> binding) { return binding.acceptScopingVisitor(new DefaultBindingScopingVisitor<Scope>() { @Override public Scope visitScope(Scope scope) { return scope; } }); } };
@Override public <T> Boolean visit(Binding<T> command) { final Object source = command.getSource(); if (Void.class.equals(command.getKey().getRawType())) { if (command instanceof ProviderInstanceBinding && ((ProviderInstanceBinding) command).getProviderInstance() instanceof ProviderMethod) { final Key<T> key = command.getKey(); Class<? super T> rawType = key.getTypeLiteral().getRawType(); validateKey(command.getSource(), command.getKey()); command.acceptTargetVisitor(new BindingTargetVisitor<T, Void>() {
/** * Invoked by Guice at Injector-creation time to prepare providers for each * element in this set. At this time the set's size is known, but its * contents are only evaluated when get() is invoked. */ @Inject public void initialize(Injector injector) { providers = new ArrayList<>(); Set<Dependency<?>> dependencies = new HashSet<>(); for (Binding<?> entry : injector.findBindingsByType(elementType)) { if (keyMatches(entry.getKey())) { @SuppressWarnings("unchecked") // protected by findBindingsByType() Binding<T> binding = (Binding<T>) entry; providers.add(binding.getProvider()); dependencies.add(Dependency.get(binding.getKey())); } } this.dependencies = unmodifiableSet(dependencies); this.binder = null; }
static <T> InternalFactory<Provider<T>> createInternalFactory(Binding<T> providedBinding) { final Provider<T> provider = providedBinding.getProvider(); return new InternalFactory<Provider<T>>() { @Override public Provider<T> get(Errors errors, InternalContext context, Dependency dependency) { return provider; } }; }
ProviderBindingImpl(InjectorImpl injector, Key<Provider<T>> key, Binding<T> providedBinding) { super(injector, key, providedBinding.getSource(), createInternalFactory(providedBinding), Scoping.UNSCOPED); this.providedBinding = (BindingImpl<T>) providedBinding; }
@Override public Key<String> getSourceKey() { return originalBinding.getKey(); }