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; } }; }
/** * 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; } }; }
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; } }; }
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; } }; }
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; } }; }
/** * Returns a collection of all providers of the given base type * * @param baseClass the base type of objects required * @param <T> the base type * @return a set of objects returned from this injector */ public static <T> Set<Provider<T>> getProvidersOf(Injector injector, Class<T> baseClass) { Set<Provider<T>> answer = Sets.newHashSet(); Set<Entry<Key<?>, Binding<?>>> entries = injector.getBindings().entrySet(); for (Entry<Key<?>, Binding<?>> entry : entries) { Key<?> key = entry.getKey(); Class<?> keyType = getKeyType(key); if (keyType != null && baseClass.isAssignableFrom(keyType)) { Binding<?> binding = entry.getValue(); answer.add((Provider<T>) binding.getProvider()); } } return answer; }
/** * Returns a collection of all of the providers matching the given matcher * * @param matcher matches the types to return instances * @return a set of objects returned from this injector */ public static <T> Set<Provider<T>> getProvidersOf(Injector injector, Matcher<Class> matcher) { Set<Provider<T>> answer = Sets.newHashSet(); Set<Entry<Key<?>, Binding<?>>> entries = injector.getBindings().entrySet(); for (Entry<Key<?>, Binding<?>> entry : entries) { Key<?> key = entry.getKey(); Class<?> keyType = getKeyType(key); if (keyType != null && matcher.matches(keyType)) { Binding<?> binding = entry.getValue(); answer.add((Provider<T>) binding.getProvider()); } } return answer; }
/** * Returns a collection of all instances of the given base type * * @param baseClass the base type of objects required * @param <T> the base type * @return a set of objects returned from this injector */ public static <T> Set<T> getInstancesOf(Injector injector, Class<T> baseClass) { Set<T> answer = Sets.newHashSet(); Set<Entry<Key<?>, Binding<?>>> entries = injector.getBindings().entrySet(); for (Entry<Key<?>, Binding<?>> entry : entries) { Key<?> key = entry.getKey(); Class<?> keyType = getKeyType(key); if (keyType != null && baseClass.isAssignableFrom(keyType)) { Binding<?> binding = entry.getValue(); Object value = binding.getProvider().get(); if (value != null) { T castValue = baseClass.cast(value); answer.add(castValue); } } } return answer; }
/** * Returns a collection of all instances matching the given matcher * * @param matcher matches the types to return instances * @return a set of objects returned from this injector */ public static <T> Set<T> getInstancesOf(Injector injector, Matcher<Class> matcher) { Set<T> answer = Sets.newHashSet(); Set<Entry<Key<?>, Binding<?>>> entries = injector.getBindings().entrySet(); for (Entry<Key<?>, Binding<?>> entry : entries) { Key<?> key = entry.getKey(); Class<?> keyType = getKeyType(key); if (keyType != null && matcher.matches(keyType)) { Binding<?> binding = entry.getValue(); Object value = binding.getProvider().get(); answer.add((T) value); } } return answer; }
/** * 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; }
/** * 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; }
/** * 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; }
/** * 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<>(); List<Dependency<?>> dependencies = new ArrayList<>(); 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 = ImmutableSet.copyOf(dependencies); this.binder = null; }
/** * When a factory method is invoked, we create a child injector that binds all parameters, then * use that to get an instance of the return type. */ @Override public Object invoke(Object proxy, final Method method, final Object[] args) throws Throwable { if (method.getDeclaringClass() == Object.class) { return method.invoke(this, args); } Provider<?> provider = getBindingFromNewInjector(method, args).getProvider(); try { return provider.get(); } catch (ProvisionException e) { // if this is an exception declared by the factory method, throw it as-is if (e.getErrorMessages().size() == 1) { Message onlyError = Iterables.getOnlyElement(e.getErrorMessages()); Throwable cause = onlyError.getCause(); if (cause != null && canRethrow(method, cause)) { throw cause; } } throw e; } }
@Override protected ShardIndexVersion shardOperation(GetIndicesVersionRequest request, ShardRouting shardRouting) throws IOException { IndexService indexService = indicesService.indexServiceSafe(shardRouting.getIndex()); IndexShard indexShard = indexService.shardSafe(shardRouting.id()); // Get the IndexVersionShardService associated to this shard Injector injector = indexService.shardInjectorSafe(shardRouting.id()); IndexVersionShardService indexVersionService = injector.getBinding(IndexVersionShardService.class).getProvider().get(); long version = indexVersionService.getVersion(); return new ShardIndexVersion(indexShard.routingEntry(), version); }