protected void _toJavaExpression(XIfExpression expr, ITreeAppendable b) { b.trace(expr, false).append(getVarName(expr, b)); }
protected void _toJavaExpression(XTryCatchFinallyExpression expr, ITreeAppendable b) { b.trace(expr, false).append(getVarName(expr, b)); }
protected void _toJavaExpression(XSynchronizedExpression synchronizedExpression, ITreeAppendable b) { b.trace(synchronizedExpression, false).append(getVarName(synchronizedExpression, b)); }
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)); }
internalToJavaStatement(ex, b, isReferenced); if (isReferenced) { b.newLine().append(getVarName(expr, b)).append(" = "); internalToConvertedExpression(ex, b, getLightweightType(expr)); b.append(";");
protected void _toJavaExpression(final XClosure closure, final ITreeAppendable b) { if (b.hasName(closure)) { b.trace(closure, false).append(getVarName(closure, b)); } else { LightweightTypeReference type = getLightweightType(closure); JvmOperation operation = findImplementingOperation(type); if (operation != null) { GeneratorConfig config = b.getGeneratorConfig(); if (config != null && config.getJavaSourceVersion().isAtLeast(JAVA8) && canCompileToJavaLambda(closure, type, operation)) { toLambda(closure, b.trace(closure, false), type, operation, true); } else { toAnonymousClass(closure, b.trace(closure, false), type, operation); } } } }
internalToJavaStatement(catchClause.getExpression(), withDebugging, canBeReferenced); 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); }
if (canBeReferenced) { b.newLine(); b.append(getVarName(expr, b)); b.append(" = "); internalToConvertedExpression(expr.getThen(), b, getLightweightType(expr)); if (canElseBeReferenced) { b.newLine(); b.append(getVarName(expr, b)); b.append(" = "); internalToConvertedExpression(expr.getElse(), b, getLightweightType(expr));
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("}"); }
internalToJavaStatement(initExpression, loopAppendable, isReferenced); if (isReferenced) { loopAppendable.newLine().append(getVarName(expr, loopAppendable)).append(" = ("); internalToConvertedExpression(initExpression, loopAppendable, getLightweightType(expr)); loopAppendable.append(");");