@Override public void configure(Binder binder) { Module baseModule = Elements.getModule(boundElements); binder.install(baseModule); }
@Override public void configure(Binder binder) { Module baseModule = Elements.getModule(boundElements); binder.install(baseModule); }
private Module createModule() { List<Element> allElements = new LinkedList<>(); for (List<Element> moduleElements : modules.values()) { allElements.addAll(moduleElements); } ElementCollector collector = new ElementCollector(); for (ListIterator<Element> it = allElements.listIterator(allElements.size()); it.hasPrevious(); ) { it.previous().acceptVisitor(collector); } return Elements.getModule(collector.elements); }
/** * Filter out elements for which the provided visitor returns true. * @param predicate */ public InjectorBuilder filter(ElementVisitor<Boolean> predicate) { List<Element> elements = new ArrayList<Element>(); for (Element element : Elements.getElements(Stage.TOOL, module)) { if (element.acceptVisitor(predicate)) { elements.add(element); } } this.module = Elements.getModule(elements); return this; }
@Override public Collection<Module> call(Collection<Module> modules) { final List<Element> noStatics = Lists.newArrayList(); for(Element element : Elements.getElements(Stage.TOOL, modules)) { element.acceptVisitor(new DefaultElementVisitor<Void>() { @Override public Void visit(StaticInjectionRequest request) { // override to not call visitOther return null; } @Override public Void visitOther(Element element) { noStatics.add(element); return null; } }); } return ImmutableList.<Module>of(Elements.getModule(noStatics)); } }
@Override public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException { modules = new ArrayList<Module>(((ConfigurableListableBeanFactory) registry) .getBeansOfType(Module.class).values()); modules.add(new SpringModule((ConfigurableListableBeanFactory) registry)); Map<Key<?>, Binding<?>> bindings = new HashMap<Key<?>, Binding<?>>(); List<Element> elements = Elements.getElements(Stage.TOOL, modules); if (applicationContext.getEnvironment().getProperty( SPRING_GUICE_DEDUPE_BINDINGS_PROPERTY_NAME, Boolean.class, false)) { elements = removeDuplicates(elements); modules = Collections.singletonList(Elements.getModule(elements)); } for (Element e : elements) { if (e instanceof Binding) { Binding<?> binding = (Binding<?>) e; bindings.put(binding.getKey(), binding); } else if (e instanceof PrivateElements) { extractPrivateElements(bindings, (PrivateElements) e); } } mapBindings(bindings, registry); }