org.shapelogic.scripting
Class FunctionEvalCalcInvoke<E>

java.lang.Object
  extended by org.shapelogic.scripting.BaseScriptingFunction
      extended by org.shapelogic.scripting.FunctionEvalCalcInvoke<E>
All Implemented Interfaces:
Calc0<E>, CalcInvoke<E>, CalcValue<E>, LazyCalc<E>

public class FunctionEvalCalcInvoke<E>
extends BaseScriptingFunction
implements CalcInvoke<E>

Transform based on an expression in a Scripting language using JSR 223. Requires Groovy to be installed. Need special installation of groovy-engine.jar that need to be downloade from Sun. Requires that the scripting language support the invocable interface.

Author:
Sami Badawi

Field Summary
protected  boolean _dirty
           
protected  E _value
           
 
Fields inherited from class org.shapelogic.scripting.BaseScriptingFunction
_expression, _functionName, _language, _scriptEngine, DEFAULT_LANGUAGE
 
Constructor Summary
FunctionEvalCalcInvoke(java.lang.String expression)
           
FunctionEvalCalcInvoke(java.lang.String expression, java.lang.String language)
           
 
Method Summary
 E getValue()
          Starts a lazy calculation.
 E invoke()
           
 boolean isDirty()
          When dirty is false that means that the calculated value can be used
 void setup()
          Currently not super well define used for 2 purposes: Reset: called from the outside if you want to reuse it init: Called from the inside when calculation start to have everything setup maybe the semantic could work for both? TODO: This should be separated better.
 
Methods inherited from class org.shapelogic.scripting.BaseScriptingFunction
getScriptEngine, put
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_dirty

protected boolean _dirty

_value

protected E _value
Constructor Detail

FunctionEvalCalcInvoke

public FunctionEvalCalcInvoke(java.lang.String expression,
                              java.lang.String language)

FunctionEvalCalcInvoke

public FunctionEvalCalcInvoke(java.lang.String expression)
Method Detail

invoke

public E invoke()
Specified by:
invoke in interface Calc0<E>

isDirty

public boolean isDirty()
Description copied from interface: LazyCalc
When dirty is false that means that the calculated value can be used

Specified by:
isDirty in interface LazyCalc<E>

setup

public void setup()
Description copied from interface: LazyCalc
Currently not super well define used for 2 purposes: Reset: called from the outside if you want to reuse it init: Called from the inside when calculation start to have everything setup maybe the semantic could work for both? TODO: This should be separated better.

Specified by:
setup in interface LazyCalc<E>

getValue

public E getValue()
Description copied from interface: CalcValue
Starts a lazy calculation. If dirty do calc() else return cached value. This should maybe be moved up in the hierarchy

Specified by:
getValue in interface CalcValue<E>


Copyright © 2008. All Rights Reserved.