|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.opensymphony.xwork2.inject.ContainerImpl
class ContainerImpl
Default Container implementation.
ContainerBuilder| Nested Class Summary | |
|---|---|
(package private) static class |
ContainerImpl.ConstructorInjector<T>
|
(package private) static interface |
ContainerImpl.ContextualCallable<T>
|
(package private) static class |
ContainerImpl.FieldInjector
|
(package private) static interface |
ContainerImpl.Injector
Injects a field or method in a given object. |
(package private) static interface |
ContainerImpl.InjectorFactory<M extends Member & AnnotatedElement>
|
(package private) static class |
ContainerImpl.MethodInjector
|
(package private) static class |
ContainerImpl.MissingDependencyException
|
(package private) static class |
ContainerImpl.ParameterInjector<T>
|
| Field Summary | |
|---|---|
(package private) Map<Class<?>,ContainerImpl.ConstructorInjector> |
constructors
|
(package private) Map<Key<?>,InternalFactory<?>> |
factories
|
(package private) Map<Class<?>,Set<String>> |
factoryNamesByType
|
(package private) Map<Class<?>,List<ContainerImpl.Injector>> |
injectors
Field and method injectors. |
(package private) ThreadLocal<Object[]> |
localContext
|
(package private) ThreadLocal<Object> |
localScopeStrategy
|
| Fields inherited from interface com.opensymphony.xwork2.inject.Container |
|---|
DEFAULT_NAME |
| Constructor Summary | |
|---|---|
ContainerImpl(Map<Key<?>,InternalFactory<?>> factories)
|
|
| Method Summary | ||
|---|---|---|
(package private) void |
addInjectors(Class clazz,
List<ContainerImpl.Injector> injectors)
Recursively adds injectors for fields and methods from the given class to the given list. |
|
(package private) void |
addInjectorsForFields(Field[] fields,
boolean statics,
List<ContainerImpl.Injector> injectors)
|
|
(package private)
|
addInjectorsForMembers(List<M> members,
boolean statics,
List<ContainerImpl.Injector> injectors,
ContainerImpl.InjectorFactory<M> injectorFactory)
|
|
(package private) void |
addInjectorsForMethods(Method[] methods,
boolean statics,
List<ContainerImpl.Injector> injectors)
|
|
(package private)
|
callInContext(ContainerImpl.ContextualCallable<T> callable)
Looks up thread local context. |
|
(package private)
|
createParameterInjector(Key<T> key,
Member member)
|
|
(package private) Inject |
findInject(Annotation[] annotations)
Finds the Inject annotation in an array of annotations. |
|
(package private)
|
getConstructor(Class<T> implementation)
Gets a constructor function for a given implementation class. |
|
(package private)
|
getFactory(Key<T> key)
|
|
|
getInstance(Class<T> type)
Convenience method. Equivalent to getInstance(type,
DEFAULT_NAME). |
|
(package private)
|
getInstance(Class<T> type,
InternalContext context)
|
|
|
getInstance(Class<T> type,
String name)
Gets an instance of the given dependency which was declared in ContainerBuilder. |
|
(package private)
|
getInstance(Class<T> type,
String name,
InternalContext context)
|
|
Set<String> |
getInstanceNames(Class<?> type)
Gets a set of all registered names for the given type |
|
private static Object[] |
getParameters(Member member,
InternalContext context,
ContainerImpl.ParameterInjector[] parameterInjectors)
|
|
(package private)
|
getParametersInjectors(M member,
Annotation[][] annotations,
Class[] parameterTypes,
String defaultName)
Gets parameter injectors. |
|
|
inject(Class<T> implementation)
Creates and injects a new instance of type implementation. |
|
(package private)
|
inject(Class<T> implementation,
InternalContext context)
|
|
void |
inject(Object o)
Injects dependencies into the fields and methods of an existing object. |
|
(package private) void |
inject(Object o,
InternalContext context)
|
|
(package private) void |
injectStatics(List<Class<?>> staticInjections)
|
|
private boolean |
isStatic(Member member)
|
|
void |
removeScopeStrategy()
Removes the scope strategy for the current thread. |
|
void |
setScopeStrategy(Scope.Strategy scopeStrategy)
Sets the scope strategy for the current thread. |
|
private ContainerImpl.ParameterInjector<?>[] |
toArray(List<ContainerImpl.ParameterInjector<?>> parameterInjections)
|
|
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
final Map<Key<?>,InternalFactory<?>> factories
final Map<Class<?>,Set<String>> factoryNamesByType
final Map<Class<?>,List<ContainerImpl.Injector>> injectors
Map<Class<?>,ContainerImpl.ConstructorInjector> constructors
ThreadLocal<Object[]> localContext
final ThreadLocal<Object> localScopeStrategy
| Constructor Detail |
|---|
ContainerImpl(Map<Key<?>,InternalFactory<?>> factories)
| Method Detail |
|---|
<T> InternalFactory<? extends T> getFactory(Key<T> key)
void addInjectors(Class clazz,
List<ContainerImpl.Injector> injectors)
void injectStatics(List<Class<?>> staticInjections)
void addInjectorsForMethods(Method[] methods,
boolean statics,
List<ContainerImpl.Injector> injectors)
void addInjectorsForFields(Field[] fields,
boolean statics,
List<ContainerImpl.Injector> injectors)
<M extends Member & AnnotatedElement> void addInjectorsForMembers(List<M> members,
boolean statics,
List<ContainerImpl.Injector> injectors,
ContainerImpl.InjectorFactory<M> injectorFactory)
private boolean isStatic(Member member)
<M extends AccessibleObject & Member> ContainerImpl.ParameterInjector<?>[] getParametersInjectors(M member,
Annotation[][] annotations,
Class[] parameterTypes,
String defaultName)
throws ContainerImpl.MissingDependencyException
member - to which the parameters belongannotations - on the parametersparameterTypes - parameter types
ContainerImpl.MissingDependencyException
<T> ContainerImpl.ParameterInjector<T> createParameterInjector(Key<T> key,
Member member)
throws ContainerImpl.MissingDependencyException
ContainerImpl.MissingDependencyExceptionprivate ContainerImpl.ParameterInjector<?>[] toArray(List<ContainerImpl.ParameterInjector<?>> parameterInjections)
Inject findInject(Annotation[] annotations)
Inject annotation in an array of annotations.
private static Object[] getParameters(Member member,
InternalContext context,
ContainerImpl.ParameterInjector[] parameterInjectors)
void inject(Object o,
InternalContext context)
<T> T inject(Class<T> implementation,
InternalContext context)
<T> T getInstance(Class<T> type,
String name,
InternalContext context)
<T> T getInstance(Class<T> type,
InternalContext context)
public void inject(Object o)
Container
inject in interface Containerpublic <T> T inject(Class<T> implementation)
Containerimplementation.
inject in interface Container
public <T> T getInstance(Class<T> type,
String name)
ContainerContainerBuilder.
getInstance in interface Containerpublic <T> T getInstance(Class<T> type)
ContainergetInstance(type,
DEFAULT_NAME).
getInstance in interface Containerpublic Set<String> getInstanceNames(Class<?> type)
Container
getInstanceNames in interface Containertype - The instance type
<T> T callInContext(ContainerImpl.ContextualCallable<T> callable)
<T> ContainerImpl.ConstructorInjector<T> getConstructor(Class<T> implementation)
public void setScopeStrategy(Scope.Strategy scopeStrategy)
Container
setScopeStrategy in interface Containerpublic void removeScopeStrategy()
Container
removeScopeStrategy in interface Container
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||