@Singleton @Named(value="default") @Visibility(value=LOCAL) public class DefaultClassAnalyzer extends Object implements ClassAnalyzer
DEFAULT_IMPLEMENTATION_NAME
Constructor and Description |
---|
DefaultClassAnalyzer(ServiceLocatorImpl locator)
The DefaultClassAnalyzer is per ServiceLocatorImpl
|
Modifier and Type | Method and Description |
---|---|
<T> Constructor<T> |
getConstructor(Class<T> clazz)
Will return the constructor that it to be used when constructing this
service
|
<T> Set<Field> |
getFields(Class<T> clazz)
Will return the set of initializer fields to be used when initializing
this service
|
<T> Set<Method> |
getInitializerMethods(Class<T> clazz)
Will return the set of initializer method to be used when initializing
this service
|
<T> Method |
getPostConstructMethod(Class<T> clazz)
Will return the postConstruct method of the class
|
<T> Method |
getPreDestroyMethod(Class<T> clazz)
Will return the preDestroy method of the class
|
public DefaultClassAnalyzer(ServiceLocatorImpl locator)
locator
- The non-null locator associated with this analyzerpublic <T> Constructor<T> getConstructor(Class<T> clazz) throws MultiException, NoSuchMethodException
ClassAnalyzer
The default implementation will use the zero-arg constructor if no single
constructor with Inject is found. Also will return any constructor
that is covered by an InjectionResolver
and the
InjectionResolver.isConstructorParameterIndicator()
is
set to true
getConstructor
in interface ClassAnalyzer
clazz
- the non-null class to analyzeMultiException
- on an error when analyzing the classNoSuchMethodException
- if there was no available constructorpublic <T> Set<Method> getInitializerMethods(Class<T> clazz) throws MultiException
ClassAnalyzer
The default implementation will return all methods marked with Inject
or that have a parameter that is covered by an InjectionResolver
and the InjectionResolver.isMethodParameterIndicator()
is set
to true. Also, any method that has a parameter marked with
SubcribeTo
will NOT be returned, as these methods are instead
meant to be called when an event is fired
getInitializerMethods
in interface ClassAnalyzer
clazz
- the non-null class to analyzeMultiException
- on an error when analyzing the classpublic <T> Set<Field> getFields(Class<T> clazz) throws MultiException
ClassAnalyzer
The default implementation will return all fields marked with Inject
or that have a parameter that is covered by an InjectionResolver
getFields
in interface ClassAnalyzer
clazz
- the non-null class to analyzeMultiException
- on an error when analyzing the classpublic <T> Method getPostConstructMethod(Class<T> clazz) throws MultiException
ClassAnalyzer
The default implementation will return the PostConstruct.postConstruct()
method or the method annotated with PostConstruct
getPostConstructMethod
in interface ClassAnalyzer
clazz
- the non-null class to analyzeMultiException
- on an error when analyzing the classpublic <T> Method getPreDestroyMethod(Class<T> clazz) throws MultiException
ClassAnalyzer
The default implementation will return the PreDestroy.preDestroy()
method or the method annotated with PreDestroy
getPreDestroyMethod
in interface ClassAnalyzer
clazz
- the non-null class to analyzeMultiException
- on an error when analyzing the classCopyright © 2009-2017, Oracle and/or its affiliates. All Rights Reserved.