org.apache.commons.beanutils
Class BeanPropertyValueChangeClosure
java.lang.Object
org.apache.commons.beanutils.BeanPropertyValueChangeClosure
- Closure
public class BeanPropertyValueChangeClosure
extends java.lang.Object
implements Closure
Closure
that sets a property.
An implementation of
org.apache.commons.collections.Closure
that updates
a specified property on the object provided with a specified value.
The
BeanPropertyValueChangeClosure
constructor takes two parameters which determine
what property will be updated and with what value.
public BeanPropertyValueChangeClosure( String propertyName, Object propertyValue )
Closure
propertyName
propertyValue
Note: Property names can be a simple, nested, indexed, or mapped property as defined by
org.apache.commons.beanutils.PropertyUtils
. If any object in the property path
specified by
propertyName
is
null
then the outcome is based on the
value of the
ignoreNull
attribute.
A typical usage might look like:
// create the closure
BeanPropertyValueChangeClosure closure =
new BeanPropertyValueChangeClosure( "activeEmployee", Boolean.TRUE );
// update the Collection
CollectionUtils.forAllDo( peopleCollection, closure );
This would take a
Collection
of person objects and update the
activeEmployee
property of each object in the
Collection
to
true
. Assuming...
-
The top level object in the
peopleCollection
is an object which represents a
person.
-
The person object has a
setActiveEmployee( boolean )
method which updates
the value for the object's activeEmployee
property.
private boolean | ignoreNull - Determines whether
null objects in the property path will genenerate an
IllegalArgumentException or not.
|
private Log | log - For logging.
|
private String | propertyName - The name of the property which will be updated when this
Closure executes.
|
private Object | propertyValue - The value that the property specified by
propertyName
will be updated to when this Closure executes.
|
BeanPropertyValueChangeClosure(String propertyName, Object propertyValue) - Constructor which takes the name of the property to be changed, the new value to set
the property to, and assumes
ignoreNull to be false .
|
BeanPropertyValueChangeClosure(String propertyName, Object propertyValue, boolean ignoreNull) - Constructor which takes the name of the property to be changed, the new value to set
the property to and a boolean which determines whether
null objects in the
property path will genenerate an IllegalArgumentException or not.
|
void | execute(Object object) - Updates the target object provided using the property update criteria provided when this
BeanPropertyValueChangeClosure was constructed.
|
String | getPropertyName() - Returns the name of the property which will be updated when this
Closure executes.
|
Object | getPropertyValue() - Returns the value that the property specified by
propertyName
will be updated to when this Closure executes.
|
boolean | isIgnoreNull() - Returns the flag that determines whether
null objects in the property path will
genenerate an IllegalArgumentException or not.
|
ignoreNull
private boolean ignoreNull
Determines whether null
objects in the property path will genenerate an
IllegalArgumentException
or not. If set to true
then if any objects
in the property path leading up to the target property evaluate to null
then the
IllegalArgumentException
throw by PropertyUtils
will be logged but
not rethrown. If set to false
then if any objects in the property path leading
up to the target property evaluate to null
then the
IllegalArgumentException
throw by PropertyUtils
will be logged and
rethrown.
log
private final Log log
For logging.
propertyName
private String propertyName
The name of the property which will be updated when this Closure
executes.
propertyValue
private Object propertyValue
The value that the property specified by propertyName
will be updated to when this Closure
executes.
BeanPropertyValueChangeClosure
public BeanPropertyValueChangeClosure(String propertyName,
Object propertyValue)
Constructor which takes the name of the property to be changed, the new value to set
the property to, and assumes ignoreNull
to be false
.
propertyName
- The name of the property that will be updated with the value specified by
propertyValue
.propertyValue
- The value that propertyName
will be set to on the target
object.
BeanPropertyValueChangeClosure
public BeanPropertyValueChangeClosure(String propertyName,
Object propertyValue,
boolean ignoreNull)
Constructor which takes the name of the property to be changed, the new value to set
the property to and a boolean which determines whether null
objects in the
property path will genenerate an IllegalArgumentException
or not.
propertyName
- The name of the property that will be updated with the value specified by
propertyValue
.propertyValue
- The value that propertyName
will be set to on the target
object.ignoreNull
- Determines whether null
objects in the property path will
genenerate an IllegalArgumentException
or not.
execute
public void execute(Object object)
Updates the target object provided using the property update criteria provided when this
BeanPropertyValueChangeClosure
was constructed. If any object in the property
path leading up to the target property is null
then the outcome will be based on
the value of the ignoreNull
attribute. By default, ignoreNull
is
false
and would result in an IllegalArgumentException
if an object
in the property path leading up to the target property is null
.
object
- The object to be updated.
getPropertyName
public String getPropertyName()
Returns the name of the property which will be updated when this Closure
executes.
- The name of the property which will be updated when this
Closure
executes.
getPropertyValue
public Object getPropertyValue()
Returns the value that the property specified by propertyName
will be updated to when this Closure
executes.
- The value that the property specified by
propertyName
will be updated to when this Closure
executes.
isIgnoreNull
public boolean isIgnoreNull()
Returns the flag that determines whether null
objects in the property path will
genenerate an IllegalArgumentException
or not. If set to true
then
if any objects in the property path leading up to the target property evaluate to
null
then the IllegalArgumentException
throw by
PropertyUtils
will be logged but not rethrown. If set to false
then
if any objects in the property path leading up to the target property evaluate to
null
then the IllegalArgumentException
throw by
PropertyUtils
will be logged and rethrown.
- The flag that determines whether
null
objects in the property path will
genenerate an IllegalArgumentException
or not.
Copyright (c) 2001-2007 - Apache Software Foundation