Home | History | Annotate | Download | only in codegen

Lines Matching refs:binding

65   final class BindingsCollection<B extends Binding> {
71 for (B binding = bindingsRequiringGeneration.poll();
72 binding != null;
73 binding = bindingsRequiringGeneration.poll()) {
74 checkState(!binding.hasNonDefaultTypeParameters());
75 generator.generate(binding);
76 materializedBindingKeys.add(binding.key());
83 /** Returns a previously cached binding. */
88 /** Caches the binding and generates it if it needs generation. */
89 void tryRegisterBinding(B binding, ClassName factoryName, boolean explicit) {
90 tryToCacheBinding(binding);
91 tryToGenerateBinding(binding, factoryName, explicit);
95 * Tries to generate a binding, not generating if it already is generated. For resolved
96 * bindings, this will try to generate the unresolved version of the binding.
98 void tryToGenerateBinding(B binding, ClassName factoryName, boolean explicit) {
99 if (shouldGenerateBinding(binding, factoryName)) {
100 bindingsRequiringGeneration.offer(binding);
105 types.erasure(binding.key().type()))); // erasure to strip <T> from msgs.
110 /** Returns true if the binding needs to be generated. */
111 private boolean shouldGenerateBinding(B binding, ClassName factoryName) {
112 return !binding.hasNonDefaultTypeParameters()
114 && !materializedBindingKeys.contains(binding.key())
115 && !bindingsRequiringGeneration.contains(binding);
119 /** Caches the binding for future lookups by key. */
120 private void tryToCacheBinding(B binding) {
123 if (binding.hasNonDefaultTypeParameters()
124 || binding.bindingTypeElement().getTypeParameters().isEmpty()) {
125 Key key = binding.key();
126 Binding previousValue = bindingsByKey.put(key, binding);
127 checkState(previousValue == null || binding.equals(previousValue),
129 binding, previousValue, key);
151 * This method ensures that sources for all registered {@link Binding bindings} (either
161 ProvisionBinding registerBinding(ProvisionBinding binding) {
162 return registerBinding(binding, true);
165 MembersInjectionBinding registerBinding(MembersInjectionBinding binding) {
166 return registerBinding(binding, true);
170 * Registers the binding for generation & later lookup. If the binding is resolved, we also
173 private ProvisionBinding registerBinding(ProvisionBinding binding, boolean explicit) {
174 ClassName factoryName = generatedClassNameForBinding(binding);
175 provisionBindings.tryRegisterBinding(binding, factoryName, explicit);
176 if (binding.hasNonDefaultTypeParameters()) {
177 provisionBindings.tryToGenerateBinding(provisionBindingFactory.unresolve(binding),
180 return binding;
184 * Registers the binding for generation & later lookup. If the binding is resolved, we also
188 MembersInjectionBinding binding, boolean explicit) {
189 ClassName membersInjectorName = generatedClassNameForBinding(binding);
190 membersInjectionBindings.tryRegisterBinding(binding, membersInjectorName, explicit);
191 if (binding.hasNonDefaultTypeParameters()) {
193 membersInjectionBindingFactory.unresolve(binding), membersInjectorName, explicit);
195 return binding;
203 ProvisionBinding binding = provisionBindings.getBinding(key);
204 if (binding != null) {
205 return Optional.of(binding);
236 MembersInjectionBinding binding = membersInjectionBindings.getBinding(key);
237 if (binding != null) {
238 return binding;