public class XbaseInterpreter extends java.lang.Object implements IExpressionInterpreter
Constructor and Description |
---|
XbaseInterpreter() |
XbaseInterpreter(com.google.inject.Provider<IEvaluationContext> contextProvider,
JavaReflectAccess javaReflectAccess,
java.lang.ClassLoader loader) |
Modifier and Type | Method and Description |
---|---|
protected java.lang.Object |
_assignValueTo(JvmField jvmField,
XAbstractFeatureCall assignment,
java.lang.Object value,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_assignValueTo(JvmOperation jvmOperation,
XAbstractFeatureCall assignment,
java.lang.Object value,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_assignValueTo(XVariableDeclaration variable,
XAbstractFeatureCall assignment,
java.lang.Object value,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XAbstractFeatureCall featureCall,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XAssignment assignment,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XBasicForLoopExpression forLoop,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XBlockExpression literal,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XBooleanLiteral literal,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XCastedExpression castedExpression,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XClosure closure,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XConstructorCall constructorCall,
IEvaluationContext context,
CancelIndicator indicator) |
protected IEvaluationResult |
_doEvaluate(XDoWhileExpression doWhileLoop,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XFeatureCall featureCall,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XForLoopExpression forLoop,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XIfExpression ifExpression,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XInstanceOfExpression instanceOf,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XListLiteral literal,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XMemberFeatureCall featureCall,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XNullLiteral literal,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XNumberLiteral literal,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XReturnExpression returnExpr,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XSetLiteral literal,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XStringLiteral literal,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XSwitchExpression switchExpression,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XSynchronizedExpression expression,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XThrowExpression throwExpression,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XTryCatchFinallyExpression tryCatchFinally,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XTypeLiteral literal,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XVariableDeclaration variableDecl,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_doEvaluate(XWhileExpression whileLoop,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_invokeFeature(JvmField jvmField,
XAbstractFeatureCall featureCall,
java.lang.Object receiver,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_invokeFeature(JvmIdentifiableElement identifiable,
XAbstractFeatureCall featureCall,
java.lang.Object receiver,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
_invokeFeature(JvmOperation operation,
XAbstractFeatureCall featureCall,
java.lang.Object receiver,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
applyGetAndAssignOperator(java.lang.Object originalValue,
java.lang.String operatorName) |
protected java.lang.Object |
assignValueTo(JvmIdentifiableElement feature,
XAbstractFeatureCall assignment,
java.lang.Object value,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
castToPrimitiveType(java.lang.Object castMe,
Primitives.Primitive kind) |
protected java.lang.Object |
coerceArgumentType(java.lang.Object value,
JvmTypeReference expectedType) |
protected IEvaluationContext |
createContext() |
protected java.lang.Object |
doEvaluate(XExpression expression,
IEvaluationContext context,
CancelIndicator indicator)
don't call this directly.
|
protected boolean |
eq(java.lang.Object a,
java.lang.Object b) |
IEvaluationResult |
evaluate(XExpression expression) |
IEvaluationResult |
evaluate(XExpression expression,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.util.List<java.lang.Object> |
evaluateArgumentExpressions(JvmExecutable executable,
java.util.List<XExpression> expressions,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
evaluateGetAndAssign(XAbstractFeatureCall featureCall,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
featureCallField(JvmField jvmField,
java.lang.Object receiver) |
protected java.util.List<XExpression> |
getActualArguments(XAbstractFeatureCall featureCall) |
protected XExpression |
getActualReceiver(XAbstractFeatureCall featureCall) |
protected java.lang.Class<?> |
getClass(java.lang.Class<?> class1) |
protected ClassFinder |
getClassFinder() |
protected java.lang.Object |
getDefaultObjectValue(LightweightTypeReference type) |
protected JavaReflectAccess |
getJavaReflectAccess() |
protected java.lang.Class<?> |
getJavaType(JvmType type) |
protected java.lang.Object |
getReceiver(XAbstractFeatureCall assignment,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
internalEvaluate(XExpression expression,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
invokeFeature(JvmIdentifiableElement feature,
XAbstractFeatureCall featureCall,
java.lang.Object receiverObj,
IEvaluationContext context,
CancelIndicator indicator) |
protected java.lang.Object |
invokeOperation(JvmOperation operation,
java.lang.Object receiver,
java.util.List<java.lang.Object> argumentValues) |
protected java.lang.Object |
invokeOperation(JvmOperation operation,
java.lang.Object receiver,
java.util.List<java.lang.Object> argumentValues,
IEvaluationContext context,
CancelIndicator indicator) |
protected boolean |
isGetAndAssign(XAbstractFeatureCall featureCall) |
protected boolean |
isType(XExpression element,
java.lang.Class<?> clazz) |
protected LightweightTypeReference |
resolveType(XExpression element,
java.lang.Class<?> clazz) |
void |
setClassLoader(java.lang.ClassLoader classLoader) |
void |
setFeatureNameProvider(IdentifiableSimpleNameProvider featureNameProvider) |
protected java.lang.Object |
throwClassCastException(XExpression expression,
java.lang.Object result,
java.lang.Class<?> expectedType) |
protected java.lang.Object |
throwNullPointerException(XExpression expression,
java.lang.String message) |
protected java.lang.Object |
translateJvmTypeToResult(JvmType type,
int arrayDims) |
protected java.lang.Object |
wrapOrUnwrapArray(java.lang.Object result,
LightweightTypeReference expectedType) |
public XbaseInterpreter()
public XbaseInterpreter(com.google.inject.Provider<IEvaluationContext> contextProvider, JavaReflectAccess javaReflectAccess, java.lang.ClassLoader loader)
public void setFeatureNameProvider(IdentifiableSimpleNameProvider featureNameProvider)
@Inject public void setClassLoader(java.lang.ClassLoader classLoader)
protected java.lang.Class<?> getClass(java.lang.Class<?> class1)
public IEvaluationResult evaluate(XExpression expression)
evaluate
in interface IExpressionInterpreter
protected IEvaluationContext createContext()
public IEvaluationResult evaluate(XExpression expression, IEvaluationContext context, CancelIndicator indicator)
evaluate
in interface IExpressionInterpreter
protected java.lang.Object internalEvaluate(XExpression expression, IEvaluationContext context, CancelIndicator indicator) throws EvaluationException
EvaluationException
protected java.lang.Object doEvaluate(XExpression expression, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object _doEvaluate(XNullLiteral literal, IEvaluationContext context, CancelIndicator indicator)
literal
- unused in this context but required for dispatchingcontext
- unused in this context but required for dispatchingindicator
- unused in this context but required for dispatchingprotected java.lang.Object _doEvaluate(XReturnExpression returnExpr, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object _doEvaluate(XStringLiteral literal, IEvaluationContext context, CancelIndicator indicator)
context
- unused in this context but required for dispatchingindicator
- unused in this context but required for dispatchingprotected java.lang.Object _doEvaluate(XNumberLiteral literal, IEvaluationContext context, CancelIndicator indicator)
context
- unused in this context but required for dispatchingindicator
- unused in this context but required for dispatchingprotected java.lang.Object _doEvaluate(XBooleanLiteral literal, IEvaluationContext context, CancelIndicator indicator)
context
- unused in this context but required for dispatchingindicator
- unused in this context but required for dispatchingprotected java.lang.Object _doEvaluate(XTypeLiteral literal, IEvaluationContext context, CancelIndicator indicator)
context
- unused in this context but required for dispatchingindicator
- unused in this context but required for dispatchingprotected java.lang.Object _doEvaluate(XListLiteral literal, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Class<?> getJavaType(JvmType type) throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundException
protected java.lang.Object _doEvaluate(XSetLiteral literal, IEvaluationContext context, CancelIndicator indicator)
protected boolean isType(XExpression element, java.lang.Class<?> clazz)
protected LightweightTypeReference resolveType(XExpression element, java.lang.Class<?> clazz)
protected java.lang.Object _doEvaluate(XClosure closure, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object _doEvaluate(XBlockExpression literal, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object _doEvaluate(XSynchronizedExpression expression, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object _doEvaluate(XIfExpression ifExpression, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object _doEvaluate(XSwitchExpression switchExpression, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object _doEvaluate(XCastedExpression castedExpression, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object castToPrimitiveType(java.lang.Object castMe, Primitives.Primitive kind)
protected java.lang.Object _doEvaluate(XThrowExpression throwExpression, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object _doEvaluate(XTryCatchFinallyExpression tryCatchFinally, IEvaluationContext context, CancelIndicator indicator)
protected boolean eq(java.lang.Object a, java.lang.Object b)
protected java.lang.Object throwNullPointerException(XExpression expression, java.lang.String message)
expression
- may be used by inheritorsprotected java.lang.Object throwClassCastException(XExpression expression, java.lang.Object result, java.lang.Class<?> expectedType)
expression
- may be used by inheritorsprotected java.lang.Object wrapOrUnwrapArray(java.lang.Object result, LightweightTypeReference expectedType)
protected java.lang.Object _doEvaluate(XForLoopExpression forLoop, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object _doEvaluate(XBasicForLoopExpression forLoop, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object _doEvaluate(XWhileExpression whileLoop, IEvaluationContext context, CancelIndicator indicator)
protected IEvaluationResult _doEvaluate(XDoWhileExpression doWhileLoop, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object _doEvaluate(XConstructorCall constructorCall, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object _doEvaluate(XMemberFeatureCall featureCall, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object translateJvmTypeToResult(JvmType type, int arrayDims)
protected java.lang.Object getDefaultObjectValue(LightweightTypeReference type)
protected java.lang.Object _doEvaluate(XInstanceOfExpression instanceOf, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object _doEvaluate(XVariableDeclaration variableDecl, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object _doEvaluate(XFeatureCall featureCall, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object _doEvaluate(XAbstractFeatureCall featureCall, IEvaluationContext context, CancelIndicator indicator)
protected boolean isGetAndAssign(XAbstractFeatureCall featureCall)
protected java.lang.Object evaluateGetAndAssign(XAbstractFeatureCall featureCall, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object applyGetAndAssignOperator(java.lang.Object originalValue, java.lang.String operatorName)
protected java.util.List<XExpression> getActualArguments(XAbstractFeatureCall featureCall)
protected XExpression getActualReceiver(XAbstractFeatureCall featureCall)
protected java.lang.Object invokeFeature(JvmIdentifiableElement feature, XAbstractFeatureCall featureCall, java.lang.Object receiverObj, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object _invokeFeature(JvmIdentifiableElement identifiable, XAbstractFeatureCall featureCall, java.lang.Object receiver, IEvaluationContext context, CancelIndicator indicator)
featureCall
- unused in this context but required for dispatchingindicator
- unused in this context but required for dispatchingprotected java.lang.Object _invokeFeature(JvmField jvmField, XAbstractFeatureCall featureCall, java.lang.Object receiver, IEvaluationContext context, CancelIndicator indicator)
featureCall
- unused in this context but required for dispatchingcontext
- unused in this context but required for dispatchingindicator
- unused in this context but required for dispatchingprotected java.lang.Object featureCallField(JvmField jvmField, java.lang.Object receiver)
protected java.lang.Object _invokeFeature(JvmOperation operation, XAbstractFeatureCall featureCall, java.lang.Object receiver, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object invokeOperation(JvmOperation operation, java.lang.Object receiver, java.util.List<java.lang.Object> argumentValues, IEvaluationContext context, CancelIndicator indicator)
operation
- the operation that should be invoked.receiver
- the receiver for the invocation. It may be null
which could signal a NullPointerException
or
be valid if the given operation
is a static operation.argumentValues
- the argument values. The number of arguments has to match the number of declared parameters.context
- the current evalutation context.indicator
- the cancel indicator.protected java.lang.Object invokeOperation(JvmOperation operation, java.lang.Object receiver, java.util.List<java.lang.Object> argumentValues)
protected java.util.List<java.lang.Object> evaluateArgumentExpressions(JvmExecutable executable, java.util.List<XExpression> expressions, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object coerceArgumentType(java.lang.Object value, JvmTypeReference expectedType)
protected java.lang.Object _doEvaluate(XAssignment assignment, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object assignValueTo(JvmIdentifiableElement feature, XAbstractFeatureCall assignment, java.lang.Object value, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object _assignValueTo(XVariableDeclaration variable, XAbstractFeatureCall assignment, java.lang.Object value, IEvaluationContext context, CancelIndicator indicator)
assignment
- unused in this context but required for dispatchingindicator
- unused in this context but required for dispatchingprotected java.lang.Object _assignValueTo(JvmField jvmField, XAbstractFeatureCall assignment, java.lang.Object value, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object getReceiver(XAbstractFeatureCall assignment, IEvaluationContext context, CancelIndicator indicator)
protected java.lang.Object _assignValueTo(JvmOperation jvmOperation, XAbstractFeatureCall assignment, java.lang.Object value, IEvaluationContext context, CancelIndicator indicator)
protected ClassFinder getClassFinder()
protected JavaReflectAccess getJavaReflectAccess()