@Override public void applyTo(Binder binder) { PrivateBinder privateBinder = binder.withSource(source).newPrivateBinder(); for (Element element : getElements()) { element.applyTo(privateBinder); } getExposedKeys(); // ensure exposedKeysToSources is populated for (Map.Entry<Key<?>, Object> entry : exposedKeysToSources.entrySet()) { privateBinder.withSource(entry.getValue()).expose(entry.getKey()); } }
void rewrite(Binder binder, PrivateElements privateElements, Set<Key<?>> keysToSkip) { PrivateBinder privateBinder = binder.withSource(privateElements.getSource()).newPrivateBinder(); Set<Key<?>> skippedExposes = Sets.newHashSet(); for (Key<?> key : privateElements.getExposedKeys()) { if (keysToSkip.remove(key)) { skippedExposes.add(key); } else { privateBinder.withSource(privateElements.getExposedSource(key)).expose(key); } } for (Element element : privateElements.getElements()) { if (element instanceof Binding && skippedExposes.remove(((Binding) element).getKey())) { continue; } if (element instanceof PrivateElements) { rewrite(privateBinder, (PrivateElements) element, skippedExposes); continue; } element.applyTo(privateBinder); } }
PrivateElements privateElements = (PrivateElements) element; PrivateBinder privateBinder = baseBinder.newPrivateBinder().withSource(privateElements.getSource()); for (Key exposed : privateElements.getExposedKeys()) { privateBinder.withSource(privateElements.getExposedSource(exposed)).expose(exposed);
@Override public PrivateBinder newPrivateBinder() { return binder.newPrivateBinder(); }
@Override public PrivateBinder newPrivateBinder() { return binder.newPrivateBinder(); }
@Override public PrivateBinder newPrivateBinder() { return binder.newPrivateBinder(); }
@Override public PrivateBinder newPrivateBinder() { return binder.newPrivateBinder(); }
@Override public PrivateBinder newPrivateBinder() { return binder.newPrivateBinder(); }
@Override default PrivateBinder newPrivateBinder() { return this.binder().newPrivateBinder(); }
/** * Binds an {@link HttpClient} to an implementation that takes relative * {@link URI}s. The requests are balanced against an * {@link HttpServiceBalancer} obtained from Guice. * * See the EDSL examples at {@link HttpClientBinder}. * * @param name The configuration prefix. Should be lowercase hypen-separated. * @param annotation The binding annotation. * @param balancerKey The {@link Key} specifying the {@link HttpServiceBalancer} to use. */ public BalancingHttpClientBindingBuilder bindBalancingHttpClient(String name, Class<? extends Annotation> annotation, Key<? extends HttpServiceBalancer> balancerKey) { requireNonNull(name, "name is null"); requireNonNull(annotation, "annotation is null"); requireNonNull(balancerKey, "balancerKey is null"); PrivateBinder privateBinder = binder.newPrivateBinder(); privateBinder.bind(HttpServiceBalancer.class).annotatedWith(ForBalancingHttpClient.class).to(balancerKey); return createBalancingHttpClientBindingBuilder(privateBinder, name, annotation); }
@Override public void applyTo(Binder binder) { PrivateBinder privateBinder = binder.withSource(source).newPrivateBinder(); for (Element element : getElements()) { element.applyTo(privateBinder); } getExposedKeys(); // ensure exposedKeysToSources is populated for (Map.Entry<Key<?>, Object> entry : exposedKeysToSources.entrySet()) { privateBinder.withSource(entry.getValue()).expose(entry.getKey()); } }
@Override public void applyTo(Binder binder) { PrivateBinder privateBinder = binder.withSource(source).newPrivateBinder(); for (Element element : getElements()) { element.applyTo(privateBinder); } getExposedKeys(); // ensure exposedKeysToSources is populated for (Map.Entry<Key<?>, Object> entry : exposedKeysToSources.entrySet()) { privateBinder.withSource(entry.getValue()).expose(entry.getKey()); } }
public void applyTo(Binder binder) { PrivateBinder privateBinder = binder.withSource(source).newPrivateBinder(); for (Element element : getElements()) { element.applyTo(privateBinder); } getExposedKeys(); // ensure exposedKeysToSources is populated for (Map.Entry<Key<?>, Object> entry : exposedKeysToSources.entrySet()) { privateBinder.withSource(entry.getValue()).expose(entry.getKey()); } }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { switch (method.getName()) { case "install": Module module = (Module) args[0]; binder.install(wrap(module)); return null; case "withSource": Binder withSourceBinder = binder.withSource(args[0]); return createForwardingBinder(withSourceBinder); case "skipSources": Binder skipSourcesBinder = binder.skipSources((Class[]) args[0]); return createForwardingBinder(skipSourcesBinder); case "newPrivateBinder": PrivateBinder privateBinder = binder.newPrivateBinder(); return createForwardingBinder(privateBinder); } return method.invoke(binder, args); } }
/** * Creates a new duplex binder. * * @param binder the enclosing (public) binder * @return a new duplex binder */ @NonNull static DuplexBinder create(@NonNull final Binder binder) { if(binder instanceof DuplexBinder) { return (DuplexBinder) binder; } return new DuplexBinderImpl(binder, binder.newPrivateBinder()); }
public void install(Module module) { if (modules.add(module)) { Binder binder = this; if (module instanceof PrivateModule) { binder = binder.newPrivateBinder(); } try { module.configure(binder); } catch (RuntimeException e) { Collection<Message> messages = Errors.getMessagesFromThrowable(e); if (!messages.isEmpty()) { elements.addAll(messages); } else { addError(e); } } binder.install(ProviderMethodsModule.forModule(module)); } }
public void applyTo(Binder binder) { PrivateBinder privateBinder = binder.withSource(source).newPrivateBinder(); for (Element element : getElements()) { element.applyTo(privateBinder); } getExposedKeys(); // ensure exposedKeysToSources is populated for (Map.Entry<Key<?>, Object> entry : exposedKeysToSources.entrySet()) { privateBinder.withSource(entry.getValue()).expose(entry.getKey()); } }
public void applyTo(Binder binder) { PrivateBinder privateBinder = binder.withSource(source).newPrivateBinder(); for (Element element : getElements()) { element.applyTo(privateBinder); } getExposedKeys(); // ensure exposedKeysToSources is populated for (Map.Entry<Key<?>, Object> entry : exposedKeysToSources.entrySet()) { privateBinder.withSource(entry.getValue()).expose(entry.getKey()); } }
public void applyTo(Binder binder) { PrivateBinder privateBinder = binder.withSource(source).newPrivateBinder(); for (Element element : getElements()) { element.applyTo(privateBinder); } getExposedKeys(); // ensure exposedKeysToSources is populated for (Map.Entry<Key<?>, Object> entry : exposedKeysToSources.entrySet()) { privateBinder.withSource(entry.getValue()).expose(entry.getKey()); } }
@Override public void configure(Binder binder) { binder = binder.withSource(source); if (errors.hasErrors()) { for (Message message : errors.getMessages()) { binder.addError(message); } } else { bindWithPrivateBinder(binder.newPrivateBinder()); } }