Class DefaultClassAnalyzer
- java.lang.Object
-
- org.jvnet.hk2.internal.DefaultClassAnalyzer
-
- All Implemented Interfaces:
ClassAnalyzer
@Singleton @Named("default") @Visibility(LOCAL) public class DefaultClassAnalyzer extends java.lang.Object implements ClassAnalyzer
this is the default implementation of the ClassAnalyzer
-
-
Field Summary
Fields Modifier and Type Field Description private ServiceLocatorImpl
locator
-
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> java.lang.reflect.Constructor<T>
getConstructor(java.lang.Class<T> clazz)
Will return the constructor that it to be used when constructing this service<T> java.util.Set<java.lang.reflect.Field>
getFields(java.lang.Class<T> clazz)
Will return the set of initializer fields to be used when initializing this service<T> java.util.Set<java.lang.reflect.Method>
getInitializerMethods(java.lang.Class<T> clazz)
Will return the set of initializer method to be used when initializing this service<T> java.lang.reflect.Method
getPostConstructMethod(java.lang.Class<T> clazz)
Will return the postConstruct method of the class<T> java.lang.reflect.Method
getPreDestroyMethod(java.lang.Class<T> clazz)
Will return the preDestroy method of the class
-
-
-
Field Detail
-
locator
private final ServiceLocatorImpl locator
-
-
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> java.lang.reflect.Constructor<T> getConstructor(java.lang.Class<T> clazz) throws MultiException, java.lang.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 classjava.lang.NoSuchMethodException
- if there was no available constructor
-
getInitializerMethods
public <T> java.util.Set<java.lang.reflect.Method> getInitializerMethods(java.lang.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> java.util.Set<java.lang.reflect.Field> getFields(java.lang.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> java.lang.reflect.Method getPostConstructMethod(java.lang.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> java.lang.reflect.Method getPreDestroyMethod(java.lang.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
-
-