Class AbstractBinder

java.lang.Object
org.glassfish.jersey.internal.inject.AbstractBinder
All Implemented Interfaces:
Binder
Direct Known Subclasses:
CompositeBinder, ContextInjectionResolverImpl.Binder, JaxbMessagingBinder, JaxbParamConverterBinder, MappableExceptionWrapperInterceptor.Binder, MessagingBinders.HeaderDelegateProviders, MessagingBinders.MessageBodyProviders, MonitoringContainerListener.Binder, PersistenceUnitBinder, ServiceFinderBinder, SseBinder

public abstract class AbstractBinder extends Object implements Binder
Implementation of Binder interface dedicated to keep some level of code compatibility between previous HK2 implementation and new DI SPI.

Currently, there are supported only bind method and more complicated method where HK2 interfaces are required were omitted.

Author:
Petr Bouda
  • Constructor Details

    • AbstractBinder

      public AbstractBinder()
  • Method Details

    • configure

      protected abstract void configure()
      Implement to provide binding definitions using the exposed binding methods.
    • createManagedInstanceProvider

      protected final <T> jakarta.inject.Provider<T> createManagedInstanceProvider(Class<T> clazz)
      Creates a new instance of Provider which is able to retrieve a managed instance registered in InjectionManager. If InjectionManager is null at the time of calling Provider.get() then IllegalStateException is thrown.
      Type Parameters:
      T - type of the managed instance returned using provider.
      Parameters:
      clazz - class of managed instance.
      Returns:
      provider with instance of managed instance.
    • bind

      public <T> ClassBinding<T> bind(Class<T> serviceType)
      Start building a new class-based service binding.

      Does NOT bind the service type itself as a contract type.

      Type Parameters:
      T - service type.
      Parameters:
      serviceType - service class.
      Returns:
      initialized binding builder.
    • bind

      public Binding bind(Binding binding)
      Binds the provided binding and return the same instance.
      Parameters:
      binding - binding.
      Returns:
      the same provided binding.
    • bindAsContract

      public <T> ClassBinding<T> bindAsContract(Class<T> serviceType)
      Start building a new class-based service binding.

      Binds the service type itself as a contract type.

      Type Parameters:
      T - service type.
      Parameters:
      serviceType - service class.
      Returns:
      initialized binding builder.
    • bindAsContract

      public <T> ClassBinding<T> bindAsContract(GenericType<T> serviceType)
      Start building a new generic type-based service binding.

      Binds the generic service type itself as a contract type.

      Type Parameters:
      T - service type.
      Parameters:
      serviceType - generic service type information.
      Returns:
      initialized binding builder.
    • bindAsContract

      public ClassBinding<Object> bindAsContract(Type serviceType)
      Start building a new generic type-based service binding.

      Binds the generic service type itself as a contract type.

      Parameters:
      serviceType - generic service type information.
      Returns:
      initialized binding builder.
    • bind

      public <T> InstanceBinding<T> bind(T service)
      Start building a new instance-based service binding. The binding is naturally considered to be a singleton-scoped.

      Does NOT bind the service type itself as a contract type.

      Type Parameters:
      T - service type.
      Parameters:
      service - service instance.
      Returns:
      initialized binding builder.
    • bindFactory

      public <T> SupplierClassBinding<T> bindFactory(Class<? extends Supplier<T>> supplierType, Class<? extends Annotation> supplierScope)
      Start building a new supplier class-based service binding.
      Type Parameters:
      T - service type.
      Parameters:
      supplierType - service supplier class.
      supplierScope - factory scope.
      Returns:
      initialized binding builder.
    • bindFactory

      public <T> SupplierClassBinding<T> bindFactory(Class<? extends Supplier<T>> supplierType)
      Start building a new supplier class-based service binding.

      The supplier itself is bound in a per-lookup scope.

      Type Parameters:
      T - service type.
      Parameters:
      supplierType - service supplier class.
      Returns:
      initialized binding builder.
    • bindFactory

      public <T> SupplierInstanceBinding<T> bindFactory(Supplier<T> factory)
      Start building a new supplier instance-based service binding.
      Type Parameters:
      T - service type.
      Parameters:
      factory - service instance.
      Returns:
      initialized binding builder.
    • bind

      public <T extends InjectionResolver> InjectionResolverBinding<T> bind(T resolver)
      Start building a new injection resolver binding. The injection resolver is naturally considered to be a singleton-scoped.

      There is no need to provide any additional information. Other method on Binding will be ignored.

      Type Parameters:
      T - type of the injection resolver.
      Parameters:
      resolver - injection resolver instance.
      Returns:
      initialized binding builder.
    • install

      public final void install(AbstractBinder... binders)
      Adds all binding definitions from the binders to the binding configuration.
      Parameters:
      binders - binders whose binding definitions should be configured.
    • getBindings

      public Collection<Binding> getBindings()
      Description copied from interface: Binder
      Gets a collection of descriptors registered in this jersey binder.
      Specified by:
      getBindings in interface Binder
      Returns:
      collection of descriptors.