@Override public Object instantiate(DAGNode<Component, Dependency> node) throws InjectionException { return container.makeInstantiator(node).instantiate(); } }
@Override public void close() { lifecycle.close(); closed = true; }
@Override public void toNull(Class<? extends T> type) { binding.toNull(type); }
@Override public LenskitConfigContext at(Class<?> type) { return wrapContext(bindings.getRootContext().at(type)); }
@Override public LenskitConfigContext within(Annotation qualifier, Class<?> type) { return wrapContext(bindings.getRootContext().within(qualifier, type)); }
@Override public void to(@Nonnull Class<? extends T> impl, boolean chained) { binding.to(impl, chained); }
@Override public LenskitConfigContext matching(ContextPattern pattern) { return wrapContext(bindings.getRootContext().matching(pattern)); }
/** * Include a module in this configuration. * * @param mod The module to include. */ public void include(Module mod) { mod.configure(context); }
DefaultImpl(LifecycleManager mgr) { container = InjectionContainer.create(CachePolicy.MEMOIZE, mgr); }
@Override public <T> LenskitBinding<T> bind(Class<T> type) { return LenskitBindingImpl.wrap(base.bind(type)); }
@Override public void toSatisfaction(@Nonnull Satisfaction sat) { binding.toSatisfaction(sat); } }
/** * Create a new copy of a LensKit configuration. * @param other The configuration to copy. */ public LenskitConfiguration(LenskitConfiguration other) { bindings = other.bindings.clone(); roots = new HashSet<>(other.roots); }
@Override public void toProvider(@Nonnull Class<? extends Provider<? extends T>> provider) { binding.toProvider(provider); }
@Override public Binding<T> fixed() { return wrap(binding.fixed(), coercion); }
@Override public LenskitConfigContext at(Annotation qualifier, Class<?> type) { return wrapContext(bindings.getRootContext().at(qualifier, type)); }
@Override public LenskitConfigContext within(Class<?> type) { return wrapContext(bindings.getRootContext().within(type)); }
@Override public void to(@Nonnull Class<? extends T> impl) { binding.to(impl); }
@Override public void toNull() { binding.toNull(); }
@Override public LenskitConfigContext at(Class<? extends Annotation> qualifier, Class<?> type) { return wrapContext(bindings.getRootContext().at(qualifier, type)); }
@Override public LenskitConfigContext within(Class<? extends Annotation> qualifier, Class<?> type) { return wrapContext(bindings.getRootContext().within(qualifier, type)); }