Package org.picocontainer
Interface Parameter
- All Known Implementing Classes:
AbstractParameter
,BasicComponentParameter
,CollectionComponentParameter
,ComponentParameter
,ConstantParameter
,DefaultConstructorParameter
,NullParameter
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:
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic class
Delegate to another reolverstatic class
The Parameter cannot (ever) be resolvedstatic interface
Resolver is used transitarily during resolving of Parameters.static class
A fixed value wrapped as a Resolver -
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionvoid
accept
(PicoVisitor visitor) Accepts a visitor for this Parameter.boolean
isResolvable
(PicoContainer container, ComponentAdapter<?> forAdapter, Type expectedType, NameBinding expectedNameBinding, boolean useNames, Annotation binding) Deprecated.resolve
(PicoContainer container, ComponentAdapter<?> forAdapter, ComponentAdapter<?> injecteeAdapter, Type expectedType, NameBinding expectedNameBinding, boolean useNames, Annotation binding) Check if the Parameter can satisfy the expected type using the container.resolveInstance
(PicoContainer container, ComponentAdapter<?> forAdapter, Type expectedType, NameBinding expectedNameBinding, boolean useNames, Annotation binding) Deprecated.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 Details
-
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
-
-
Method Details
-
resolve
Parameter.Resolver resolve(PicoContainer container, ComponentAdapter<?> forAdapter, ComponentAdapter<?> injecteeAdapter, 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.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.- Since:
- 2.8.1
-
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
- theComponentAdapter
that is asking for the verificationexpectedType
- the required typeexpectedNameBinding
- Expected parameter nameuseNames
-binding
-- Throws:
PicoCompositionException
- if parameter and its dependencies cannot be resolved
-
accept
Accepts a visitor for this Parameter. The method is normally called by visiting aComponentAdapter
, that cascades the visitor also down to all its Parameters.- Parameters:
visitor
- the visitor.
-
resolveInstance
@Deprecated Object resolveInstance(PicoContainer container, ComponentAdapter<?> forAdapter, Type expectedType, NameBinding expectedNameBinding, boolean useNames, Annotation binding) Deprecated. -
isResolvable
@Deprecated boolean isResolvable(PicoContainer container, ComponentAdapter<?> forAdapter, Type expectedType, NameBinding expectedNameBinding, boolean useNames, Annotation binding) Deprecated.
-