org.jboss.weld.manager
Class BeanManagerImpl

java.lang.Object
  extended by org.jboss.weld.manager.BeanManagerImpl
All Implemented Interfaces:
Serializable, javax.enterprise.inject.spi.BeanManager, org.jboss.weld.manager.api.WeldManager

public class BeanManagerImpl
extends Object
implements org.jboss.weld.manager.api.WeldManager, Serializable

Implementation of the Bean Manager.

Essentially a singleton for registering Beans, Contexts, Observers, Interceptors etc. as well as providing resolution

Author:
Pete Muir, Marius Bogoevici, Ales Justin, Marko Luksa
See Also:
Serialized Form

Method Summary
 void addAccessibleBeanManager(BeanManagerImpl accessibleBeanManager)
           
 void addBean(javax.enterprise.inject.spi.Bean<?> bean)
           
 void addContext(javax.enterprise.context.spi.Context context)
           
 void addDecorator(javax.enterprise.inject.spi.Decorator<?> bean)
           
 void addInterceptor(javax.enterprise.inject.spi.Interceptor<?> bean)
           
 void addObserver(javax.enterprise.inject.spi.ObserverMethod<?> observer)
          Does the actual observer registration
 void cleanup()
           
 BeanManagerImpl createActivity()
           
<T> javax.enterprise.inject.spi.AnnotatedType<T>
createAnnotatedType(Class<T> type)
           
<T> WeldCreationalContext<T>
createCreationalContext(javax.enterprise.context.spi.Contextual<T> contextual)
           
<T> javax.enterprise.inject.spi.InjectionTarget<T>
createInjectionTarget(javax.enterprise.inject.spi.AnnotatedType<T> type)
           
<T> javax.enterprise.inject.spi.InjectionTarget<T>
createInjectionTarget(org.jboss.weld.ejb.spi.EjbDescriptor<T> descriptor)
           
 boolean equals(Object obj)
           
 Set<InterceptorBindingType> extractAndFlattenInterceptorBindings(Iterable<Annotation> annotations)
           
 Set<InterceptorBindingType> extractInterceptorBindings(Iterable<Annotation> annotations)
           
 Set<QualifierInstance> extractInterceptorBindingsForQualifierInstance(Iterable<QualifierInstance> annotations)
           
 void fireEvent(Object event, Annotation... qualifiers)
          Fires an event object with given event object for given bindings
<X> javax.enterprise.inject.spi.InjectionTarget<X>
fireProcessInjectionTarget(javax.enterprise.inject.spi.AnnotatedType<X> annotatedType)
           
 Set<InterceptorBindingType> flattenInterceptorBindings(Set<InterceptorBindingType> interceptorBindingTypes)
          Extracts the complete set of interception bindings from a given set of interceptorBindingTypes.
 Iterable<javax.enterprise.inject.spi.Bean<?>> getAccessibleBeans()
           
 Iterable<javax.enterprise.inject.spi.Decorator<?>> getAccessibleDecorators()
           
 Iterable<javax.enterprise.inject.spi.Interceptor<?>> getAccessibleInterceptors()
           
 HashSet<BeanManagerImpl> getAccessibleManagers()
           
 Iterable<String> getAccessibleNamespaces()
           
 ObserverNotifier getAccessibleObserverNotifier()
          Get the observer notifier for accessible observer methods.
<T> SessionBean<T>
getBean(org.jboss.weld.ejb.spi.EjbDescriptor<T> descriptor)
           
<T> javax.enterprise.inject.spi.Bean<T>
getBean(Resolvable resolvable)
           
 TypeSafeBeanResolver<javax.enterprise.inject.spi.Bean<?>> getBeanResolver()
          Get the web bean resolver.
 List<javax.enterprise.inject.spi.Bean<?>> getBeans()
          The beans registered with the Web Bean manager which are resolvable.
 Set<javax.enterprise.inject.spi.Bean<?>> getBeans(javax.enterprise.inject.spi.InjectionPoint injectionPoint)
           
 Set<javax.enterprise.inject.spi.Bean<?>> getBeans(String name)
           
 Set<javax.enterprise.inject.spi.Bean<?>> getBeans(Type beanType, Annotation... qualifiers)
           
 Set<javax.enterprise.inject.spi.Bean<?>> getBeans(Type beanType, Set<Annotation> qualifiers)
           
 AtomicInteger getChildIds()
           
 ClientProxyProvider getClientProxyProvider()
           
 javax.enterprise.context.spi.Context getContext(Class<? extends Annotation> scopeType)
          Gets an active context of the given scope.
