Package com.google.inject.internal
Class AbstractBindingProcessor
- java.lang.Object
-
- com.google.inject.spi.DefaultElementVisitor<java.lang.Boolean>
-
- com.google.inject.internal.AbstractProcessor
-
- com.google.inject.internal.AbstractBindingProcessor
-
- All Implemented Interfaces:
ElementVisitor<java.lang.Boolean>
- Direct Known Subclasses:
BindingProcessor
,UntargettedBindingProcessor
abstract class AbstractBindingProcessor extends AbstractProcessor
Guarantees that processing of Binding elements happens in a sane way.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) class
AbstractBindingProcessor.Processor<T,V>
Processor for visiting bindings.
-
Field Summary
Fields Modifier and Type Field Description protected ProcessedBindingData
bindingData
private static com.google.common.collect.ImmutableSet<java.lang.Class<?>>
FORBIDDEN_TYPES
-
Fields inherited from class com.google.inject.internal.AbstractProcessor
errors, injector
-
-
Constructor Summary
Constructors Constructor Description AbstractBindingProcessor(Errors errors, ProcessedBindingData bindingData)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected <T> UntargettedBindingImpl<T>
invalidBinding(InjectorImpl injector, Key<T> key, java.lang.Object source)
private boolean
isOkayDuplicate(BindingImpl<?> original, BindingImpl<?> binding, State state)
We tolerate duplicate bindings if one exposes the other or if the two bindings are considered duplicates (seeBindings#areDuplicates(BindingImpl, BindingImpl)
.protected void
putBinding(BindingImpl<?> binding)
private <T> void
validateKey(java.lang.Object source, Key<T> key)
-
Methods inherited from class com.google.inject.internal.AbstractProcessor
process, process, visitOther
-
-
-
-
Field Detail
-
FORBIDDEN_TYPES
private static final com.google.common.collect.ImmutableSet<java.lang.Class<?>> FORBIDDEN_TYPES
-
bindingData
protected final ProcessedBindingData bindingData
-
-
Constructor Detail
-
AbstractBindingProcessor
AbstractBindingProcessor(Errors errors, ProcessedBindingData bindingData)
-
-
Method Detail
-
invalidBinding
protected <T> UntargettedBindingImpl<T> invalidBinding(InjectorImpl injector, Key<T> key, java.lang.Object source)
-
putBinding
protected void putBinding(BindingImpl<?> binding)
-
isOkayDuplicate
private boolean isOkayDuplicate(BindingImpl<?> original, BindingImpl<?> binding, State state)
We tolerate duplicate bindings if one exposes the other or if the two bindings are considered duplicates (seeBindings#areDuplicates(BindingImpl, BindingImpl)
.- Parameters:
original
- the binding in the parent injector (candidate for an exposing binding)binding
- the binding to check (candidate for the exposed binding)
-
validateKey
private <T> void validateKey(java.lang.Object source, Key<T> key)
-
-