public DependencySolver buildDependencySolverImpl(SolveDirection direction) { DependencySolverBuilder dsb = DependencySolver.newBuilder(); for (BindingFunctionBuilder cfg: Lists.reverse(configs)) { dsb.addBindingFunction(direction.transform(cfg.build(BindingFunctionBuilder.RuleSet.EXPLICIT))); dsb.addBindingFunction(direction.transform(cfg.build(BindingFunctionBuilder.RuleSet.INTERMEDIATE_TYPES))); dsb.addBindingFunction(direction.transform(cfg.build(BindingFunctionBuilder.RuleSet.SUPER_TYPES))); } // default desire function cannot trigger rewrites dsb.addBindingFunction(DefaultDesireBindingFunction.create(classLoader), false); dsb.setDefaultPolicy(CachePolicy.MEMOIZE); dsb.setMaxDepth(RESOLVE_DEPTH_LIMIT); return dsb.build(); }
public Injector build() { BindingFunction[] functions; if (enableProviderInjection) { functions = new BindingFunction[] { builder.build(RuleSet.EXPLICIT), builder.build(RuleSet.INTERMEDIATE_TYPES), builder.build(RuleSet.SUPER_TYPES), new ProviderBindingFunction(), // insert extra provider injection DefaultDesireBindingFunction.create(classLoader) }; } else { functions = new BindingFunction[] { builder.build(RuleSet.EXPLICIT), builder.build(RuleSet.INTERMEDIATE_TYPES), builder.build(RuleSet.SUPER_TYPES), DefaultDesireBindingFunction.create(classLoader) }; } return new DefaultInjector(cachePolicy, 100, functions); } }
public DependencySolver buildDependencySolverImpl(SolveDirection direction) { DependencySolverBuilder dsb = DependencySolver.newBuilder(); for (BindingFunctionBuilder cfg: Lists.reverse(configs)) { dsb.addBindingFunction(direction.transform(cfg.build(BindingFunctionBuilder.RuleSet.EXPLICIT))); dsb.addBindingFunction(direction.transform(cfg.build(BindingFunctionBuilder.RuleSet.INTERMEDIATE_TYPES))); dsb.addBindingFunction(direction.transform(cfg.build(BindingFunctionBuilder.RuleSet.SUPER_TYPES))); } // default desire function cannot trigger rewrites dsb.addBindingFunction(DefaultDesireBindingFunction.create(classLoader), false); dsb.setDefaultPolicy(CachePolicy.MEMOIZE); dsb.setMaxDepth(RESOLVE_DEPTH_LIMIT); return dsb.build(); }