protected  Map<Class<? extends Annotation>,List<javax.enterprise.context.spi.Context>> getContexts()
           
 BeanManagerImpl getCurrent()
           
 TypeSafeResolver<Resolvable,javax.enterprise.inject.spi.Decorator<?>> getDecoratorResolver()
          Get the decorator resolver.
 List<javax.enterprise.inject.spi.Decorator<?>> getDecorators()
           
<T> org.jboss.weld.ejb.spi.EjbDescriptor<T>
getEjbDescriptor(String beanName)
           
 javax.el.ELResolver getELResolver()
           
 Enabled getEnabled()
          Enabled Alternatives, Interceptors and Decorators
 Map<org.jboss.weld.ejb.spi.EjbDescriptor<?>,SessionBean<?>> getEnterpriseBeans()
          Gets the class-mapped beans.
 String getId()
           
 Object getInjectableReference(javax.enterprise.inject.spi.InjectionPoint injectionPoint, javax.enterprise.context.spi.CreationalContext<?> creationalContext)
           
 Set<Annotation> getInterceptorBindingDefinition(Class<? extends Annotation> bindingType)
           
 MetadataCachingReader getInterceptorMetadataReader()
           
 Map<Class<?>,InterceptionModel<ClassMetadata<?>,?>> getInterceptorModelRegistry()
           
 List<javax.enterprise.inject.spi.Interceptor<?>> getInterceptors()
           
 MetaAnnotationStore getMetaAnnotationStore()
           
<X> javax.enterprise.inject.spi.Bean<? extends X>
getMostSpecializedBean(javax.enterprise.inject.spi.Bean<X> bean)
           
protected  List<String> getNamespaces()
           
 List<javax.enterprise.inject.spi.ObserverMethod<?>> getObservers()
           
 javax.enterprise.inject.spi.Bean<?> getPassivationCapableBean(String id)
           
 Object getReference(javax.enterprise.inject.spi.Bean<?> bean, javax.enterprise.context.spi.CreationalContext<?> creationalContext, boolean noProxy)
           
 Object getReference(javax.enterprise.inject.spi.Bean<?> bean, Type beanType, javax.enterprise.context.spi.CreationalContext<?> creationalContext)
           
 Object getReference(javax.enterprise.inject.spi.InjectionPoint injectionPoint, javax.enterprise.inject.spi.Bean<?> resolvedBean, javax.enterprise.context.spi.CreationalContext<?> creationalContext)
          Get a reference, registering the injection point used.
 Namespace getRootNamespace()
           
 org.jboss.weld.bootstrap.api.ServiceRegistry getServices()
           
 Map<javax.enterprise.context.spi.Contextual<?>,javax.enterprise.context.spi.Contextual<?>> getSpecializedBeans()
          Deprecated. 
 Set<Annotation> getStereotypeDefinition(Class<? extends Annotation> stereotype)
           
 int hashCode()
           
 javax.enterprise.inject.Instance<Object> instance()
           
 boolean isBeanEnabled(javax.enterprise.inject.spi.Bean<?> bean)
           
 boolean isInterceptorBinding(Class<? extends Annotation> annotationType)
           
 boolean isNormalScope(Class<? extends Annotation> annotationType)
           
 boolean isPassivatingScope(Class<? extends Annotation> annotationType)
           
 boolean isQualifier(Class<? extends Annotation> annotationType)
           
 boolean isScope(Class<? extends Annotation> annotationType)
           
 boolean isStereotype(Class<? extends Annotation> annotationType)
           
static BeanManagerImpl newChildActivityManager(BeanManagerImpl parentManager)
          Create a new child manager
static BeanManagerImpl newManager(BeanManagerImpl rootManager, String id, org.jboss.weld.bootstrap.api.ServiceRegistry services, Enabled enabled)
           
static BeanManagerImpl newRootManager(String id, org.jboss.weld.bootstrap.api.ServiceRegistry serviceRegistry, Enabled enabled)
          Create a new, root, manager
