org.pentaho.platform.util.beans
Class ActionHarness

java.lang.Object
  extended by org.pentaho.platform.util.beans.BeanUtil
      extended by org.pentaho.platform.util.beans.ActionHarness

public class ActionHarness
extends BeanUtil

A utility for consistent interaction with IActions. Based on BeanUtil, but with logic specific to IAction beans. One such behavior is the setting of pass-through properties to an IVarArgsAction. Note that all the setValue and setValues methods will properly handle IVarArgsActions if the bean is of this type.

Author:
aphillips

Nested Class Summary
static class ActionHarness.DefaultActionCallback
           
static class ActionHarness.VarArgsWrapperCallback
           
 
Nested classes/interfaces inherited from class org.pentaho.platform.util.beans.BeanUtil
BeanUtil.EagerFailingCallback, BeanUtil.FeedbackValueGenerator
 
Constructor Summary
ActionHarness(IAction actionBean)
           
 
Method Summary
 void setValue(String propertyName, Object value, ValueSetErrorCallback callback, PropertyNameFormatter... formatters)
          Performs same function as the super, with the added feature of granting undeclared properties to the action bean if it is a IVarArgsAction.
 
Methods inherited from class org.pentaho.platform.util.beans.BeanUtil
getPropertyType, getValue, isReadable, isWriteable, setDefaultCallback, setValue, setValue, setValues, setValues
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ActionHarness

public ActionHarness(IAction actionBean)
Method Detail

setValue

public void setValue(String propertyName,
                     Object value,
                     ValueSetErrorCallback callback,
                     PropertyNameFormatter... formatters)
              throws Exception
Performs same function as the super, with the added feature of granting undeclared properties to the action bean if it is a IVarArgsAction.

Set a bean property with a given value, allowing the caller to respond to various error states that may be encountered during the attempt to set the value on the bean. This method also allows the caller to specify formatters that will modify the property name to match what the bean expects as the true name of the property. This can be helpful when you are trying to map parameters from a source that follows a convention that is not Java Bean spec compliant.

Overrides:
setValue in class BeanUtil
Parameters:
propertyName - the bean property to set
value - the value to set on the bean. If value is an instance of BeanUtil.FeedbackValueGenerator, then the value will be derived by calling BeanUtil.getValue(String). Note: if value is null, we consciously bypass the set operation altogether since it leads to indeterminate behavior, i.e. it may fail or succeed.
callback - a structure that alerts the caller of any error states and enables the caller to fail, log, proceed, etc
formatters - a list of objects that can be used to modify the given property name prior to performing any operations on the bean itself. This new formatted property name will be used to identify the bean property. bean lookup and value setting
Throws:
Exception - when something goes wrong (controlled by the callback object)
See Also:
BeanUtil.FeedbackValueGenerator, ValueSetErrorCallback, PropertyNameFormatter