org.picocontainer
Interface Parameter

All Known Implementing Classes:
BasicComponentParameter, CollectionComponentParameter, ComponentParameter, ConstantParameter

public interface Parameter

This class provides control over the arguments that will be passed to a constructor. It can be used for finer control over what arguments are passed to a particular constructor.

Author:
Jon Tirsén, Aslak Hellesøy, Thomas Heller
See Also:
a method on the {@link MutablePicoContainer} interface which allows passing in of an array of {@linkplain Parameter Parameters}., an implementation of this interface that allows you to specify the key used for resolving the parameter., an implementation of this interface that allows you to specify a constant that will be used for resolving the parameter.

Field Summary
static Parameter[] DEFAULT
           
static Parameter[] ZERO
          Zero parameter is used when you wish a component to be instantiated with its default constructor.
 
Method Summary
 void accept(PicoVisitor visitor)
          Accepts a visitor for this Parameter.
 boolean isResolvable(PicoContainer container, ComponentAdapter<?> adapter, Type expectedType, NameBinding expectedNameBinding, boolean useNames, Annotation binding)
          Check if the Parameter can satisfy the expected type using the container.
 Object resolveInstance(PicoContainer container, ComponentAdapter<?> adapter, Type expectedType, NameBinding expectedNameBinding, boolean useNames, Annotation binding)
          Retrieve the object from the Parameter that satisfies the expected type.
 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
 

Field Detail

ZERO

static final Parameter[] ZERO
Zero parameter is used when you wish a component to be instantiated with its default constructor. Ex:
                MutablePicoContainer mpc = new PicoBuilder().build();
                mpc.addComponent(Map.class, HashMap.class, Parameter.ZERO);
                mpc.addComponent(List.class, ArrayList.class, Parameter.ZERO);
        

By specifying the default constructor in this example code, you allow PicoContainer to recognize that HashMap(Collection) should not be used and avoid a CircularDependencyException.


DEFAULT

static final Parameter[] DEFAULT
Method Detail

resolveInstance

Object resolveInstance(PicoContainer container,
                       ComponentAdapter<?> adapter,
                       Type expectedType,
                       NameBinding expectedNameBinding,
                       boolean useNames,
                       Annotation binding)
Retrieve the object from the Parameter that satisfies the expected type.

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 or null if no suitable instance can be found.
Throws:
PicoCompositionException - if a referenced component could not be instantiated.

isResolvable

boolean isResolvable(PicoContainer container,
                     ComponentAdapter<?> adapter,
                     Type expectedType,
                     NameBinding expectedNameBinding,
                     boolean useNames,
                     Annotation binding)
Check if the Parameter can satisfy the expected type using the container.

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 the component parameter can be resolved.

verify

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

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

void accept(PicoVisitor visitor)
Accepts a visitor for this Parameter. The method is normally called by visiting a ComponentAdapter, that cascades the visitor also down to all its Parameters.

Parameters:
visitor - the visitor.


Copyright © 2003-2009 Codehaus. All Rights Reserved.