Package org.jboss.weld.util
Class Beans
- java.lang.Object
-
- org.jboss.weld.util.Beans
-
public class Beans extends Object
Helper class for bean inspection- Author:
- Pete Muir, David Allen, Marius Bogoevici, Ales Justin, Jozef Hartinger
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static <T> voidcallInitializers(T instance, CreationalContext<T> creationalContext, BeanManagerImpl manager, Iterable<? extends MethodInjectionPoint<?,?>> initializerMethods)Calls all initializers of the beanstatic <T,S,X extends EnhancedAnnotated<T,S>>
XcheckEnhancedAnnotatedAvailable(X enhancedAnnotated)static booleancontainsAllInterceptionBindings(Set<Annotation> expectedBindings, Set<QualifierInstance> existingBindings, BeanManagerImpl manager)static booleancontainsAllQualifiers(Set<QualifierInstance> requiredQualifiers, Set<QualifierInstance> qualifiers)Checks that all the qualifiers in the set requiredQualifiers are in the set of qualifiers.static StringcreateBeanAttributesId(BeanAttributes<?> attributes)Generates a unique signature forBeanAttributes.static StringcreateTypeCollectionId(Collection<? extends Type> types)Generates a unique signature of a collection of types.static <T> EnhancedAnnotatedConstructor<T>getBeanConstructor(EnhancedAnnotatedType<T> type)static <T> EnhancedAnnotatedConstructor<T>getBeanConstructorStrict(EnhancedAnnotatedType<T> type)static Class<? extends Annotation>getBeanDefiningAnnotationScope(AnnotatedType<?> annotatedType)static TypegetDeclaredBeanType(Class<?> clazz)Gets the declared bean typestatic org.jboss.weld.serialization.spi.BeanIdentifiergetIdentifier(Contextual<?> contextual, org.jboss.weld.bootstrap.api.ServiceRegistry serviceRegistry)static org.jboss.weld.serialization.spi.BeanIdentifiergetIdentifier(Contextual<?> contextual, org.jboss.weld.serialization.spi.ContextualStore contextualStore)static List<EnhancedAnnotatedMethod<?,?>>getInterceptableMethods(EnhancedAnnotatedType<?> type)static Set<Type>getLegalBeanTypes(Set<Type> types, Object baseType, Type... additionalTypes)static Set<Type>getTypedTypes(Map<Class<?>,Type> typeClosure, Class<?> rawType, Typed typed)Bean types of a bean that uses theTypedannotation.static Set<Type>getTypes(EnhancedAnnotated<?,?> annotated)Illegal bean types are ignored except for array and primitive types and unlessTypedis used.static booleanhasBuiltinScope(Bean<?> bean)static booleanhasSimpleCdiConstructor(AnnotatedType<?> type)static <T> voidinjectBoundFields(T instance, CreationalContext<T> creationalContext, BeanManagerImpl manager, Iterable<? extends FieldInjectionPoint<?,?>> injectableFields)Injects bound fieldsstatic <T> voidinjectEEFields(Iterable<Set<ResourceInjection<?>>> resourceInjectionsHierarchy, T beanInstance, CreationalContext<T> ctx)Injects EJBs and other EE resources.static <T> voidinjectFieldsAndInitializers(T instance, CreationalContext<T> ctx, BeanManagerImpl beanManager, List<? extends Iterable<? extends FieldInjectionPoint<?,?>>> injectableFields, List<? extends Iterable<? extends MethodInjectionPoint<?,?>>> initializerMethods)static booleanisAlternative(EnhancedAnnotated<?,?> annotated, MergedStereotypes<?,?> mergedStereotypes)Is alternative.static booleanisBeanEnabled(Bean<?> bean, ModuleEnablement enabled)static booleanisBeanProxyable(Bean<?> bean, BeanManagerImpl manager)Indicates if a bean is proxyablestatic <T> booleanisDecorator(EnhancedAnnotatedType<T> annotatedItem)static booleanisDecoratorDeclaringInAppropriateConstructor(AnnotatedType<?> annotatedType)static booleanisDecoratorDeclaringInAppropriateConstructor(org.jboss.weld.resources.spi.ClassFileInfo classFileInfo)static <T> booleanisInterceptor(AnnotatedType<T> annotatedItem)static booleanisPassivatingScope(Bean<?> bean, BeanManagerImpl manager)Indicates if a bean's scope type is passivatingstatic booleanisPassivationCapableBean(Bean<?> bean)Tests if a bean is capable of having its state temporarily stored to secondary storagestatic booleanisPassivationCapableDependency(Bean<?> bean)Tests if a bean is capable of having its state temporarily stored to secondary storagestatic booleanisTypeManagedBeanOrDecoratorOrInterceptor(AnnotatedType<?> annotatedType)Indicates if the type is a simple Web Beanstatic booleanisTypeManagedBeanOrDecoratorOrInterceptor(org.jboss.weld.resources.spi.ClassFileInfo classFileInfo, boolean checkTypeModifiers)static booleanisVetoed(Class<?> javaClass)Determines if this Java class should be vetoed as a result of presence ofVetoannotations.static booleanisVetoed(AnnotatedType<?> type)static Set<Annotation>mergeInQualifiers(BeanManagerImpl manager, Collection<Annotation> qualifiers, Annotation[] newQualifiers)static <T extends Bean<?>>
Set<T>removeDisabledBeans(Set<T> beans, BeanManagerImpl beanManager)Retains only beans which are enabled.static booleanshouldIgnoreFinalMethods(Bean<?> bean)static Bean<?>unwrap(Bean<?> bean)
-
-
-
Method Detail
-
isPassivatingScope
public static boolean isPassivatingScope(Bean<?> bean, BeanManagerImpl manager)
Indicates if a bean's scope type is passivating- Parameters:
bean- The bean to inspect- Returns:
- True if the scope is passivating, false otherwise
-
isPassivationCapableBean
public static boolean isPassivationCapableBean(Bean<?> bean)
Tests if a bean is capable of having its state temporarily stored to secondary storage- Parameters:
bean- The bean to inspect- Returns:
- True if the bean is passivation capable
-
isPassivationCapableDependency
public static boolean isPassivationCapableDependency(Bean<?> bean)
Tests if a bean is capable of having its state temporarily stored to secondary storage- Parameters:
bean- The bean to inspect- Returns:
- True if the bean is passivation capable
-
isBeanProxyable
public static boolean isBeanProxyable(Bean<?> bean, BeanManagerImpl manager)
Indicates if a bean is proxyable- Parameters:
bean- The bean to test- Returns:
- True if proxyable, false otherwise
-
getInterceptableMethods
public static List<EnhancedAnnotatedMethod<?,?>> getInterceptableMethods(EnhancedAnnotatedType<?> type)
-
containsAllQualifiers
public static boolean containsAllQualifiers(Set<QualifierInstance> requiredQualifiers, Set<QualifierInstance> qualifiers)
Checks that all the qualifiers in the set requiredQualifiers are in the set of qualifiers. Qualifier equality rules for annotation members are followed.- Parameters:
requiredQualifiers- The required qualifiersqualifiers- The set of qualifiers to check- Returns:
- True if all matches, false otherwise
-
containsAllInterceptionBindings
public static boolean containsAllInterceptionBindings(Set<Annotation> expectedBindings, Set<QualifierInstance> existingBindings, BeanManagerImpl manager)
-
removeDisabledBeans
public static <T extends Bean<?>> Set<T> removeDisabledBeans(Set<T> beans, BeanManagerImpl beanManager)
Retains only beans which are enabled.- Parameters:
beans- The mutable set of beans to filterbeanManager- The bean manager- Returns:
- a mutable set of enabled beans
-
isBeanEnabled
public static boolean isBeanEnabled(Bean<?> bean, ModuleEnablement enabled)
-
isAlternative
public static boolean isAlternative(EnhancedAnnotated<?,?> annotated, MergedStereotypes<?,?> mergedStereotypes)
Is alternative.- Parameters:
annotated- the annotatedmergedStereotypes- merged stereotypes- Returns:
- true if alternative, false otherwise
-
getBeanConstructorStrict
public static <T> EnhancedAnnotatedConstructor<T> getBeanConstructorStrict(EnhancedAnnotatedType<T> type)
-
getBeanConstructor
public static <T> EnhancedAnnotatedConstructor<T> getBeanConstructor(EnhancedAnnotatedType<T> type)
-
injectEEFields
public static <T> void injectEEFields(Iterable<Set<ResourceInjection<?>>> resourceInjectionsHierarchy, T beanInstance, CreationalContext<T> ctx)
Injects EJBs and other EE resources.- Parameters:
resourceInjectionsHierarchy-beanInstance-ctx-
-
getDeclaredBeanType
public static Type getDeclaredBeanType(Class<?> clazz)
Gets the declared bean type- Returns:
- The bean type
-
injectBoundFields
public static <T> void injectBoundFields(T instance, CreationalContext<T> creationalContext, BeanManagerImpl manager, Iterable<? extends FieldInjectionPoint<?,?>> injectableFields)Injects bound fields- Parameters:
instance- The instance to inject into
-
injectFieldsAndInitializers
public static <T> void injectFieldsAndInitializers(T instance, CreationalContext<T> ctx, BeanManagerImpl beanManager, List<? extends Iterable<? extends FieldInjectionPoint<?,?>>> injectableFields, List<? extends Iterable<? extends MethodInjectionPoint<?,?>>> initializerMethods)
-
callInitializers
public static <T> void callInitializers(T instance, CreationalContext<T> creationalContext, BeanManagerImpl manager, Iterable<? extends MethodInjectionPoint<?,?>> initializerMethods)Calls all initializers of the bean- Parameters:
instance- The bean instance
-
isInterceptor
public static <T> boolean isInterceptor(AnnotatedType<T> annotatedItem)
-
isDecorator
public static <T> boolean isDecorator(EnhancedAnnotatedType<T> annotatedItem)
-
mergeInQualifiers
public static Set<Annotation> mergeInQualifiers(BeanManagerImpl manager, Collection<Annotation> qualifiers, Annotation[] newQualifiers)
-
getTypes
public static Set<Type> getTypes(EnhancedAnnotated<?,?> annotated)
Illegal bean types are ignored except for array and primitive types and unlessTypedis used.- Returns:
- the set of bean types from an annotated element
-
getTypedTypes
public static Set<Type> getTypedTypes(Map<Class<?>,Type> typeClosure, Class<?> rawType, Typed typed)
Bean types of a bean that uses theTypedannotation.
-
isTypeManagedBeanOrDecoratorOrInterceptor
public static boolean isTypeManagedBeanOrDecoratorOrInterceptor(AnnotatedType<?> annotatedType)
Indicates if the type is a simple Web Bean- Parameters:
clazz- The type to inspect- Returns:
- True if simple Web Bean, false otherwise
-
isTypeManagedBeanOrDecoratorOrInterceptor
public static boolean isTypeManagedBeanOrDecoratorOrInterceptor(org.jboss.weld.resources.spi.ClassFileInfo classFileInfo, boolean checkTypeModifiers)- Parameters:
classFileInfo-checkTypeModifiers- - this flag reflects whether Jandex version including fix for JANDEX-37 could be used- Returns:
-
isDecoratorDeclaringInAppropriateConstructor
public static boolean isDecoratorDeclaringInAppropriateConstructor(org.jboss.weld.resources.spi.ClassFileInfo classFileInfo)
-
isDecoratorDeclaringInAppropriateConstructor
public static boolean isDecoratorDeclaringInAppropriateConstructor(AnnotatedType<?> annotatedType)
-
hasSimpleCdiConstructor
public static boolean hasSimpleCdiConstructor(AnnotatedType<?> type)
-
isVetoed
public static boolean isVetoed(Class<?> javaClass)
Determines if this Java class should be vetoed as a result of presence ofVetoannotations.
-
isVetoed
public static boolean isVetoed(AnnotatedType<?> type)
-
createBeanAttributesId
public static String createBeanAttributesId(BeanAttributes<?> attributes)
Generates a unique signature forBeanAttributes.
-
createTypeCollectionId
public static String createTypeCollectionId(Collection<? extends Type> types)
Generates a unique signature of a collection of types.
-
checkEnhancedAnnotatedAvailable
public static <T,S,X extends EnhancedAnnotated<T,S>> X checkEnhancedAnnotatedAvailable(X enhancedAnnotated)
-
hasBuiltinScope
public static boolean hasBuiltinScope(Bean<?> bean)
-
getBeanDefiningAnnotationScope
public static Class<? extends Annotation> getBeanDefiningAnnotationScope(AnnotatedType<?> annotatedType)
-
getLegalBeanTypes
public static Set<Type> getLegalBeanTypes(Set<Type> types, Object baseType, Type... additionalTypes)
- Parameters:
types- The initial set of typesannotated-additionalTypes- Types to add to the initial set- Returns:
- the set of legal bean types
-
getIdentifier
public static org.jboss.weld.serialization.spi.BeanIdentifier getIdentifier(Contextual<?> contextual, org.jboss.weld.serialization.spi.ContextualStore contextualStore)
- Parameters:
contextual-contextualStore-- Returns:
- the identifier for the given contextual
- See Also:
getIdentifier(Contextual, ContextualStore, ServiceRegistry)
-
getIdentifier
public static org.jboss.weld.serialization.spi.BeanIdentifier getIdentifier(Contextual<?> contextual, org.jboss.weld.bootstrap.api.ServiceRegistry serviceRegistry)
- Parameters:
contextual-serviceRegistry-- Returns:
- the identifier for the given contextual
- See Also:
getIdentifier(Contextual, ContextualStore, ServiceRegistry)
-
shouldIgnoreFinalMethods
public static boolean shouldIgnoreFinalMethods(Bean<?> bean)
- Parameters:
bean-- Returns:
trueif final methods should be ignored when checking proxyability
-
-