@Override public void internalToConvertedExpression(XExpression obj, ITreeAppendable appendable) { if (obj instanceof AnonymousClass) _toJavaExpression((AnonymousClass) obj, appendable); else if (obj instanceof RichString) _toJavaExpression((RichString) obj, appendable); else super.internalToConvertedExpression(obj, appendable); }
protected void _toJavaExpression(XBlockExpression expr, ITreeAppendable b) { if (expr.getExpressions().isEmpty()) { b.append("null"); return; } if (expr.getExpressions().size()==1) { // conversion was already performed for single expression blocks internalToConvertedExpression(expr.getExpressions().get(0), b, null); return; } b = b.trace(expr, false); b.append(getVarName(expr, b)); }
/** * @param isReferenced unused in this context but necessary for dispatch signature */ protected void _toJavaStatement(XThrowExpression expr, ITreeAppendable b, boolean isReferenced) { internalToJavaStatement(expr.getExpression(), b, true); b.newLine().append("throw "); internalToConvertedExpression(expr.getExpression(), b, null); b.append(";"); }
protected void executeThenPart(XSwitchExpression expr, String switchResultName, XExpression then, ITreeAppendable b, boolean isReferenced) { final boolean canBeReferenced = isReferenced && !isPrimitiveVoid(then); internalToJavaStatement(then, b, canBeReferenced); if (canBeReferenced) { b.newLine().append(switchResultName).append(" = "); internalToConvertedExpression(then, b, getLightweightType(expr)); b.append(";"); } }
protected void _toJavaExpression(XCastedExpression expr, ITreeAppendable b) { b.append("(("); serialize(expr.getType(), expr, b); b.append(") "); internalToConvertedExpression(expr.getTarget(), b, getLightweightType(expr)); b.append(")"); }
if (isReferenced) { b.newLine().append(getVarName(expr, b)).append(" = "); internalToConvertedExpression(ex, b, getLightweightType(expr)); b.append(";");
/** * @param isReferenced unused in this context but necessary for dispatch signature */ protected void _toJavaStatement(XReturnExpression expr, ITreeAppendable b, boolean isReferenced) { if (expr.getExpression()!=null) { internalToJavaStatement(expr.getExpression(), b, true); b.newLine().append("return "); LightweightTypeReference returnTypeToCompile = findRealReturnType(expr); internalToConvertedExpression(expr.getExpression(), b, returnTypeToCompile); b.append(";"); } else { b.newLine().append("return;"); } }
/** * @param isReferenced unused in this context but necessary for dispatch signature */ protected void _toJavaStatement(XVariableDeclaration varDeclaration, ITreeAppendable b, boolean isReferenced) { if (varDeclaration.getRight() != null) { internalToJavaStatement(varDeclaration.getRight(), b, true); } b.newLine(); LightweightTypeReference type = appendVariableTypeAndName(varDeclaration, b); b.append(" = "); if (varDeclaration.getRight() != null) { internalToConvertedExpression(varDeclaration.getRight(), b, type); } else { appendDefaultLiteral(b, type); } b.append(";"); }
if (canBeReferenced) { appendable.newLine().append(getVarName(catchClause.eContainer(), appendable)).append(" = "); internalToConvertedExpression(catchClause.getExpression(), appendable, getLightweightType((XExpression) catchClause.eContainer())); appendable.append(";");
protected void _toJavaStatement(XTryCatchFinallyExpression expr, ITreeAppendable outerAppendable, boolean isReferenced) { ITreeAppendable b = outerAppendable.trace(expr, false); if (isReferenced && !isPrimitiveVoid(expr)) { declareSyntheticVariable(expr, b); } b.newLine().append("try {").increaseIndentation(); final boolean canBeReferenced = isReferenced && !isPrimitiveVoid(expr.getExpression()); internalToJavaStatement(expr.getExpression(), b, canBeReferenced); if (canBeReferenced) { b.newLine().append(getVarName(expr, b)).append(" = "); internalToConvertedExpression(expr.getExpression(), b, getLightweightType(expr)); b.append(";"); } b.decreaseIndentation().newLine().append("}"); appendCatchAndFinally(expr, b, isReferenced); }
b.append(getVarName(expr, b)); b.append(" = "); internalToConvertedExpression(expr.getThen(), b, getLightweightType(expr)); b.append(";"); b.append(getVarName(expr, b)); b.append(" = "); internalToConvertedExpression(expr.getElse(), b, getLightweightType(expr)); b.append(";");
protected void _toJavaStatement(final XSynchronizedExpression synchronizedExpression, final ITreeAppendable b, boolean isReferenced) { if (isReferenced) { declareSyntheticVariable(synchronizedExpression, b); } ITreeAppendable synchronizedAppendable = b.trace(synchronizedExpression, true); XExpression param = synchronizedExpression.getParam(); if (!canCompileToJavaExpression(param, b)) internalToJavaStatement(param, synchronizedAppendable, isReferenced); synchronizedAppendable.newLine().append("synchronized ("); internalToJavaExpression(param, synchronizedAppendable); synchronizedAppendable.append(") {").increaseIndentation(); synchronizedAppendable.openPseudoScope(); XExpression expression = synchronizedExpression.getExpression(); internalToJavaStatement(expression, b, isReferenced); if (isReferenced) { b.newLine().append(getVarName(synchronizedExpression, synchronizedAppendable)).append(" = "); internalToConvertedExpression(expression, b, getLightweightType(synchronizedExpression)); b.append(";"); } synchronizedAppendable.closeScope(); synchronizedAppendable.decreaseIndentation().newLine().append("}"); }
if (isReferenced) { loopAppendable.newLine().append(getVarName(expr, loopAppendable)).append(" = ("); internalToConvertedExpression(initExpression, loopAppendable, getLightweightType(expr)); loopAppendable.append(");");