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("}");
}