protected  Object readResolve()
           
protected  void registerBeanNamespace(javax.enterprise.inject.spi.Bean<?> bean)
           
<X> javax.enterprise.inject.spi.Bean<? extends X>
resolve(Set<javax.enterprise.inject.spi.Bean<? extends X>> beans)
           
 List<javax.enterprise.inject.spi.Decorator<?>> resolveDecorators(Set<Type> types, Annotation... qualifiers)
           
 List<javax.enterprise.inject.spi.Decorator<?>> resolveDecorators(Set<Type> types, Set<Annotation> qualifiers)
           
 List<javax.enterprise.inject.spi.Interceptor<?>> resolveInterceptors(javax.enterprise.inject.spi.InterceptionType type, Annotation... interceptorBindings)
          Resolves a list of interceptors based on interception type and interceptor bindings
 List<javax.enterprise.inject.spi.Interceptor<?>> resolveInterceptors(javax.enterprise.inject.spi.InterceptionType type, Set<InterceptorBindingType> flattenedInterceptorBindings)
           
<T> Set<javax.enterprise.inject.spi.ObserverMethod<? super T>>
resolveObserverMethods(T event, Annotation... bindings)
           
 BeanManagerImpl setCurrent(Class<? extends Annotation> scopeType)
           
 String toString()
          Gets a string representation
 void validate(javax.enterprise.inject.spi.InjectionPoint ij)
           
 javax.el.ExpressionFactory wrapExpressionFactory(javax.el.ExpressionFactory expressionFactory)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Method Detail

newRootManager

public static BeanManagerImpl newRootManager(String id,
                                             org.jboss.weld.bootstrap.api.ServiceRegistry serviceRegistry,
                                             Enabled enabled)
Create a new, root, manager

Parameters:
serviceRegistry -
Returns:

newManager

public static BeanManagerImpl newManager(BeanManagerImpl rootManager,
                                         String id,
                                         org.jboss.weld.bootstrap.api.ServiceRegistry services,
                                         Enabled enabled)

newChildActivityManager

public static BeanManagerImpl newChildActivityManager(BeanManagerImpl parentManager)
Create a new child manager

Parameters:
parentManager - the parent manager
Returns:
new child manager

addAccessibleBeanManager

public void addAccessibleBeanManager(BeanManagerImpl accessibleBeanManager)

getAccessibleManagers

public HashSet<BeanManagerImpl> getAccessibleManagers()

addBean

public void addBean(javax.enterprise.inject.spi.Bean<?> bean)

addDecorator

public void addDecorator(javax.enterprise.inject.spi.Decorator<?> bean)

resolveObserverMethods

public <T> Set<javax.enterprise.inject.spi.ObserverMethod<? super T>> resolveObserverMethods(T event,
                                                                                             Annotation... bindings)
Specified by:
resolveObserverMethods in interface javax.enterprise.inject.spi.BeanManager

addInterceptor

public void addInterceptor(javax.enterprise.inject.spi.Interceptor<?> bean)

getEnabled

public Enabled getEnabled()
Enabled Alternatives, Interceptors and Decorators

Returns:

isBeanEnabled

public boolean isBeanEnabled(javax.enterprise.inject.spi.Bean<?> bean)

getBeans

public Set<javax.enterprise.inject.spi.Bean<?>> getBeans(Type beanType,
                                                         Annotation... qualifiers)
Specified by:
getBeans in interface javax.enterprise.inject.spi.BeanManager

getBeans

public Set<javax.enterprise.inject.spi.Bean<?>> getBeans(Type beanType,
                                                         Set<Annotation> qualifiers)

getBeans

public Set<javax.enterprise.inject.spi.Bean<?>> getBeans(javax.enterprise.inject.spi.InjectionPoint injectionPoint)

registerBeanNamespace

protected void registerBeanNamespace(javax.enterprise.inject.spi.Bean<?> bean)

getEnterpriseBeans

public Map<org.jboss.weld.ejb.spi.EjbDescriptor<?>,SessionBean<?>> getEnterpriseBeans()
Gets the class-mapped beans. For internal use.

Returns:
The bean map

getBeans

