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 ComponentParameter

    java.lang.Object
      org.picocontainer.parameters.BasicComponentParameter
          org.picocontainer.parameters.ComponentParameter

All Implemented Interfaces:
  Serializable, Parameter

    public class ComponentParameter

extends BasicComponentParameter

A ComponentParameter 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. Collecting parameter types are supported for `Array`,`Collection`and `Map`.

Author:
  Jon Tirsén, Aslak Hellesøy, Jörg Schaible, Thomas Heller
See Also:
  Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from interface org.picocontainer.Parameter
`Parameter.DelegateResolver, Parameter.NotResolved, Parameter.Resolver, Parameter.ValueResolver`

Field Summary
`static ComponentParameter` | `ARRAY` Use `ARRAY` as `Parameter`for an Array that must have elements.
`static ComponentParameter` | `ARRAY_ALLOW_EMPTY` Use `ARRAY_ALLOW_EMPTY` as `Parameter`for an Array that may have no elements.
`static ComponentParameter` | `DEFAULT` `DEFAULT` is an instance of ComponentParameter using the default constructor.

Fields inherited from class org.picocontainer.parameters.BasicComponentParameter
`BASIC_DEFAULT`

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

Constructor Summary
`ComponentParameter()` Expect any scalar parameter of the appropriate type or an `Array`.
`ComponentParameter(boolean emptyCollection)` Expect any scalar parameter of the appropriate type or an `Array`.
`ComponentParameter(Class componentValueType, boolean emptyCollection)` Expect any scalar parameter of the appropriate type or the collecting type `Array`,`Collection`or `Map`.
`ComponentParameter(Class componentKeyType, Class componentValueType, boolean emptyCollection)` Expect any scalar parameter of the appropriate type or the collecting type `Array`,`Collection`or `Map`.
`ComponentParameter(Object componentKey)` Expect a parameter matching a component of a specific key.

Method Summary
`void` | `accept(PicoVisitor visitor)` Accept the visitor for the current `Parameter`.
`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.
`void` | `verify(PicoContainer container, ComponentAdapter<?> adapter, Type expectedType, NameBinding expectedNameBinding, boolean useNames, Annotation binding)` Verify that the Parameter can satisfy the expected type using the container

Methods inherited from class org.picocontainer.parameters.BasicComponentParameter
`resolveAdapter`

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

Field Detail

### DEFAULT

    public static final ComponentParameter DEFAULT

  `DEFAULT` is an instance of ComponentParameter using the default constructor.

### ARRAY

    public static final ComponentParameter ARRAY

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

### ARRAY_ALLOW_EMPTY

    public static final ComponentParameter ARRAY_ALLOW_EMPTY

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

Constructor Detail

### ComponentParameter

    public ComponentParameter(Object componentKey)

  Expect a parameter matching a component of a specific key.

  Parameters:
    `componentKey` - the key of the desired addComponent

### ComponentParameter

    public ComponentParameter()

  Expect any scalar parameter of the appropriate type or an `Array`.

### ComponentParameter

    public ComponentParameter(boolean emptyCollection)

  Expect any scalar parameter of the appropriate type or an `Array`. Resolve the parameter even if no compnoent is of the array's component type.

  Parameters:
    `emptyCollection` - `true` allows an Array to be empty

### ComponentParameter

    public ComponentParameter(Class componentValueType,
                              boolean emptyCollection)

  Expect any scalar parameter of the appropriate type or the collecting type `Array`,`Collection`or `Map`. The components in the collection will be of the specified type.

  Parameters:
    `componentValueType` - the component's type (ignored for an Array)
    `emptyCollection` - `true` allows the collection to be empty

### ComponentParameter

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

  Expect any scalar parameter of the appropriate type or the collecting type `Array`,`Collection`or `Map`. The components in the collection will be of the specified type and their adapter's key must have a particular type.

  Parameters:
    `componentKeyType` - the component adapter's key type
    `componentValueType` - the component's type (ignored for an Array)
    `emptyCollection` - `true` allows the collection to be empty

Method Detail

### resolve

    public Parameter.Resolver resolve(PicoContainer container,
                                      ComponentAdapter<?> forAdapter,
                                      ComponentAdapter<?> injecteeAdapter,
                                      Type expectedType,
                                      NameBinding expectedNameBinding,
                                      boolean useNames,
                                      Annotation binding)

  Description copied from class: `BasicComponentParameter`
  Check whether the given Parameter can be satisfied by the container.

  Specified by:
    `resolve` in interface `Parameter`
  Overrides:
    `resolve` in class `BasicComponentParameter`
  Parameters:
    `container` - the container from which dependencies are resolved.
    `forAdapter` - the `ComponentAdapter` that is asking for the instance
    `expectedType` - the required type
    `expectedNameBinding` - Expected parameter name
    `binding` - @return `true` if the component parameter can be resolved.
  Returns:
    `true` if the Parameter can be verified.
  See Also:
    `Parameter#isResolvable(PicoContainer, ComponentAdapter, Class, NameBinding ,boolean, Annotation)`

### verify

    public void verify(PicoContainer container,
                       ComponentAdapter<?> adapter,
                       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 interface `Parameter`
  Overrides:
    `verify` in class `BasicComponentParameter`
  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

### accept

    public void accept(PicoVisitor visitor)

  Accept the visitor for the current `Parameter`. If internally a `CollectionComponentParameter`is used, it is visited also.

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

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.