Package org.picocontainer.behaviors
Class PropertyApplicator<T>
java.lang.Object
org.picocontainer.behaviors.AbstractBehavior<T>
org.picocontainer.behaviors.PropertyApplicator<T>
- All Implemented Interfaces:
Serializable
,Behavior<T>
,ComponentAdapter<T>
,ComponentLifecycle<T>
,ComponentMonitorStrategy
,LifecycleStrategy
Decorating component adapter that can be used to set additional properties
on a component in a bean style. These properties must be managed manually
by the user of the API, and will not be managed by PicoContainer. This class
is therefore not the same as
SetterInjector
,
which is a true Setter Injection adapter.
This adapter is mostly handy for setting various primitive properties via setters;
it is also able to set javabean properties by discovering an appropriate
PropertyEditor
and using its setAsText
method.
Note that this class doesn't cache instances. If you want caching,
use a Cached
around this one.
- Author:
- Aslak Hellesøy, Mauro Talevi
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.picocontainer.ComponentAdapter
ComponentAdapter.NOTHING
-
Field Summary
Fields inherited from class org.picocontainer.behaviors.AbstractBehavior
delegate
-
Constructor Summary
ConstructorsConstructorDescriptionPropertyApplicator
(ComponentAdapter<T> delegate) Construct a PropertyApplicator. -
Method Summary
Modifier and TypeMethodDescriptionstatic Object
convert
(String typeName, String value, ClassLoader classLoader) Converts a String value of a named type to an object.getComponentInstance
(PicoContainer container, Type into) Get a component instance and set given property values.Get a string key descriptor of the component adapter for use in toString()void
setProperties
(Map<String, String> properties) Sets the bean property values that should be set upon creation.void
setProperty
(String name, String value) Methods inherited from class org.picocontainer.behaviors.AbstractBehavior
accept, changeMonitor, componentHasLifecycle, currentMonitor, dispose, dispose, findAdapterOfType, getComponentImplementation, getComponentInstance, getComponentKey, getDelegate, hasLifecycle, isLazy, isStarted, start, start, stop, stop, toString, verify
-
Constructor Details
-
PropertyApplicator
Construct a PropertyApplicator.- Parameters:
delegate
- the wrappedComponentAdapter
-
-
Method Details
-
getComponentInstance
Get a component instance and set given property values.- Specified by:
getComponentInstance
in interfaceComponentAdapter<T>
- Overrides:
getComponentInstance
in classAbstractBehavior<T>
- Parameters:
container
- thePicoContainer
, that is used to resolve any possible dependencies of the instance.into
- the class that is about to be injected into. Use ComponentAdapter.NOTHING.class if this is not important to you.- Returns:
- the component instance with any properties of the properties map set.
- Throws:
PicoCompositionException
- if the component has dependencies which could not be resolved, or instantiation of the component lead to an ambiguous situation within the container.PicoCompositionException
- if the component has dependencies which could not be resolved, or instantiation of the component lead to an ambiguous situation within the container.PicoCompositionException
- if the component has dependencies which could not be resolved, or instantiation of the component lead to an ambiguous situation within the container.- See Also:
-
getDescriptor
Description copied from interface:ComponentAdapter
Get a string key descriptor of the component adapter for use in toString()- Returns:
- the descriptor
-
convert
Converts a String value of a named type to an object. Works with primitive wrappers, String, File, URL types, or any type that has an appropriatePropertyEditor
.- Parameters:
typeName
- name of the typevalue
- its valueclassLoader
- used to load a class if typeName is "class" or "java.lang.Class" (ignored otherwise)- Returns:
- instantiated object or null if the type was unknown/unsupported
-
setProperties
Sets the bean property values that should be set upon creation.- Parameters:
properties
- bean properties
-
setProperty
-