public List<javax.enterprise.inject.spi.Bean<?>> getBeans()
The beans registered with the Web Bean manager which are resolvable. Does not include interceptor and decorator beans

Returns:
The list of known beans

getDecorators

public List<javax.enterprise.inject.spi.Decorator<?>> getDecorators()

getInterceptors

public List<javax.enterprise.inject.spi.Interceptor<?>> getInterceptors()

getAccessibleBeans

public Iterable<javax.enterprise.inject.spi.Bean<?>> getAccessibleBeans()

getAccessibleInterceptors

public Iterable<javax.enterprise.inject.spi.Interceptor<?>> getAccessibleInterceptors()

getAccessibleDecorators

public Iterable<javax.enterprise.inject.spi.Decorator<?>> getAccessibleDecorators()

addContext

public void addContext(javax.enterprise.context.spi.Context context)

addObserver

public void addObserver(javax.enterprise.inject.spi.ObserverMethod<?> observer)
Does the actual observer registration

Parameters:
observer - =

fireEvent

public void fireEvent(Object event,
                      Annotation... qualifiers)
Fires an event object with given event object for given bindings

Specified by:
fireEvent in interface javax.enterprise.inject.spi.BeanManager
Parameters:
event - The event object to pass along
qualifiers - The binding types to match
See Also:
BeanManager.fireEvent(java.lang.Object, java.lang.annotation.Annotation[])

getContext

public javax.enterprise.context.spi.Context getContext(Class<? extends Annotation> scopeType)
Gets an active context of the given scope. Throws an exception if there are no active contexts found or if there are too many matches

Specified by:
getContext in interface javax.enterprise.inject.spi.BeanManager
Parameters:
scopeType - The scope to match
Returns:
A single active context of the given scope
See Also:
BeanManager.getContext(java.lang.Class)

getReference

public Object getReference(javax.enterprise.inject.spi.Bean<?> bean,
                           javax.enterprise.context.spi.CreationalContext<?> creationalContext,
                           boolean noProxy)

getReference

public Object getReference(javax.enterprise.inject.spi.Bean<?> bean,
                           Type beanType,
                           javax.enterprise.context.spi.CreationalContext<?> creationalContext)
Specified by:
getReference in interface javax.enterprise.inject.spi.BeanManager

getReference

public Object getReference(javax.enterprise.inject.spi.InjectionPoint injectionPoint,
                           javax.enterprise.inject.spi.Bean<?> resolvedBean,
                           javax.enterprise.context.spi.CreationalContext<?> creationalContext)
Get a reference, registering the injection point used.

Parameters:
injectionPoint - the injection point to register
resolvedBean - the bean to get a reference to
creationalContext - the creationalContext
Returns:

getInjectableReference

public Object getInjectableReference(javax.enterprise.inject.spi.InjectionPoint injectionPoint,
                                     javax.enterprise.context.spi.CreationalContext<?> creationalContext)
Specified by:
getInjectableReference in interface javax.enterprise.inject.spi.BeanManager

getBean

public <T> javax.enterprise.inject.spi.Bean<T> getBean(Resolvable resolvable)

getBeans

public Set<javax.enterprise.inject.spi.Bean<?>> getBeans(String name)
Specified by:
getBeans in interface javax.enterprise.inject.spi.BeanManager

resolveDecorators

public List<javax.enterprise.inject.spi.Decorator<?>> resolveDecorators(Set<Type> types,
                                                                        Annotation... qualifiers)
Specified by:
resolveDecorators in interface javax.enterprise.inject.spi.BeanManager

resolveDecorators

public List<javax.enterprise.inject.spi.Decorator<?>> resolveDecorators(Set<Type> types,
                                                                        Set<Annotation> qualifiers)

resolveInterceptors

public List<javax.enterprise.inject.spi.Interceptor<?>> resolveInterceptors(javax.enterprise.inject.spi.InterceptionType type,
                                                                            Annotation... interceptorBindings)
Resolves a list of interceptors based on interception type and interceptor bindings

Specified by:
resolveInterceptors in interface javax.enterprise.inject.spi.BeanManager
Parameters:
type - The interception type to resolve
interceptorBindings - The binding types to match
Returns:
A list of matching interceptors
See Also:
BeanManager.resolveInterceptors(javax.enterprise.inject.spi.InterceptionType, java.lang.annotation.Annotation...)

