Builder privateElements(PrivateElements privateElements) { this.privateElements = (PrivateElementsImpl) privateElements; this.elements.addAll(privateElements.getElements()); return this; }
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); } }
baseElements = privateElements.getElements();
private ImmutableMap<Key<?>, Binding<?>> indexBindings(Iterable<Element> elements) { ImmutableMap.Builder<Key<?>, Binding<?>> builder = ImmutableMap.builder(); for (Element element : elements) { if (element instanceof Binding) { Binding<?> binding = (Binding<?>) element; builder.put(binding.getKey(), binding); } else if (element instanceof PrivateElements) { PrivateElements privateElements = (PrivateElements) element; Map<Key<?>, Binding<?>> privateBindings = indexBindings(privateElements.getElements()); for (Key<?> exposed : privateElements.getExposedKeys()) { builder.put(exposed, privateBindings.get(exposed)); } } } return builder.build(); } }
Builder privateElements(PrivateElements privateElements) { this.privateElements = (PrivateElementsImpl) privateElements; this.elements.addAll(privateElements.getElements()); return this; }
Builder privateElements(PrivateElements privateElements) { this.privateElements = (PrivateElementsImpl) privateElements; this.elements.addAll(privateElements.getElements()); return this; }
Builder privateElements(PrivateElements privateElements) { this.privateElements = (PrivateElementsImpl) privateElements; this.elements.addAll(privateElements.getElements()); return this; }
Builder privateElements(PrivateElements privateElements) { this.privateElements = (PrivateElementsImpl) privateElements; this.elements.addAll(privateElements.getElements()); return this; }
Builder privateElements(PrivateElements privateElements) { this.privateElements = (PrivateElementsImpl) privateElements; this.elements.addAll(privateElements.getElements()); return this; }
Builder privateElements(PrivateElements privateElements) { this.privateElements = (PrivateElementsImpl) privateElements; this.elements.addAll(privateElements.getElements()); return this; }
@Override public Void visit(PrivateElements privateElements) { for (Element element : privateElements.getElements()) { element.acceptVisitor(this); } return null; } });
private void extractPrivateElements(Map<Key<?>, Binding<?>> bindings, PrivateElements privateElements) { List<Element> elements = privateElements.getElements(); for (Element e : elements) { if (e instanceof Binding && privateElements.getExposedKeys() .contains(((Binding<?>) e).getKey())) { Binding<?> binding = (Binding<?>) e; bindings.put(binding.getKey(), binding); } else if (e instanceof PrivateElements) { extractPrivateElements(bindings, (PrivateElements) e); } } }
public static void printPrivateElements(PrivateElements elements, final int indentation) { indent(indentation); System.out.println("privateElements {"); List<Element> exposedElements = new ArrayList<>(); List<Element> privateElements = new ArrayList<>(); for (Element element : elements.getElements()) { if (element instanceof Binding<?> && elements.getExposedKeys().contains(((Binding)element).getKey())) { exposedElements.add(element); } else { privateElements.add(element); } } if (!exposedElements.isEmpty()) { indent(indentation + 1); System.out.println("// exposed:"); } for (Element element : exposedElements) { printElement(element, indentation + 1); } if (!privateElements.isEmpty()) { indent(indentation + 1); System.out.println("// private:"); } for (Element element : privateElements) { printElement(element, indentation + 1); } indent(indentation); System.out.println("}"); }
@SuppressWarnings("unchecked") @Override public Void visit(PrivateElements privateElements) { Set<Key<?>> exposedKeys = privateElements.getExposedKeys(); for (Element element : privateElements.getElements()) { if (element instanceof Binding<?>) { Binding<?> bindingElement = (Binding<?>) element; if (exposedKeys.contains(bindingElement.getKey())) { @SuppressWarnings("rawtypes") GuicePrivateBindingVisitor bindingVisitor = new GuicePrivateBindingVisitor(); bindingElement.acceptTargetVisitor(bindingVisitor); } } } return null; }
@Override protected void configure() { for (Element element : privateElements.getElements()) { if (element instanceof Binding && ArrayUtils.contains(excludedKeys, ((Binding) element).getKey())) { continue; } element.applyTo(binder()); } for (Key<?> exposedKey : privateElements.getExposedKeys()) { if (ArrayUtils.contains(excludedKeys, exposedKey)) { continue; } expose(exposedKey); } } }
@SuppressWarnings("unchecked") @Override public Void visit(PrivateElements privateElements) { Set<Key<?>> exposedKeys = privateElements.getExposedKeys(); for (Element element : privateElements.getElements()) { if (element instanceof Binding<?>) { Binding<?> bindingElement = (Binding<?>) element; if (exposedKeys.contains(bindingElement.getKey())) { @SuppressWarnings("rawtypes") GuicePrivateBindingVisitor bindingVisitor = new GuicePrivateBindingVisitor(); bindingElement.acceptTargetVisitor(bindingVisitor); } } } return null; }
private static void annotateExposedWithId(final PrivateBinder binder, final PrivateElements elements, final Service service) { final boolean singleton = ReflectionTools.isSingleton(service.getClass()); // rewrite all bindings for (Element element : elements.getElements()) { element.applyTo(binder); } // rewrite all exposed bindings to include id for (Key<?> oldKey : elements.getExposedKeys()) { if (!singleton && !Strings.isNullOrEmpty(service.getId())) { bindKey(binder, oldKey, Names.named(service.getId())); } else { binder.expose(oldKey); } } }
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); } }
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); } }
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); } }