public class CollectionComponentParameter extends AbstractParameter implements Parameter, Serializable
Array
, a
Collection
or Map
of components automatically. The collection will contain
all components of a special type and additionally the type of the key may be specified. In
case of a map, the map's keys are the one of the component adapter.Parameter.DelegateResolver, Parameter.NotResolved, Parameter.Resolver, Parameter.ValueResolver
Modifier and Type | Field and Description |
---|---|
static CollectionComponentParameter |
ARRAY
Use
ARRAY as Parameter for an Array that must have elements. |
static CollectionComponentParameter |
ARRAY_ALLOW_EMPTY
Use
ARRAY_ALLOW_EMPTY as Parameter for an Array that may have no
elements. |
Constructor and Description |
---|
CollectionComponentParameter()
Expect an
Array of an appropriate type as parameter. |
CollectionComponentParameter(boolean emptyCollection)
Expect an
Array of an appropriate type as parameter. |
CollectionComponentParameter(Class componentValueType,
boolean emptyCollection)
|
CollectionComponentParameter(Class componentKeyType,
Class componentValueType,
boolean emptyCollection)
|
Modifier and Type | Method and Description |
---|---|
void |
accept(PicoVisitor visitor)
Visit the current
Parameter . |
protected boolean |
evaluate(ComponentAdapter adapter)
Evaluate whether the given component adapter will be part of the collective type.
|
protected Map<Object,ComponentAdapter<?>> |
getMatchingComponentAdapters(PicoContainer container,
ComponentAdapter adapter,
Class keyType,
Class valueType)
Collect the matching ComponentAdapter instances.
|
Parameter.Resolver |
resolve(PicoContainer container,
ComponentAdapter<?> forAdapter,
ComponentAdapter<?> injecteeAdapter,
Type expectedType,
NameBinding expectedNameBinding,
boolean useNames,
Annotation binding)
Check for a successful dependency resolution of the parameter for the expected type.
|
void |
verify(PicoContainer container,
ComponentAdapter<?> adapter,
Type expectedType,
NameBinding expectedNameBinding,
boolean useNames,
Annotation binding)
Verify a successful dependency resolution of the parameter for the expected type.
|
isResolvable, resolveInstance
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
isResolvable, resolveInstance
public static final CollectionComponentParameter ARRAY
ARRAY
as Parameter
for an Array that must have elements.public static final CollectionComponentParameter ARRAY_ALLOW_EMPTY
ARRAY_ALLOW_EMPTY
as Parameter
for an Array that may have no
elements.public CollectionComponentParameter()
Array
of an appropriate type as parameter. At least one component of
the array's component type must exist.public CollectionComponentParameter(boolean emptyCollection)
Array
of an appropriate type as parameter.emptyCollection
- true
if an empty array also is a valid dependency
resolution.public CollectionComponentParameter(Class componentValueType, boolean emptyCollection)
componentValueType
- the type of the components (ignored in case of an Array)emptyCollection
- true
if an empty collection resolves the
dependency.public CollectionComponentParameter(Class componentKeyType, Class componentValueType, boolean emptyCollection)
componentKeyType
- the type of the component's keycomponentValueType
- the type of the components (ignored in case of an Array)emptyCollection
- true
if an empty collection resolves the
dependency.public Parameter.Resolver resolve(PicoContainer container, ComponentAdapter<?> forAdapter, ComponentAdapter<?> injecteeAdapter, Type expectedType, NameBinding expectedNameBinding, boolean useNames, Annotation binding)
Array
,Collection
or Map
. An empty collection is only a valid
resolution, if the emptyCollection
flag was set.resolve
in interface Parameter
container
- the container from which dependencies are resolved.injecteeAdapter
- expectedType
- the required typeexpectedNameBinding
- Expected parameter nameuseNames
- binding
- @return true
if matching components were found or an empty collective type
is allowedforAdapter
- the ComponentAdapter
that is asking for the instancepublic void verify(PicoContainer container, ComponentAdapter<?> adapter, Type expectedType, NameBinding expectedNameBinding, boolean useNames, Annotation binding)
Array
,
Collection
or Map
. An empty collection is only a valid resolution, if
the emptyCollection
flag was set.verify
in interface Parameter
container
- the container from which dependencies are resolved.adapter
- the ComponentAdapter
that is asking for the verificationexpectedType
- the required typeexpectedNameBinding
- Expected parameter nameuseNames
- binding
- PicoCompositionException
- if parameter and its dependencies cannot be resolvedpublic void accept(PicoVisitor visitor)
Parameter
.accept
in interface Parameter
visitor
- the visitor.Parameter.accept(org.picocontainer.PicoVisitor)
protected boolean evaluate(ComponentAdapter adapter)
adapter
- a ComponentAdapter
valuetrue
if the adapter takes partprotected Map<Object,ComponentAdapter<?>> getMatchingComponentAdapters(PicoContainer container, ComponentAdapter adapter, Class keyType, Class valueType)
container
- container to use for dependency resolutionadapter
- ComponentAdapter
to excludekeyType
- the compatible type of the keyvalueType
- the compatible type of the addComponentMap
with the ComponentAdapter instances and their component keys as map key.Copyright © 2003–2015 Codehaus. All rights reserved.