Class BasicInjectionTarget<T>

java.lang.Object
org.jboss.weld.injection.producer.AbstractProducer<T>
org.jboss.weld.injection.producer.BasicInjectionTarget<T>
All Implemented Interfaces:
jakarta.enterprise.inject.spi.InjectionTarget<T>, jakarta.enterprise.inject.spi.Producer<T>, org.jboss.weld.manager.api.WeldInjectionTarget<T>
Direct Known Subclasses:
BeanInjectionTarget, NonProducibleInjectionTarget

public class BasicInjectionTarget<T> extends AbstractProducer<T> implements org.jboss.weld.manager.api.WeldInjectionTarget<T>
Basic InjectionTarget implementation. The implementation supports:
  • @Inject injection + initializers
  • @PostConstruct/@PreDestroy callbacks
Interception and decoration is not supported but can be added using extension points.
Author:
Pete Muir, Jozef Hartinger
  • Field Details

  • Constructor Details

  • Method Details

    • create

      public static <T> BasicInjectionTarget<T> create(EnhancedAnnotatedType<T> type, jakarta.enterprise.inject.spi.Bean<T> bean, BeanManagerImpl beanManager, Injector<T> injector, LifecycleCallbackInvoker<T> invoker)
    • createDefault

      public static <T> BasicInjectionTarget<T> createDefault(EnhancedAnnotatedType<T> type, jakarta.enterprise.inject.spi.Bean<T> bean, BeanManagerImpl beanManager, Instantiator<T> instantiator)
    • createNonCdiInterceptor

      public static <T> BasicInjectionTarget<T> createNonCdiInterceptor(EnhancedAnnotatedType<T> type, BeanManagerImpl beanManager)
      Creates InjectionTarget for interceptors which do not have associated Interceptor. These interceptors are a result of using Interceptors annotation directly on the target class.
    • checkType

      protected void checkType(EnhancedAnnotatedType<T> type)
    • produce

      public T produce(jakarta.enterprise.context.spi.CreationalContext<T> ctx)
      Specified by:
      produce in interface jakarta.enterprise.inject.spi.Producer<T>
    • inject

      public void inject(T instance, jakarta.enterprise.context.spi.CreationalContext<T> ctx)
      Specified by:
      inject in interface jakarta.enterprise.inject.spi.InjectionTarget<T>
    • postConstruct

      public void postConstruct(T instance)
      Specified by:
      postConstruct in interface jakarta.enterprise.inject.spi.InjectionTarget<T>
    • preDestroy

      public void preDestroy(T instance)
      Specified by:
      preDestroy in interface jakarta.enterprise.inject.spi.InjectionTarget<T>
    • dispose

      public void dispose(T instance)
      Specified by:
      dispose in interface jakarta.enterprise.inject.spi.Producer<T>
    • getInjectionPoints

      public Set<jakarta.enterprise.inject.spi.InjectionPoint> getInjectionPoints()
      Specified by:
      getInjectionPoints in interface jakarta.enterprise.inject.spi.Producer<T>
    • getType

      protected SlimAnnotatedType<T> getType()
    • getBeanManager

      public BeanManagerImpl getBeanManager()
    • getInstantiator

      public Instantiator<T> getInstantiator()
    • setInstantiator

      public void setInstantiator(Instantiator<T> instantiator)
    • hasInterceptors

      public boolean hasInterceptors()
    • hasDecorators

      public boolean hasDecorators()
    • initializeAfterBeanDiscovery

      protected void initializeAfterBeanDiscovery(EnhancedAnnotatedType<T> annotatedType)
    • initInstantiator

      protected Instantiator<T> initInstantiator(EnhancedAnnotatedType<T> type, jakarta.enterprise.inject.spi.Bean<T> bean, BeanManagerImpl beanManager, Set<jakarta.enterprise.inject.spi.InjectionPoint> injectionPoints)
      Returns an instantiator that will be used to create a new instance of a given component. If the instantiator uses a constructor with injection points, the implementation of the initInstantiator(EnhancedAnnotatedType, Bean, BeanManagerImpl, Set) method is supposed to register all these injection points within the injectionPoints set passed in as a parameter.
    • getAnnotated

      public jakarta.enterprise.inject.spi.AnnotatedType<T> getAnnotated()
      Specified by:
      getAnnotated in class AbstractProducer<T>
    • getAnnotatedType

      public jakarta.enterprise.inject.spi.AnnotatedType<T> getAnnotatedType()
      Specified by:
      getAnnotatedType in interface org.jboss.weld.manager.api.WeldInjectionTarget<T>
    • getInjector

      public Injector<T> getInjector()
    • getLifecycleCallbackInvoker

      public LifecycleCallbackInvoker<T> getLifecycleCallbackInvoker()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getBean

      public jakarta.enterprise.inject.spi.Bean<T> getBean()
      Description copied from class: AbstractProducer
      Returns a Bean this producer is associated with or null if no such bean exists.
      Specified by:
      getBean in class AbstractProducer<T>