Save This Page
Home » pentaho-reporting-engine-classic-0.8.10 » org.jfree.report.modules.misc » beanshell » [javadoc | source]
org.jfree.report.modules.misc.beanshell
public class: BSHExpression [javadoc | source]
java.lang.Object
   org.jfree.report.function.AbstractExpression
      org.jfree.report.modules.misc.beanshell.BSHExpression

All Implemented Interfaces:
    Expression, Serializable

An expression that uses the BeanShell scripting framework to perform a scripted calculation. The expression itself is contained in a function called

Object getValue()

and this function is defined in the expression property. You have to overwrite the function getValue() to begin and to end your expression, but you are free to add your own functions to the script.

By default, base Java core and extension packages are imported for you. They are:

An example in the XML format: (from report1.xml)




// you may import packages and classes or use the fully qualified name of the class
import org.jfree.report.*;

String userdefinedFunction (String parameter, Date date) { return parameter + " - the current date is " + date); }

// use simple java code to perform the expression. You may use all classes // available in your classpath as if you write "real" java code in your favourite // IDE. // See the www.beanshell.org site for more information ... // // A return value of type "Object" is alway implied ... getValue () { return userdefinedFunction ("Hello World :) ", new Date()); }

    author: Thomas - Morgner
Field Summary
public static final  String BSHHEADERFILE    The headerfile with the default initialisations. 
Constructor:
 public BSHExpression() 
Method from org.jfree.report.modules.misc.beanshell.BSHExpression Summary:
createInterpreter,   getExpression,   getInstance,   getValue,   initializeInterpreter,   setExpression
Methods from org.jfree.report.function.AbstractExpression:
clone,   getDataRow,   getDependencyLevel,   getInstance,   getName,   getReportConfiguration,   getResourceBundleFactory,   getRuntime,   isActive,   isDeepTraversing,   isPreserve,   setActive,   setDependencyLevel,   setName,   setPreserve,   setRuntime
Methods from java.lang.Object:
equals,   getClass,   hashCode,   notify,   notifyAll,   toString,   wait,   wait,   wait
Method from org.jfree.report.modules.misc.beanshell.BSHExpression Detail:
 protected Interpreter createInterpreter() 
    This method tries to create a new and fully initialized BeanShell interpreter.
 public String getExpression() 
    Sets the beanshell script as string.
 public Expression getInstance() 
    Return a new instance of this expression. The copy is initialized and uses the same parameters as the original, but does not share any objects.
 public Object getValue() 
    Evaluates the defined expression. If an exception or an evaluation error occures, the evaluation returns null and the error is logged. The current datarow and a copy of the expressions properties are set to script-internal variables. Changes to the properties will not alter the expressions original properties and will be lost when the evaluation is finished.

    Expressions do not maintain a state and no assumptions about the order of evaluation can be made.

 protected  void initializeInterpreter(Interpreter interpreter) throws IOException, EvalError 
    Initializes the bean-shell interpreter by executing the code in the BSHExpressionHeader.txt file.
 public  void setExpression(String expression) 
    Sets the beanshell script that should be executed. The script should define a getValue() method which returns a single object.