Package org.picocontainer.parameters
Class BasicComponentParameter
java.lang.Object
org.picocontainer.parameters.AbstractParameter
org.picocontainer.parameters.BasicComponentParameter
- All Implemented Interfaces:
Serializable
,Parameter
- Direct Known Subclasses:
ComponentParameter
A BasicComponentParameter should be used to pass in a particular component as argument to a
different component's constructor. This is particularly useful in cases where several
components of the same type have been registered, but with a different key. Passing a
ComponentParameter as a parameter when registering a component will give PicoContainer a hint
about what other component to use in the constructor. This Parameter will never resolve
against a collecting type, that is not directly registered in the PicoContainer itself.
- Author:
- Jon Tirsén, Aslak Hellesøy, Jörg Schaible, Thomas Heller
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.picocontainer.Parameter
Parameter.DelegateResolver, Parameter.NotResolved, Parameter.Resolver, Parameter.ValueResolver
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final BasicComponentParameter
BASIC_DEFAULT
is an instance of BasicComponentParameter using the default constructor. -
Constructor Summary
ConstructorsConstructorDescriptionExpect any parameter of the appropriate type.BasicComponentParameter
(Object componentKey) Expect a parameter matching a component of a specific key. -
Method Summary
Modifier and TypeMethodDescriptionvoid
accept
(PicoVisitor visitor) Visit the currentParameter
.static ComponentAdapter
<?> static <T> String[]
makeFoundAmbiguousStrings
(Collection<ComponentAdapter<T>> found) resolve
(PicoContainer container, ComponentAdapter<?> forAdapter, ComponentAdapter<?> injecteeAdapter, Type expectedType, NameBinding expectedNameBinding, boolean useNames, Annotation binding) Check whether the given Parameter can be satisfied by the container.protected <T> ComponentAdapter
<T> resolveAdapter
(PicoContainer container, ComponentAdapter adapter, Class<T> expectedType, NameBinding expectedNameBinding, boolean useNames, Annotation binding) void
verify
(PicoContainer container, ComponentAdapter<?> forAdapter, Type expectedType, NameBinding expectedNameBinding, boolean useNames, Annotation binding) Verify that the Parameter can satisfy the expected type using the containerMethods inherited from class org.picocontainer.parameters.AbstractParameter
isResolvable, resolveInstance
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.picocontainer.Parameter
isResolvable, resolveInstance
-
Field Details
-
BASIC_DEFAULT
BASIC_DEFAULT
is an instance of BasicComponentParameter using the default constructor.
-
-
Constructor Details
-
BasicComponentParameter
Expect a parameter matching a component of a specific key.- Parameters:
componentKey
- the key of the desired addComponent
-
BasicComponentParameter
public BasicComponentParameter()Expect any parameter of the appropriate type.
-
-
Method Details
-
resolve
public Parameter.Resolver resolve(PicoContainer container, ComponentAdapter<?> forAdapter, ComponentAdapter<?> injecteeAdapter, Type expectedType, NameBinding expectedNameBinding, boolean useNames, Annotation binding) Check whether the given Parameter can be satisfied by the container.- Specified by:
resolve
in interfaceParameter
- Parameters:
container
- the container from which dependencies are resolved.forAdapter
- theComponentAdapter
that is asking for the instanceinjecteeAdapter
- the adapter to be injected into (null for N/A)expectedType
- the required typeexpectedNameBinding
- Expected parameter nameuseNames
- should use parameter names for disambiguationbinding
- @returntrue
if the component parameter can be resolved.- Returns:
true
if the Parameter can be verified.- See Also:
-
verify
public void verify(PicoContainer container, ComponentAdapter<?> forAdapter, Type expectedType, NameBinding expectedNameBinding, boolean useNames, Annotation binding) Description copied from interface:Parameter
Verify that the Parameter can satisfy the expected type using the container- Specified by:
verify
in interfaceParameter
- Parameters:
container
- the container from which dependencies are resolved.forAdapter
- theComponentAdapter
that is asking for the verificationexpectedType
- the required typeexpectedNameBinding
- Expected parameter nameuseNames
-binding
-
-
accept
Visit the currentParameter
. -
resolveAdapter
protected <T> ComponentAdapter<T> resolveAdapter(PicoContainer container, ComponentAdapter adapter, Class<T> expectedType, NameBinding expectedNameBinding, boolean useNames, Annotation binding) -
makeFoundAmbiguousStrings
-
findInjectorOrInstanceAdapter
-