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 ClassAnalyzerthis is the default implementation of the ClassAnalyzer
-
-
Field Summary
Fields Modifier and Type Field Description private ServiceLocatorImpllocator-
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.MethodgetPostConstructMethod(java.lang.Class<T> clazz)Will return the postConstruct method of the class<T> java.lang.reflect.MethodgetPreDestroyMethod(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.NoSuchMethodExceptionDescription copied from interface:ClassAnalyzerWill 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
InjectionResolverand theInjectionResolver.isConstructorParameterIndicator()is set to true- Specified by:
getConstructorin 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 MultiExceptionDescription copied from interface:ClassAnalyzerWill 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
InjectionResolverand theInjectionResolver.isMethodParameterIndicator()is set to true. Also, any method that has a parameter marked withSubscribeTowill NOT be returned, as these methods are instead meant to be called when an event is fired- Specified by:
getInitializerMethodsin 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 MultiExceptionDescription copied from interface:ClassAnalyzerWill 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:
getFieldsin 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 MultiExceptionDescription copied from interface:ClassAnalyzerWill return the postConstruct method of the classThe default implementation will return the
PostConstruct.postConstruct()method or the method annotated with PostConstruct- Specified by:
getPostConstructMethodin 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 MultiExceptionDescription copied from interface:ClassAnalyzerWill return the preDestroy method of the classThe default implementation will return the
PreDestroy.preDestroy()method or the method annotated with PreDestroy- Specified by:
getPreDestroyMethodin 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
-
-