|
||||||||||
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.MissingDependencyException
private 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 Container
public <T> T inject(Class<T> implementation)
Container
implementation
.
inject
in interface Container
public <T> T getInstance(Class<T> type, String name)
Container
ContainerBuilder
.
getInstance
in interface Container
public <T> T getInstance(Class<T> type)
Container
getInstance(type,
DEFAULT_NAME)
.
getInstance
in interface Container
public Set<String> getInstanceNames(Class<?> type)
Container
getInstanceNames
in interface Container
type
- 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 Container
public void removeScopeStrategy()
Container
removeScopeStrategy
in interface Container
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |