Class DefaultClassAnalyzer
- java.lang.Object
-
- org.jvnet.hk2.internal.DefaultClassAnalyzer
-
- All Implemented Interfaces:
ClassAnalyzer
@Singleton @Named("default") @Visibility(LOCAL) public class DefaultClassAnalyzer extends Object implements ClassAnalyzer
this is the default implementation of the ClassAnalyzer- Author:
- jwells
-
-
Field Summary
-
Fields inherited from interface org.glassfish.hk2.api.ClassAnalyzer
DEFAULT_IMPLEMENTATION_NAME
-
-
Constructor Summary
Constructors Constructor Description DefaultClassAnalyzer(ServiceLocatorImpl locator)
The DefaultClassAnalyzer is per ServiceLocatorImpl
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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
-
-
-
Constructor Detail
-
DefaultClassAnalyzer
public DefaultClassAnalyzer(ServiceLocatorImpl locator)
The DefaultClassAnalyzer is per ServiceLocatorImpl- Parameters:
locator
- The non-null locator associated with this analyzer
-
-
Method Detail
-
getConstructor
public <T> Constructor<T> getConstructor(Class<T> clazz) throws MultiException, NoSuchMethodException
Description copied from interface:ClassAnalyzer
Will return the constructor that it to be used when constructing this serviceThe 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 theInjectionResolver.isConstructorParameterIndicator()
is set to true- Specified by:
getConstructor
in interfaceClassAnalyzer
- Parameters:
clazz
- the non-null class to analyze- Returns:
- The non-null constructor to use for creating this service
- Throws:
MultiException
- on an error when analyzing the classNoSuchMethodException
- if there was no available constructor
-
getInitializerMethods
public <T> Set<Method> getInitializerMethods(Class<T> clazz) throws MultiException
Description copied from interface:ClassAnalyzer
Will return the set of initializer method to be used when initializing this serviceThe default implementation will return all methods marked with Inject or that have a parameter that is covered by an
InjectionResolver
and theInjectionResolver.isMethodParameterIndicator()
is set to true. Also, any method that has a parameter marked withSubscribeTo
will NOT be returned, as these methods are instead meant to be called when an event is fired- Specified by:
getInitializerMethods
in interfaceClassAnalyzer
- Parameters:
clazz
- the non-null class to analyze- Returns:
- A non-null but possibly empty set of initialization methods
- Throws:
MultiException
- on an error when analyzing the class
-
getFields
public <T> Set<Field> getFields(Class<T> clazz) throws MultiException
Description copied from interface:ClassAnalyzer
Will return the set of initializer fields to be used when initializing this serviceThe default implementation will return all fields marked with Inject or that have a parameter that is covered by an
InjectionResolver
- Specified by:
getFields
in interfaceClassAnalyzer
- Parameters:
clazz
- the non-null class to analyze- Returns:
- A non-null but possibly empty set of initialization fields
- Throws:
MultiException
- on an error when analyzing the class
-
getPostConstructMethod
public <T> Method getPostConstructMethod(Class<T> clazz) throws MultiException
Description copied from interface:ClassAnalyzer
Will return the postConstruct method of the classThe default implementation will return the
PostConstruct.postConstruct()
method or the method annotated with PostConstruct- Specified by:
getPostConstructMethod
in interfaceClassAnalyzer
- Parameters:
clazz
- the non-null class to analyze- Returns:
- A possibly null method representing the postConstruct method to call
- Throws:
MultiException
- on an error when analyzing the class
-
getPreDestroyMethod
public <T> Method getPreDestroyMethod(Class<T> clazz) throws MultiException
Description copied from interface:ClassAnalyzer
Will return the preDestroy method of the classThe default implementation will return the
PreDestroy.preDestroy()
method or the method annotated with PreDestroy- Specified by:
getPreDestroyMethod
in interfaceClassAnalyzer
- Parameters:
clazz
- the non-null class to analyze- Returns:
- A possibly null method representing the preDestroy method to call
- Throws:
MultiException
- on an error when analyzing the class
-
-