resolveInterceptors

public List<javax.enterprise.inject.spi.Interceptor<?>> resolveInterceptors(javax.enterprise.inject.spi.InterceptionType type,
                                                                            Set<InterceptorBindingType> flattenedInterceptorBindings)

getBeanResolver

public TypeSafeBeanResolver<javax.enterprise.inject.spi.Bean<?>> getBeanResolver()
Get the web bean resolver. For internal use

Returns:
The resolver

getDecoratorResolver

public TypeSafeResolver<Resolvable,javax.enterprise.inject.spi.Decorator<?>> getDecoratorResolver()
Get the decorator resolver. For internal use

Returns:
The resolver

getAccessibleObserverNotifier

public ObserverNotifier getAccessibleObserverNotifier()
Get the observer notifier for accessible observer methods. For internal use

Returns:
The ObserverNotifier

toString

public String toString()
Gets a string representation

Overrides:
toString in class Object
Returns:
A string representation

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

createActivity

public BeanManagerImpl createActivity()
Specified by:
createActivity in interface org.jboss.weld.manager.api.WeldManager

setCurrent

public BeanManagerImpl setCurrent(Class<? extends Annotation> scopeType)
Specified by:
setCurrent in interface org.jboss.weld.manager.api.WeldManager

getCurrent

public BeanManagerImpl getCurrent()
Specified by:
getCurrent in interface org.jboss.weld.manager.api.WeldManager

getServices

public org.jboss.weld.bootstrap.api.ServiceRegistry getServices()
Specified by:
getServices in interface org.jboss.weld.manager.api.WeldManager

getSpecializedBeans

@Deprecated
public Map<javax.enterprise.context.spi.Contextual<?>,javax.enterprise.context.spi.Contextual<?>> getSpecializedBeans()
Deprecated. 


readResolve

protected Object readResolve()

getClientProxyProvider

public ClientProxyProvider getClientProxyProvider()

getContexts

protected Map<Class<? extends Annotation>,List<javax.enterprise.context.spi.Context>> getContexts()

getNamespaces

protected List<String> getNamespaces()
Returns:
the namespaces

getAccessibleNamespaces

public Iterable<String> getAccessibleNamespaces()

getId

public String getId()
Specified by:
getId in interface org.jboss.weld.manager.api.WeldManager

getChildIds

public AtomicInteger getChildIds()

getObservers

public List<javax.enterprise.inject.spi.ObserverMethod<?>> getObservers()

getRootNamespace

public Namespace getRootNamespace()

createInjectionTarget

public <T> javax.enterprise.inject.spi.InjectionTarget<T> createInjectionTarget(javax.enterprise.inject.spi.AnnotatedType<T> type)
Specified by:
createInjectionTarget in interface javax.enterprise.inject.spi.BeanManager

createInjectionTarget

public <T> javax.enterprise.inject.spi.InjectionTarget<T> createInjectionTarget(org.jboss.weld.ejb.spi.EjbDescriptor<T> descriptor)
Specified by:
createInjectionTarget in interface org.jboss.weld.manager.api.WeldManager

getMostSpecializedBean

public <X> javax.enterprise.inject.spi.Bean<? extends X> getMostSpecializedBean(javax.enterprise.inject.spi.Bean<X> bean)

validate

public void validate(javax.enterprise.inject.spi.InjectionPoint ij)
Specified by:
validate in interface javax.enterprise.inject.spi.BeanManager

getInterceptorBindingDefinition

public Set<Annotation> getInterceptorBindingDefinition(Class<? extends Annotation> bindingType)
Specified by:
getInterceptorBindingDefinition in interface javax.enterprise.inject.spi.BeanManager

getPassivationCapableBean

public javax.enterprise.inject.spi.Bean<?> getPassivationCapableBean(String id)
Specified by:
getPassivationCapableBean in interface javax.enterprise.inject.spi.BeanManager

getStereotypeDefinition

public Set<Annotation> getStereotypeDefinition(Class<? extends Annotation> stereotype)
Specified by:
getStereotypeDefinition in interface javax.enterprise.inject.spi.BeanManager

isQualifier

