org.apache.commons.beanutils
Class BeanPropertyValueChangeClosure
java.lang.Objectorg.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 )
ClosurepropertyNamepropertyValue
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