Class AbstractBindingProcessor

All Implemented Interfaces:
ElementVisitor<Boolean>
Direct Known Subclasses:
BindingProcessor, UntargettedBindingProcessor

abstract class AbstractBindingProcessor extends AbstractProcessor
Guarantees that processing of Binding elements happens in a sane way.
  • Field Details

    • FORBIDDEN_TYPES

      private static final com.google.common.collect.ImmutableSet<Class<?>> FORBIDDEN_TYPES
    • processedBindingData

      protected final ProcessedBindingData processedBindingData
  • Constructor Details

  • Method Details

    • invalidBinding

      protected <T> UntargettedBindingImpl<T> invalidBinding(InjectorImpl injector, Key<T> key, Object source)
    • putBinding

      protected void putBinding(BindingImpl<?> binding)
    • isOkayDuplicate

      private static boolean isOkayDuplicate(BindingImpl<?> original, BindingImpl<?> binding, InjectorBindingData bindingData)
      We tolerate duplicate bindings if one exposes the other or if the two bindings are considered duplicates (see Bindings#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(Object source, Key<T> key)