public boolean isQualifier(Class<? extends Annotation> annotationType)
Specified by:
isQualifier in interface javax.enterprise.inject.spi.BeanManager

isInterceptorBinding

public boolean isInterceptorBinding(Class<? extends Annotation> annotationType)
Specified by:
isInterceptorBinding in interface javax.enterprise.inject.spi.BeanManager

isNormalScope

public boolean isNormalScope(Class<? extends Annotation> annotationType)
Specified by:
isNormalScope in interface javax.enterprise.inject.spi.BeanManager

isPassivatingScope

public boolean isPassivatingScope(Class<? extends Annotation> annotationType)
Specified by:
isPassivatingScope in interface javax.enterprise.inject.spi.BeanManager

isScope

public boolean isScope(Class<? extends Annotation> annotationType)
Specified by:
isScope in interface javax.enterprise.inject.spi.BeanManager

isStereotype

public boolean isStereotype(Class<? extends Annotation> annotationType)
Specified by:
isStereotype in interface javax.enterprise.inject.spi.BeanManager

getMetaAnnotationStore

public MetaAnnotationStore getMetaAnnotationStore()

getELResolver

public javax.el.ELResolver getELResolver()
Specified by:
getELResolver in interface javax.enterprise.inject.spi.BeanManager

wrapExpressionFactory

public javax.el.ExpressionFactory wrapExpressionFactory(javax.el.ExpressionFactory expressionFactory)
Specified by:
wrapExpressionFactory in interface javax.enterprise.inject.spi.BeanManager

createCreationalContext

public <T> WeldCreationalContext<T> createCreationalContext(javax.enterprise.context.spi.Contextual<T> contextual)
Specified by:
createCreationalContext in interface javax.enterprise.inject.spi.BeanManager

createAnnotatedType

public <T> javax.enterprise.inject.spi.AnnotatedType<T> createAnnotatedType(Class<T> type)
Specified by:
createAnnotatedType in interface javax.enterprise.inject.spi.BeanManager

resolve

public <X> javax.enterprise.inject.spi.Bean<? extends X> resolve(Set<javax.enterprise.inject.spi.Bean<? extends X>> beans)
Specified by:
resolve in interface javax.enterprise.inject.spi.BeanManager

getEjbDescriptor

public <T> org.jboss.weld.ejb.spi.EjbDescriptor<T> getEjbDescriptor(String beanName)
Specified by:
getEjbDescriptor in interface org.jboss.weld.manager.api.WeldManager

getBean

public <T> SessionBean<T> getBean(org.jboss.weld.ejb.spi.EjbDescriptor<T> descriptor)
Specified by:
getBean in interface org.jboss.weld.manager.api.WeldManager

cleanup

public void cleanup()

getInterceptorModelRegistry

public Map<Class<?>,InterceptionModel<ClassMetadata<?>,?>> getInterceptorModelRegistry()

getInterceptorMetadataReader

public MetadataCachingReader getInterceptorMetadataReader()

fireProcessInjectionTarget

public <X> javax.enterprise.inject.spi.InjectionTarget<X> fireProcessInjectionTarget(javax.enterprise.inject.spi.AnnotatedType<X> annotatedType)
Specified by:
fireProcessInjectionTarget in interface org.jboss.weld.manager.api.WeldManager

extractAndFlattenInterceptorBindings

public Set<InterceptorBindingType> extractAndFlattenInterceptorBindings(Iterable<Annotation> annotations)

extractInterceptorBindings

public Set<InterceptorBindingType> extractInterceptorBindings(Iterable<Annotation> annotations)

extractInterceptorBindingsForQualifierInstance

public Set<QualifierInstance> extractInterceptorBindingsForQualifierInstance(Iterable<QualifierInstance> annotations)

flattenInterceptorBindings

public Set<InterceptorBindingType> flattenInterceptorBindings(Set<InterceptorBindingType> interceptorBindingTypes)
Extracts the complete set of interception bindings from a given set of interceptorBindingTypes.

Parameters:
interceptorBindingTypes -
Returns:

instance

public javax.enterprise.inject.Instance<Object> instance()
Specified by:
instance in interface org.jboss.weld.manager.api.WeldManager


Copyright © 2013 Seam Framework. All Rights Reserved.