Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.picocontainer.parameters
Class CollectionComponentParameter

    java.lang.Object
      org.picocontainer.parameters.CollectionComponentParameter

All Implemented Interfaces:
  Serializable, Parameter

    public class CollectionComponentParameter

extends Object
implements Parameter, Serializable

A CollectionComponentParameter should be used to support inject an `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.

Author:
  Aslak Hellesøy, Jörg Schaible
See Also:
  Serialized Form

Field Summary
`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.

Fields inherited from interface org.picocontainer.Parameter
`DEFAULT, ZERO`

Constructor Summary
`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)` Expect any of the collection types `Array`,`Collection`or `Map`as parameter.
`CollectionComponentParameter(Class componentKeyType, Class componentValueType, boolean emptyCollection)` Expect any of the collection types `Array`,`Collection`or `Map`as parameter.

Method Summary
`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.
`boolean` | `isResolvable(PicoContainer container, ComponentAdapter<?> adapter, Type expectedType, NameBinding expectedNameBinding, boolean useNames, Annotation binding)` Check for a successful dependency resolution of the parameter for the expected type.
`Object` | `resolveInstance(PicoContainer container, ComponentAdapter<?> adapter, Type expectedType, NameBinding expectedNameBinding, boolean useNames, Annotation binding)` Resolve 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.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### ARRAY

    public static final CollectionComponentParameter ARRAY

  Use `ARRAY` as `Parameter`for an Array that must have elements.

### ARRAY_ALLOW_EMPTY

    public static final CollectionComponentParameter ARRAY_ALLOW_EMPTY

  Use `ARRAY_ALLOW_EMPTY` as `Parameter`for an Array that may have no elements.

Constructor Detail

### CollectionComponentParameter

    public CollectionComponentParameter()

  Expect an `Array`of an appropriate type as parameter. At least one component of the array's component type must exist.

### CollectionComponentParameter

    public CollectionComponentParameter(boolean emptyCollection)

  Expect an `Array`of an appropriate type as parameter.

  Parameters:
    `emptyCollection` - `true` if an empty array also is a valid dependency resolution.

### CollectionComponentParameter

    public CollectionComponentParameter(Class componentValueType,
                                        boolean emptyCollection)

  Expect any of the collection types `Array`,`Collection`or `Map`as parameter.

  Parameters:
    `componentValueType` - the type of the components (ignored in case of an Array)
    `emptyCollection` - `true` if an empty collection resolves the dependency.

### CollectionComponentParameter

    public CollectionComponentParameter(Class componentKeyType,
                                        Class componentValueType,
                                        boolean emptyCollection)

  Expect any of the collection types `Array`,`Collection`or `Map`as parameter.

  Parameters:
    `componentKeyType` - the type of the component's key
    `componentValueType` - the type of the components (ignored in case of an Array)
    `emptyCollection` - `true` if an empty collection resolves the dependency.

Method Detail

### resolveInstance

    public Object resolveInstance(PicoContainer container,
                                  ComponentAdapter<?> adapter,
                                  Type expectedType,
                                  NameBinding expectedNameBinding,
                                  boolean useNames,
                                  Annotation binding)

  Resolve the parameter for the expected type. The method will return `null` If the expected type is not one of the collection types `Array`, `Collection`or `Map`. An empty collection is only a valid resolution, if the `emptyCollection` flag was set.

  Specified by:
    `resolveInstance` in interface `Parameter`
  Parameters:
    `container` - the container from which dependencies are resolved.
    `adapter` - the `ComponentAdapter` that is asking for the instance
    `expectedType` - the type that the returned instance needs to match.
    `expectedNameBinding` - Expected parameter name
    `useNames` -
    `binding` -
  Returns:
    the instance of the collection type or `null`
  Throws:
    `PicoCompositionException` - if a referenced component could not be instantiated.

### isResolvable

    public boolean isResolvable(PicoContainer container,
                                ComponentAdapter<?> adapter,
                                Type expectedType,
                                NameBinding expectedNameBinding,
                                boolean useNames,
                                Annotation binding)

  Check for a successful dependency resolution of the parameter for the expected type. The dependency can only be satisfied if the expected type is one of the collection types `Array`,`Collection`or `Map`. An empty collection is only a valid resolution, if the `emptyCollection` flag was set.

  Specified by:
    `isResolvable` in interface `Parameter`
  Parameters:
    `container` - the container from which dependencies are resolved.
    `adapter` - the `ComponentAdapter` that is asking for the instance
    `expectedType` - the required type
    `expectedNameBinding` - Expected parameter name
    `useNames` -
    `binding` -
  Returns:
    `true` if matching components were found or an empty collective type is allowed

### verify

    public 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. The method will only return if the expected type is one of the collection types `Array`, `Collection`or `Map`. An empty collection is only a valid resolution, if the `emptyCollection` flag was set.

  Specified by:
    `verify` in interface `Parameter`
  Parameters:
    `container` - the container from which dependencies are resolved.
    `adapter` - the `ComponentAdapter` that is asking for the verification
    `expectedType` - the required type
    `expectedNameBinding` - Expected parameter name
    `useNames` -
    `binding` -
  Throws:
    `PicoCompositionException` - if parameter and its dependencies cannot be resolved

### accept

    public void accept(PicoVisitor visitor)

  Visit the current `Parameter`.

  Specified by:
    `accept` in interface `Parameter`
  Parameters:
    `visitor` - the visitor.
  See Also:
    `Parameter.accept(org.picocontainer.PicoVisitor)`

### evaluate

    protected boolean evaluate(ComponentAdapter adapter)

  Evaluate whether the given component adapter will be part of the collective type.

  Parameters:
    `adapter` - a `ComponentAdapter` value
  Returns:
    `true` if the adapter takes part

### getMatchingComponentAdapters

    protected Map<Object,ComponentAdapter<?>> getMatchingComponentAdapters(PicoContainer container,
                                                                           ComponentAdapter adapter,
                                                                           Class keyType,
                                                                           Class valueType)

  Collect the matching ComponentAdapter instances.

  Parameters:
    `container` - container to use for dependency resolution
    `adapter` - `ComponentAdapter` to exclude
    `keyType` - the compatible type of the key
    `valueType` - the compatible type of the addComponent
  Returns:
    a `Map` with the ComponentAdapter instances and their component keys as map key.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003-2009 Codehaus. All Rights Reserved.