org.sintef.mofscript.runtime.expression
Class ReferenceEvaluator

java.lang.Object
  extended by org.sintef.mofscript.runtime.expression.ExpressionEvaluator
      extended by org.sintef.mofscript.runtime.expression.SimpleExpressionEvaluator
          extended by org.sintef.mofscript.runtime.expression.ReferenceEvaluator
Direct Known Subclasses:
TraceabilityReferenceEvaluator

public class ReferenceEvaluator
extends SimpleExpressionEvaluator

Handles the evaluation of refrences

Author:
jol

Field Summary
 
Fields inherited from class org.sintef.mofscript.runtime.expression.ExpressionEvaluator
_env, _expression, _ownerRuleExecutor, _positionCounter, _referenceStringLength
 
Constructor Summary
ReferenceEvaluator(Expression expression, ExecutionEnvironment env, RuleExecutor ownerRuleExecutor)
          Constructor
 
Method Summary
protected  java.lang.Object evaluateSimple(java.lang.Object inputObject)
          Evaluate the refrence
protected  java.lang.Object getObjectFeature(java.lang.Object input, java.lang.String[] splitref, java.lang.String refname, int refLine)
          Gets the value of the object feature e.g. someClass.self.name
protected  void handleObjectReference(org.eclipse.emf.ecore.EObject object, java.lang.String refname, java.lang.Object refValue)
          This method is meant to be overridden by a subclass, if any action is to be done when an object is referenced
protected  java.lang.Object initializeVariable(java.lang.String type)
          Initializes the variable according to the type given as parameter
 void setIsCachableReference(boolean isCachable)
          Sets if this refrence expression is cachable
 
Methods inherited from class org.sintef.mofscript.runtime.expression.SimpleExpressionEvaluator
checkAdditionalExpressionParts, evaluate, handleAdditionalFunction, handleStringFunction
 
Methods inherited from class org.sintef.mofscript.runtime.expression.ExpressionEvaluator
evaluateExpression, resetPosisionCounter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReferenceEvaluator

public ReferenceEvaluator(Expression expression,
                          ExecutionEnvironment env,
                          RuleExecutor ownerRuleExecutor)
Constructor

Parameters:
expression - The expression to be evaluated
env - The ExecutionEnvironment
ownerRuleExecutor - The rule that owns the expression
Method Detail

setIsCachableReference

public void setIsCachableReference(boolean isCachable)
Sets if this refrence expression is cachable

Parameters:
isCachable -

evaluateSimple

protected java.lang.Object evaluateSimple(java.lang.Object inputObject)
                                   throws MofScriptExecutionException
Evaluate the refrence

Specified by:
evaluateSimple in class SimpleExpressionEvaluator
Parameters:
inputObject -
Throws:
MofScriptExecutionException

initializeVariable

protected java.lang.Object initializeVariable(java.lang.String type)
Initializes the variable according to the type given as parameter

Parameters:
type -
Returns:
null or collection of type

getObjectFeature

protected java.lang.Object getObjectFeature(java.lang.Object input,
                                            java.lang.String[] splitref,
                                            java.lang.String refname,
                                            int refLine)
Gets the value of the object feature e.g. someClass.self.name

Parameters:
input - The element
splitref - self, name
refname - name
refLine -
Returns:
returnValue The value of the refname

handleObjectReference

protected void handleObjectReference(org.eclipse.emf.ecore.EObject object,
                                     java.lang.String refname,
                                     java.lang.Object refValue)
This method is meant to be overridden by a subclass, if any action is to be done when an object is referenced

Parameters:
object -
refname -