Class XbaseInterpreter
- java.lang.Object
-
- org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter
-
- All Implemented Interfaces:
IExpressionInterpreter
public class XbaseInterpreter extends java.lang.Object implements IExpressionInterpreter
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classXbaseInterpreter.ReturnValueEncapsulates the return value of anXReturnExpression.
-
Constructor Summary
Constructors Constructor Description XbaseInterpreter()XbaseInterpreter(com.google.inject.Provider<IEvaluationContext> contextProvider, org.eclipse.xtext.common.types.util.JavaReflectAccess javaReflectAccess, java.lang.ClassLoader loader)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.Object_assignValueTo(org.eclipse.xtext.common.types.JvmField jvmField, XAbstractFeatureCall assignment, java.lang.Object value, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_assignValueTo(org.eclipse.xtext.common.types.JvmOperation jvmOperation, XAbstractFeatureCall assignment, java.lang.Object value, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_assignValueTo(XVariableDeclaration variable, XAbstractFeatureCall assignment, java.lang.Object value, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XAbstractFeatureCall featureCall, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XAssignment assignment, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XBasicForLoopExpression forLoop, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XBlockExpression literal, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XBooleanLiteral literal, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XCastedExpression castedExpression, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XClosure closure, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XConstructorCall constructorCall, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected IEvaluationResult_doEvaluate(XDoWhileExpression doWhileLoop, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XFeatureCall featureCall, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XForLoopExpression forLoop, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XIfExpression ifExpression, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XInstanceOfExpression instanceOf, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XListLiteral literal, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XMemberFeatureCall featureCall, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XNullLiteral literal, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XNumberLiteral literal, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XReturnExpression returnExpr, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XSetLiteral literal, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XStringLiteral literal, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XSwitchExpression switchExpression, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XSynchronizedExpression expression, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XThrowExpression throwExpression, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XTryCatchFinallyExpression tryCatchFinally, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XTypeLiteral literal, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XVariableDeclaration variableDecl, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_doEvaluate(XWhileExpression whileLoop, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_invokeFeature(org.eclipse.xtext.common.types.JvmField jvmField, XAbstractFeatureCall featureCall, java.lang.Object receiver, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_invokeFeature(org.eclipse.xtext.common.types.JvmIdentifiableElement identifiable, XAbstractFeatureCall featureCall, java.lang.Object receiver, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.Object_invokeFeature(org.eclipse.xtext.common.types.JvmOperation operation, XAbstractFeatureCall featureCall, java.lang.Object receiver, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.ObjectapplyGetAndAssignOperator(java.lang.Object originalValue, java.lang.String operatorName)protected java.lang.ObjectassignValueTo(org.eclipse.xtext.common.types.JvmIdentifiableElement feature, XAbstractFeatureCall assignment, java.lang.Object value, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.ObjectcastToPrimitiveType(java.lang.Object castMe, org.eclipse.xtext.common.types.util.Primitives.Primitive kind)protected java.lang.ObjectcoerceArgumentType(java.lang.Object value, org.eclipse.xtext.common.types.JvmTypeReference expectedType)protected org.eclipse.xtext.common.types.access.impl.ClassFindercreateClassFinder(java.lang.ClassLoader classLoader)protected IEvaluationContextcreateContext()protected java.lang.ObjectdoEvaluate(XExpression expression, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)don't call this directly.protected booleaneq(java.lang.Object a, java.lang.Object b)IEvaluationResultevaluate(XExpression expression)IEvaluationResultevaluate(XExpression expression, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.util.List<java.lang.Object>evaluateArgumentExpressions(org.eclipse.xtext.common.types.JvmExecutable executable, java.util.List<XExpression> expressions, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.ObjectevaluateGetAndAssign(XAbstractFeatureCall featureCall, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.ObjectfeatureCallField(org.eclipse.xtext.common.types.JvmField jvmField, java.lang.Object receiver)protected org.eclipse.xtext.common.types.JvmOperationfindCloseMethod(XVariableDeclaration resource)protected java.util.List<XExpression>getActualArguments(XAbstractFeatureCall featureCall)protected XExpressiongetActualReceiver(XAbstractFeatureCall featureCall)protected java.lang.Class<?>getClass(java.lang.Class<?> class1)protected org.eclipse.xtext.common.types.access.impl.ClassFindergetClassFinder()protected java.lang.ObjectgetDefaultObjectValue(LightweightTypeReference type)protected org.eclipse.xtext.common.types.util.JavaReflectAccessgetJavaReflectAccess()protected java.lang.Class<?>getJavaType(org.eclipse.xtext.common.types.JvmType type)protected java.lang.ObjectgetReceiver(XAbstractFeatureCall assignment, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.ObjectinternalEvaluate(XExpression expression, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.ObjectinvokeFeature(org.eclipse.xtext.common.types.JvmIdentifiableElement feature, XAbstractFeatureCall featureCall, java.lang.Object receiverObj, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected java.lang.ObjectinvokeOperation(org.eclipse.xtext.common.types.JvmOperation operation, java.lang.Object receiver, java.util.List<java.lang.Object> argumentValues)protected java.lang.ObjectinvokeOperation(org.eclipse.xtext.common.types.JvmOperation operation, java.lang.Object receiver, java.util.List<java.lang.Object> argumentValues, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)protected booleanisGetAndAssign(XAbstractFeatureCall featureCall)protected booleanisInstanceoOf(java.lang.Object value, org.eclipse.xtext.common.types.JvmTypeReference type)protected booleanisType(XExpression element, java.lang.Class<?> clazz)protected LightweightTypeReferenceresolveType(XExpression element, java.lang.Class<?> clazz)voidsetClassLoader(java.lang.ClassLoader classLoader)voidsetFeatureNameProvider(IdentifiableSimpleNameProvider featureNameProvider)protected java.lang.ObjectthrowClassCastException(XExpression expression, java.lang.Object result, java.lang.Class<?> expectedType)protected java.lang.ObjectthrowNullPointerException(XExpression expression, java.lang.String message)protected java.lang.ObjecttranslateJvmTypeToResult(org.eclipse.xtext.common.types.JvmType type, int arrayDims)protected java.lang.ObjectwrapOrUnwrapArray(java.lang.Object result, LightweightTypeReference expectedType)
-
-
-
Constructor Detail
-
XbaseInterpreter
public XbaseInterpreter()
-
XbaseInterpreter
public XbaseInterpreter(com.google.inject.Provider<IEvaluationContext> contextProvider, org.eclipse.xtext.common.types.util.JavaReflectAccess javaReflectAccess, java.lang.ClassLoader loader)
-
-
Method Detail
-
setFeatureNameProvider
public void setFeatureNameProvider(IdentifiableSimpleNameProvider featureNameProvider)
-
setClassLoader
@Inject public void setClassLoader(java.lang.ClassLoader classLoader)
-
createClassFinder
protected org.eclipse.xtext.common.types.access.impl.ClassFinder createClassFinder(java.lang.ClassLoader classLoader)
- Since:
- 2.18
-
getClass
protected java.lang.Class<?> getClass(java.lang.Class<?> class1)
-
evaluate
public IEvaluationResult evaluate(XExpression expression)
- Specified by:
evaluatein interfaceIExpressionInterpreter
-
createContext
protected IEvaluationContext createContext()
-
evaluate
public IEvaluationResult evaluate(XExpression expression, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
- Specified by:
evaluatein interfaceIExpressionInterpreter
-
internalEvaluate
protected java.lang.Object internalEvaluate(XExpression expression, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator) throws EvaluationException
- Throws:
EvaluationException
-
doEvaluate
protected java.lang.Object doEvaluate(XExpression expression, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
don't call this directly. Always call evaluate() internalEvaluate()
-
_doEvaluate
protected java.lang.Object _doEvaluate(XNullLiteral literal, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
- Parameters:
literal- unused in this context but required for dispatchingcontext- unused in this context but required for dispatchingindicator- unused in this context but required for dispatching
-
_doEvaluate
protected java.lang.Object _doEvaluate(XReturnExpression returnExpr, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XStringLiteral literal, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
- Parameters:
context- unused in this context but required for dispatchingindicator- unused in this context but required for dispatching
-
_doEvaluate
protected java.lang.Object _doEvaluate(XNumberLiteral literal, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
- Parameters:
context- unused in this context but required for dispatchingindicator- unused in this context but required for dispatching
-
_doEvaluate
protected java.lang.Object _doEvaluate(XBooleanLiteral literal, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
- Parameters:
context- unused in this context but required for dispatchingindicator- unused in this context but required for dispatching
-
_doEvaluate
protected java.lang.Object _doEvaluate(XTypeLiteral literal, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
- Parameters:
context- unused in this context but required for dispatchingindicator- unused in this context but required for dispatching
-
_doEvaluate
protected java.lang.Object _doEvaluate(XListLiteral literal, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
getJavaType
protected java.lang.Class<?> getJavaType(org.eclipse.xtext.common.types.JvmType type) throws java.lang.ClassNotFoundException- Throws:
java.lang.ClassNotFoundException
-
_doEvaluate
protected java.lang.Object _doEvaluate(XSetLiteral literal, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
isType
protected boolean isType(XExpression element, java.lang.Class<?> clazz)
-
resolveType
protected LightweightTypeReference resolveType(XExpression element, java.lang.Class<?> clazz)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XClosure closure, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XBlockExpression literal, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XSynchronizedExpression expression, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XIfExpression ifExpression, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XSwitchExpression switchExpression, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XCastedExpression castedExpression, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
castToPrimitiveType
protected java.lang.Object castToPrimitiveType(java.lang.Object castMe, org.eclipse.xtext.common.types.util.Primitives.Primitive kind)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XThrowExpression throwExpression, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
isInstanceoOf
protected boolean isInstanceoOf(java.lang.Object value, org.eclipse.xtext.common.types.JvmTypeReference type)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XTryCatchFinallyExpression tryCatchFinally, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
findCloseMethod
protected org.eclipse.xtext.common.types.JvmOperation findCloseMethod(XVariableDeclaration resource)
- Since:
- 2.18
-
eq
protected boolean eq(java.lang.Object a, java.lang.Object b)
-
throwNullPointerException
protected java.lang.Object throwNullPointerException(XExpression expression, java.lang.String message)
- Parameters:
expression- may be used by inheritors
-
throwClassCastException
protected java.lang.Object throwClassCastException(XExpression expression, java.lang.Object result, java.lang.Class<?> expectedType)
- Parameters:
expression- may be used by inheritors
-
wrapOrUnwrapArray
protected java.lang.Object wrapOrUnwrapArray(java.lang.Object result, LightweightTypeReference expectedType)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XForLoopExpression forLoop, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XBasicForLoopExpression forLoop, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XWhileExpression whileLoop, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
_doEvaluate
protected IEvaluationResult _doEvaluate(XDoWhileExpression doWhileLoop, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XConstructorCall constructorCall, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XMemberFeatureCall featureCall, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
translateJvmTypeToResult
protected java.lang.Object translateJvmTypeToResult(org.eclipse.xtext.common.types.JvmType type, int arrayDims)
-
getDefaultObjectValue
protected java.lang.Object getDefaultObjectValue(LightweightTypeReference type)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XInstanceOfExpression instanceOf, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XVariableDeclaration variableDecl, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XFeatureCall featureCall, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XAbstractFeatureCall featureCall, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
isGetAndAssign
protected boolean isGetAndAssign(XAbstractFeatureCall featureCall)
-
evaluateGetAndAssign
protected java.lang.Object evaluateGetAndAssign(XAbstractFeatureCall featureCall, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
applyGetAndAssignOperator
protected java.lang.Object applyGetAndAssignOperator(java.lang.Object originalValue, java.lang.String operatorName)
-
getActualArguments
protected java.util.List<XExpression> getActualArguments(XAbstractFeatureCall featureCall)
-
getActualReceiver
protected XExpression getActualReceiver(XAbstractFeatureCall featureCall)
-
invokeFeature
protected java.lang.Object invokeFeature(org.eclipse.xtext.common.types.JvmIdentifiableElement feature, XAbstractFeatureCall featureCall, java.lang.Object receiverObj, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
_invokeFeature
protected java.lang.Object _invokeFeature(org.eclipse.xtext.common.types.JvmIdentifiableElement identifiable, XAbstractFeatureCall featureCall, java.lang.Object receiver, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)- Parameters:
featureCall- unused in this context but required for dispatchingindicator- unused in this context but required for dispatching
-
_invokeFeature
protected java.lang.Object _invokeFeature(org.eclipse.xtext.common.types.JvmField jvmField, XAbstractFeatureCall featureCall, java.lang.Object receiver, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)- Parameters:
featureCall- unused in this context but required for dispatchingcontext- unused in this context but required for dispatchingindicator- unused in this context but required for dispatching
-
featureCallField
protected java.lang.Object featureCallField(org.eclipse.xtext.common.types.JvmField jvmField, java.lang.Object receiver)
-
_invokeFeature
protected java.lang.Object _invokeFeature(org.eclipse.xtext.common.types.JvmOperation operation, XAbstractFeatureCall featureCall, java.lang.Object receiver, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
invokeOperation
protected java.lang.Object invokeOperation(org.eclipse.xtext.common.types.JvmOperation operation, java.lang.Object receiver, java.util.List<java.lang.Object> argumentValues, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)- Parameters:
operation- the operation that should be invoked.receiver- the receiver for the invocation. It may benullwhich could signal aNullPointerExceptionor be valid if the givenoperationis 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.- Since:
- 2.3.1
-
invokeOperation
protected java.lang.Object invokeOperation(org.eclipse.xtext.common.types.JvmOperation operation, java.lang.Object receiver, java.util.List<java.lang.Object> argumentValues)
-
evaluateArgumentExpressions
protected java.util.List<java.lang.Object> evaluateArgumentExpressions(org.eclipse.xtext.common.types.JvmExecutable executable, java.util.List<XExpression> expressions, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
coerceArgumentType
protected java.lang.Object coerceArgumentType(java.lang.Object value, org.eclipse.xtext.common.types.JvmTypeReference expectedType)
-
_doEvaluate
protected java.lang.Object _doEvaluate(XAssignment assignment, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
assignValueTo
protected java.lang.Object assignValueTo(org.eclipse.xtext.common.types.JvmIdentifiableElement feature, XAbstractFeatureCall assignment, java.lang.Object value, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
_assignValueTo
protected java.lang.Object _assignValueTo(XVariableDeclaration variable, XAbstractFeatureCall assignment, java.lang.Object value, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
- Parameters:
assignment- unused in this context but required for dispatchingindicator- unused in this context but required for dispatching
-
_assignValueTo
protected java.lang.Object _assignValueTo(org.eclipse.xtext.common.types.JvmField jvmField, XAbstractFeatureCall assignment, java.lang.Object value, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
getReceiver
protected java.lang.Object getReceiver(XAbstractFeatureCall assignment, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
_assignValueTo
protected java.lang.Object _assignValueTo(org.eclipse.xtext.common.types.JvmOperation jvmOperation, XAbstractFeatureCall assignment, java.lang.Object value, IEvaluationContext context, org.eclipse.xtext.util.CancelIndicator indicator)
-
getClassFinder
protected org.eclipse.xtext.common.types.access.impl.ClassFinder getClassFinder()
-
getJavaReflectAccess
protected org.eclipse.xtext.common.types.util.JavaReflectAccess getJavaReflectAccess()
-
-