org.eclipse.mofscript.runtime.expression
Class FunctionCallEvaluator

java.lang.Object
  extended by org.eclipse.mofscript.runtime.expression.ExpressionEvaluator
      extended by org.eclipse.mofscript.runtime.expression.SimpleExpressionEvaluator
          extended by org.eclipse.mofscript.runtime.expression.FunctionCallEvaluator
Direct Known Subclasses:
TraceabilityFunctionCallEvaluator, UMLFunctionCallEvaluator

public class FunctionCallEvaluator
extends SimpleExpressionEvaluator

Handles function calls

Author:
jol

Field Summary
protected  ExpressionEvaluator evaluator
           
protected  java.util.List<java.lang.String> l
           
protected  ValueExpression p1
           
protected  java.lang.Object p1Result
           
protected  ValueExpression p2
           
protected  java.lang.Object p2Result
           
protected  ValueExpression p3
           
protected  java.lang.Object p3Result
           
 
Fields inherited from class org.eclipse.mofscript.runtime.expression.ExpressionEvaluator
_env, _expression, _ownerRuleExecutor, _positionCounter, _referenceStringLength, _stringPosCounter
 
Constructor Summary
FunctionCallEvaluator(Expression expression, ExecutionEnvironment env, RuleExecutor ownerRuleExecutor)
          Constructor
 
Method Summary
protected  java.lang.Object cloneFunction(java.lang.Object variable, java.lang.String fName, FunctionCall f)
           
protected  void evaluateParameterValues(java.util.List parameters)
          Evaluates parameter values
protected  java.lang.Object evaluateSimple(java.lang.Object inputObject)
          Evaluates simple
protected  java.lang.Object handleFunctionCall(FunctionCall f, java.lang.Object inputContext)
          Handles the function call
protected  void insertModelRefParameter(ValueExpression p, MOFScriptParameter param)
          Overidden by subclasses
static java.lang.Boolean isKindOf(org.eclipse.emf.ecore.EObject toCheck, java.lang.Object clazz)
          Checks whether an EObject is kind of Object clazz
protected  boolean isSystemFunction(java.lang.String functionName)
          Checks if the function is a system function e.g. time or java
static java.lang.Boolean isTypeOf(org.eclipse.emf.ecore.EObject toCheck, java.lang.Object clazz)
          Checks whether an EObject is of type Object clazz
protected  java.lang.Object metaOperation(java.lang.Object variable, java.lang.String fName, FunctionCall f)
          MetaOperations
protected  java.lang.Object oclGeneralFunction(java.lang.Object variable, java.lang.String fName, FunctionCall f)
          Handles OCL general functions
protected  java.lang.Object selectFunction(java.lang.Object variable, FunctionCall f)
           
protected  java.lang.Object shallowCopy(java.lang.Object variable, java.lang.String fName, FunctionCall f)
           
protected  java.lang.Object storeFunction(java.lang.Object variable, java.lang.String fName, FunctionCall f)
           
protected  java.lang.Object systemFunction(java.lang.String fName, FunctionCall f)
          Handles the system function
protected  java.lang.Object variableFunctionCall(java.lang.Object variable, java.lang.String fName, FunctionCall f)
          Handles variable function calls
 
Methods inherited from class org.eclipse.mofscript.runtime.expression.SimpleExpressionEvaluator
checkAdditionalExpressionParts, evaluate, handleAdditionalFunction, handleStringFunction
 
Methods inherited from class org.eclipse.mofscript.runtime.expression.ExpressionEvaluator
evaluateExpression, getExpression, getOwnerRule, resetPosisionCounter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

p1

protected ValueExpression p1

p2

protected ValueExpression p2

p3

protected ValueExpression p3

p1Result

protected java.lang.Object p1Result

p2Result

protected java.lang.Object p2Result

p3Result

protected java.lang.Object p3Result

evaluator

protected ExpressionEvaluator evaluator

l

protected java.util.List<java.lang.String> l
Constructor Detail

FunctionCallEvaluator

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

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

evaluateSimple

protected java.lang.Object evaluateSimple(java.lang.Object inputObject)
                                   throws MofScriptExecutionException
Evaluates simple

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

evaluateParameterValues

protected void evaluateParameterValues(java.util.List parameters)
                                throws MofScriptExecutionException
Evaluates parameter values

Parameters:
parameters -
Throws:
MofScriptExecutionException

handleFunctionCall

protected java.lang.Object handleFunctionCall(FunctionCall f,
                                              java.lang.Object inputContext)
Handles the function call

Parameters:
f -
inputContext -
Returns:
object result

insertModelRefParameter

protected void insertModelRefParameter(ValueExpression p,
                                       MOFScriptParameter param)
Overidden by subclasses

Parameters:
p -
param -

variableFunctionCall

protected java.lang.Object variableFunctionCall(java.lang.Object variable,
                                                java.lang.String fName,
                                                FunctionCall f)
                                         throws MofScriptExecutionException
Handles variable function calls

Parameters:
variable -
fName -
f -
Returns:
Throws:
MofScriptExecutionException

oclGeneralFunction

protected java.lang.Object oclGeneralFunction(java.lang.Object variable,
                                              java.lang.String fName,
                                              FunctionCall f)
                                       throws MofScriptExecutionException
Handles OCL general functions

Parameters:
variable -
fName -
f -
Returns:
Throws:
MofScriptExecutionException

metaOperation

protected java.lang.Object metaOperation(java.lang.Object variable,
                                         java.lang.String fName,
                                         FunctionCall f)
                                  throws MofScriptExecutionException
MetaOperations

Parameters:
variable -
fName -
f -
Returns:
Throws:
MofScriptExecutionException

storeFunction

protected java.lang.Object storeFunction(java.lang.Object variable,
                                         java.lang.String fName,
                                         FunctionCall f)
                                  throws MofScriptExecutionException
Parameters:
variable -
fName -
f -
Returns:
Throws:
MofScriptExecutionException

cloneFunction

protected java.lang.Object cloneFunction(java.lang.Object variable,
                                         java.lang.String fName,
                                         FunctionCall f)
Parameters:
variable -
fName -
f -
Returns:

shallowCopy

protected java.lang.Object shallowCopy(java.lang.Object variable,
                                       java.lang.String fName,
                                       FunctionCall f)
Parameters:
variable -
fName -
f -

isSystemFunction

protected boolean isSystemFunction(java.lang.String functionName)
Checks if the function is a system function e.g. time or java

Parameters:
functionName -
Returns:

systemFunction

protected java.lang.Object systemFunction(java.lang.String fName,
                                          FunctionCall f)
                                   throws MofScriptExecutionException
Handles the system function

Parameters:
fName -
f -
Returns:
Throws:
MofScriptExecutionException

selectFunction

protected java.lang.Object selectFunction(java.lang.Object variable,
                                          FunctionCall f)
                                   throws MofScriptExecutionException
Parameters:
variable -
f -
Returns:
Throws:
MofScriptExecutionException

isTypeOf

public static java.lang.Boolean isTypeOf(org.eclipse.emf.ecore.EObject toCheck,
                                         java.lang.Object clazz)
Checks whether an EObject is of type Object clazz

Parameters:
toCheck -
clazz -
Returns:

isKindOf

public static java.lang.Boolean isKindOf(org.eclipse.emf.ecore.EObject toCheck,
                                         java.lang.Object clazz)
Checks whether an EObject is kind of Object clazz

Parameters:
toCheck -
clazz -
Returns: