public final class WebBeansUtil extends Object
Constructor and Description |
---|
WebBeansUtil(WebBeansContext webBeansContext) |
Modifier and Type | Method and Description |
---|---|
static void |
checkGenericType(Class<?> clazz,
Class<? extends Annotation> scope)
Checks the generic type requirements.
|
static void |
checkInjectionPointNamedQualifier(javax.enterprise.inject.spi.InjectionPoint injectionPoint) |
void |
checkManagedBean(Class<?> clazz)
Returns true if this class can be candidate for simple web bean, false otherwise.
|
<X> void |
checkManagedBeanCondition(javax.enterprise.inject.spi.AnnotatedType<X> type)
Checks the implementation class for checking conditions.
|
void |
checkManagedBeanCondition(Class<?> clazz) |
static void |
checkNullInstance(Object instance,
Class<?> scopeType,
String errorMessage,
Object... errorMessageArgs) |
static boolean |
checkObtainsInjectionPointConditions(javax.enterprise.inject.spi.InjectionPoint injectionPoint)
Returns true if instance injection point false otherwise.
|
static void |
checkProducerGenericType(javax.enterprise.inject.spi.Bean<?> bean,
Member member)
Check producer method/field bean return type.
|
void |
checkSerializableScopeType(Class<? extends Annotation> scopeType,
boolean isSerializable,
String errorMessage,
Object... errorMessageArgs) |
protected void |
configSpecializedProducerMethodBeans(List<ProducerMethodBean> sortedProducerBeans)
Configure a list of producer method beans, which override the same method
and the bean classes are directly extended each other.
|
void |
configureProducerMethodSpecializations()
Configure direct/indirect specialized producer method beans.
|
protected void |
configureSpecializations(Class<?> specializedClass,
List<Class<?>> beanClasses)
Configures the bean specializations.
|
void |
configureSpecializations(List<Class<?>> beanClasses) |
<T> ExtensionBean<T> |
createExtensionComponent(Class<T> clazz)
Creates a new extension bean.
|
<T> javax.enterprise.inject.spi.Bean<T> |
createNewComponent(Class<T> type) |
<T> NewManagedBean<T> |
createNewComponent(OwbBean<T> bean,
Class<T> type)
New WebBeans component class.
|
<T> ManagedBean<T> |
defineManagedBean(javax.enterprise.inject.spi.AnnotatedType<T> type) |
<T> ManagedBean<T> |
defineManagedBeanWithoutFireEvents(javax.enterprise.inject.spi.AnnotatedType<T> type)
This method will be used in
AfterBeanDiscovery.addBean(javax.enterprise.inject.spi.Bean) } |
<T> GProcessAnnotatedType |
fireProcessAnnotatedTypeEvent(javax.enterprise.inject.spi.AnnotatedType<T> annotatedType)
Returns
ProcessAnnotatedType event. |
<T> GProcessInjectionTarget |
fireProcessInjectionTargetEvent(InjectionTargetImpl<T> injectionTarget,
javax.enterprise.inject.spi.AnnotatedType<T> annotatedType)
Returns
ProcessInjectionTarget event. |
<T> GProcessInjectionTarget |
fireProcessInjectionTargetEventForJavaEeComponents(Class<T> componentClass)
Returns
ProcessInjectionTarget event. |
void |
fireProcessObservableMethodBeanEvent(Map<javax.enterprise.inject.spi.ObserverMethod<?>,javax.enterprise.inject.spi.AnnotatedMethod<?>> annotatedMethods) |
<T> javax.enterprise.inject.spi.Producer<T> |
fireProcessProducerEvent(javax.enterprise.inject.spi.Producer<T> producer,
javax.enterprise.inject.spi.AnnotatedMember<?> annotatedMember) |
void |
fireProcessProducerFieldBeanEvent(Map<ProducerFieldBean<?>,javax.enterprise.inject.spi.AnnotatedField<?>> annotatedFields) |
void |
fireProcessProducerMethodBeanEvent(Map<ProducerMethodBean<?>,javax.enterprise.inject.spi.AnnotatedMethod<?>> annotatedMethods,
javax.enterprise.inject.spi.AnnotatedType<?> annotatedType) |
<T> BeanMetadataBean<T> |
getBeanMetadataBean()
Creates a new bean metadata bean.
|
ConversationBean |
getConversationBean()
Returns new conversation bean instance.
|
static ClassLoader |
getCurrentClassLoader()
Gets current classloader with current thread.
|
<T> DecoratorMetadataBean<T> |
getDecoratorMetadataBean()
Creates a new decorator metadata bean.
|
<T> EventBean<T> |
getEventBean()
Creates a new event bean.
|
InjectionPointBean |
getInjectionPointBean()
Returns a new injected point bean instance.
|
<T> InstanceBean<T> |
getInstanceBean()
Creates a new instance bean.
|
<T> InterceptedOrDecoratedBeanMetadataBean<T> |
getInterceptedOrDecoratedBeanMetadataBean()
Creates a new metadata bean.
|
<T> InterceptorMetadataBean<T> |
getInterceptorMetadataBean()
Creates a new interceptor metadata bean.
|
static String |
getManagedBeanDefaultName(String clazzName) |
BeanManagerBean |
getManagerBean()
Creates a new manager bean instance.
|
static javax.enterprise.inject.spi.Bean<?> |
getMostSpecializedBean(javax.enterprise.inject.spi.BeanManager manager,
javax.enterprise.inject.spi.Bean<?> component) |
<T> Constructor<T> |
getNoArgConstructor(Class<T> clazz) |
static String |
getPassivationId(javax.enterprise.context.spi.Contextual<?> contextual) |
static String |
getProducerDefaultName(String methodName) |
static boolean |
hasInjectionTargetBeanAnnotatedWithAlternative(javax.enterprise.inject.spi.AnnotatedType<?> beanType,
Set<Class<? extends Annotation>> stereotypes) |
static boolean |
hasInjectionTargetBeanAnnotatedWithAlternative(InjectionTargetBean<?> bean) |
void |
inspectErrorStack(String logMessage) |
boolean |
isAnnotatedTypeDecoratorOrInterceptor(javax.enterprise.inject.spi.AnnotatedType<?> annotatedType)
Return true if this annotated type represents a decorator.
|
boolean |
isBeanEnabled(javax.enterprise.inject.spi.AnnotatedType<?> at,
Set<Class<? extends Annotation>> stereotypes) |
static boolean |
isCdiInterceptor(javax.enterprise.inject.spi.AnnotatedType<?> annotatedType) |
Set<javax.enterprise.inject.spi.Bean<?>> |
isConfiguredWebBeans(Class<?> clazz,
boolean annotate) |
boolean |
isConstructorOk(Class<?> clazz)
Check that simple web beans class has compatible constructor.
|
static boolean |
isDecorator(javax.enterprise.inject.spi.AnnotatedType<?> annotatedType) |
static boolean |
isDefaultExtensionBeanEventType(Class<?> clazz) |
static boolean |
isDefaultExtensionProducerOrObserverEventType(Class<?> clazz) |
static boolean |
isDependent(javax.enterprise.inject.spi.Bean<?> bean) |
protected static boolean |
isDirectlySpecializedBeanSet(Set<javax.enterprise.inject.spi.Bean<?>> beans)
Return true if a list of beans are directly specialized/extended each other.
|
static boolean |
isExtensionBeanEventType(Type type) |
static boolean |
isExtensionEventType(Type type) |
static boolean |
isExtensionProducerOrObserverEventType(Type type) |
boolean |
isPassivationCapableDependency(javax.enterprise.inject.spi.InjectionPoint injectionPoint) |
boolean |
isProducerBeanEnabled(InjectionTargetBean<?> parent,
Set<Class<? extends Annotation>> stereotypes,
Annotation[] annotations) |
boolean |
isSuperMethodNamed(AbstractOwbBean<?> component,
Method method,
Method superMethod)
Configures the name of the producer method for specializing the parent.
|
void |
setBeanEnableFlagForProducerBean(InjectionTargetBean<?> parent,
AbstractProducerBean<?> producer,
Annotation[] annotations) |
void |
setInjectionTargetBeanEnableFlag(InjectionTargetBean<?> bean)
Sets bean enabled flag.
|
boolean |
supportsJavaEeComponentInjections(Class<?> clazz)
Returns true if given class supports injections,
false otherwise.
|
static void |
throwRuntimeExceptions(Exception e) |
public WebBeansUtil(WebBeansContext webBeansContext)
public static ClassLoader getCurrentClassLoader()
public static void checkGenericType(Class<?> clazz, Class<? extends Annotation> scope)
public static void checkProducerGenericType(javax.enterprise.inject.spi.Bean<?> bean, Member member)
bean
- producer bean instancemember
- related member instancepublic void checkManagedBean(Class<?> clazz)
clazz
- implementation classWebBeansConfigurationException
- if any configuration exception occurspublic void checkManagedBeanCondition(Class<?> clazz) throws WebBeansConfigurationException
WebBeansConfigurationException
public boolean supportsJavaEeComponentInjections(Class<?> clazz)
Each plugin is asked with given class that supports injections or not.
clazz
- scanned classpublic boolean isConstructorOk(Class<?> clazz) throws WebBeansConfigurationException
clazz
- web beans simple classWebBeansConfigurationException
- if the web beans has incompatible
constructorpublic <T> javax.enterprise.inject.spi.Bean<T> createNewComponent(Class<T> type)
public <T> NewManagedBean<T> createNewComponent(OwbBean<T> bean, Class<T> type)
public <T> ExtensionBean<T> createExtensionComponent(Class<T> clazz)
T
- extension service classclazz
- impl. classpublic BeanManagerBean getManagerBean()
public <T> InstanceBean<T> getInstanceBean()
public <T> EventBean<T> getEventBean()
public <T> BeanMetadataBean<T> getBeanMetadataBean()
public <T> InterceptorMetadataBean<T> getInterceptorMetadataBean()
public <T> DecoratorMetadataBean<T> getDecoratorMetadataBean()
public <T> InterceptedOrDecoratedBeanMetadataBean<T> getInterceptedOrDecoratedBeanMetadataBean()
public ConversationBean getConversationBean()
public InjectionPointBean getInjectionPointBean()
protected static boolean isDirectlySpecializedBeanSet(Set<javax.enterprise.inject.spi.Bean<?>> beans)
beans,
- a set of specialized beans.protected void configureSpecializations(Class<?> specializedClass, List<Class<?>> beanClasses)
Specialized beans inherit the name
property
from their parents. Specialized bean deployment priority
must be higher than its super class related bean.
from the spec:
"If Y has a name and X declares a name explicitly, using @Named,
the container automatically detects the problem and treats it as a definition error.
specializedClass
- specialized classbeanClasses
- all Classes which are either @Specializes or specialized.DefinitionException
- if name is definedInconsistentSpecializationException
- related with priorityWebBeansConfigurationException
- any other exceptionprotected void configSpecializedProducerMethodBeans(List<ProducerMethodBean> sortedProducerBeans)
sortedProducerBeans
- public void configureProducerMethodSpecializations()
public Set<javax.enterprise.inject.spi.Bean<?>> isConfiguredWebBeans(Class<?> clazz, boolean annotate)
public <T> Constructor<T> getNoArgConstructor(Class<T> clazz)
public boolean isSuperMethodNamed(AbstractOwbBean<?> component, Method method, Method superMethod)
component
- producer method componentmethod
- specialized producer methodsuperMethod
- overriden super producer methodpublic static boolean checkObtainsInjectionPointConditions(javax.enterprise.inject.spi.InjectionPoint injectionPoint)
injectionPoint
- injection point definitionpublic static void checkNullInstance(Object instance, Class<?> scopeType, String errorMessage, Object... errorMessageArgs)
public void checkSerializableScopeType(Class<? extends Annotation> scopeType, boolean isSerializable, String errorMessage, Object... errorMessageArgs)
public static javax.enterprise.inject.spi.Bean<?> getMostSpecializedBean(javax.enterprise.inject.spi.BeanManager manager, javax.enterprise.inject.spi.Bean<?> component)
public <T> GProcessAnnotatedType fireProcessAnnotatedTypeEvent(javax.enterprise.inject.spi.AnnotatedType<T> annotatedType)
ProcessAnnotatedType
event.T
- bean typeannotatedType
- bean classpublic <T> GProcessInjectionTarget fireProcessInjectionTargetEvent(InjectionTargetImpl<T> injectionTarget, javax.enterprise.inject.spi.AnnotatedType<T> annotatedType)
ProcessInjectionTarget
event.T
- bean typepublic <T> GProcessInjectionTarget fireProcessInjectionTargetEventForJavaEeComponents(Class<T> componentClass)
ProcessInjectionTarget
event.T
- bean typepublic <T> javax.enterprise.inject.spi.Producer<T> fireProcessProducerEvent(javax.enterprise.inject.spi.Producer<T> producer, javax.enterprise.inject.spi.AnnotatedMember<?> annotatedMember)
public void fireProcessProducerMethodBeanEvent(Map<ProducerMethodBean<?>,javax.enterprise.inject.spi.AnnotatedMethod<?>> annotatedMethods, javax.enterprise.inject.spi.AnnotatedType<?> annotatedType)
public void fireProcessObservableMethodBeanEvent(Map<javax.enterprise.inject.spi.ObserverMethod<?>,javax.enterprise.inject.spi.AnnotatedMethod<?>> annotatedMethods)
public void fireProcessProducerFieldBeanEvent(Map<ProducerFieldBean<?>,javax.enterprise.inject.spi.AnnotatedField<?>> annotatedFields)
public static void checkInjectionPointNamedQualifier(javax.enterprise.inject.spi.InjectionPoint injectionPoint)
public void setInjectionTargetBeanEnableFlag(InjectionTargetBean<?> bean)
bean
- bean instancepublic boolean isBeanEnabled(javax.enterprise.inject.spi.AnnotatedType<?> at, Set<Class<? extends Annotation>> stereotypes)
public static boolean hasInjectionTargetBeanAnnotatedWithAlternative(InjectionTargetBean<?> bean)
public static boolean hasInjectionTargetBeanAnnotatedWithAlternative(javax.enterprise.inject.spi.AnnotatedType<?> beanType, Set<Class<? extends Annotation>> stereotypes)
public void setBeanEnableFlagForProducerBean(InjectionTargetBean<?> parent, AbstractProducerBean<?> producer, Annotation[] annotations)
public boolean isProducerBeanEnabled(InjectionTargetBean<?> parent, Set<Class<? extends Annotation>> stereotypes, Annotation[] annotations)
public static boolean isExtensionEventType(Type type)
public static boolean isExtensionBeanEventType(Type type)
public static boolean isDefaultExtensionBeanEventType(Class<?> clazz)
public static boolean isExtensionProducerOrObserverEventType(Type type)
public static boolean isDefaultExtensionProducerOrObserverEventType(Class<?> clazz)
public static boolean isDependent(javax.enterprise.inject.spi.Bean<?> bean)
public void inspectErrorStack(String logMessage)
public static String getPassivationId(javax.enterprise.context.spi.Contextual<?> contextual)
contextual
- the Bean
to checkPassivationCapable
and enabledpublic <T> ManagedBean<T> defineManagedBeanWithoutFireEvents(javax.enterprise.inject.spi.AnnotatedType<T> type)
AfterBeanDiscovery.addBean(javax.enterprise.inject.spi.Bean)
}public boolean isPassivationCapableDependency(javax.enterprise.inject.spi.InjectionPoint injectionPoint)
public static void throwRuntimeExceptions(Exception e)
public static boolean isDecorator(javax.enterprise.inject.spi.AnnotatedType<?> annotatedType)
true
if this annotated type represents a decorator.public boolean isAnnotatedTypeDecoratorOrInterceptor(javax.enterprise.inject.spi.AnnotatedType<?> annotatedType)
annotatedType
- annotated typepublic static boolean isCdiInterceptor(javax.enterprise.inject.spi.AnnotatedType<?> annotatedType)
true
if this AnnotatedType represents a CDI Interceptor
defined via a Interceptor
annotationpublic <T> ManagedBean<T> defineManagedBean(javax.enterprise.inject.spi.AnnotatedType<T> type)
public <X> void checkManagedBeanCondition(javax.enterprise.inject.spi.AnnotatedType<X> type) throws WebBeansConfigurationException
type
- implementation classWebBeansConfigurationException
- if any configuration exception occursCopyright © 2008–2016 The Apache Software Foundation. All rights reserved.