@Override
protected void compileBody() throws CompilerException
{
final CellModel cell = this.cellComputation.getCell();
if (cell.isOutput()) {
compileOutputGetter();
}
if (cell.isInput()) {
if (shouldCache( cell )) {
compileCacheBegin();
compileInput( cell.getCallChainToCall() );
compileCacheEnd();
}
else {
compileInput( cell.getCallChainToCall() );
}
}
else {
final ExpressionNode cellExpr = cell.getExpression();
final ExpressionCompiler ec = expressionCompiler();
if (null != cellExpr) {
if (shouldCache( cell )) {
compileCacheBegin();
compileExpression( cellExpr );
compileCacheEnd();
}
else {
compileExpression( cellExpr );
}
}
else {
final Object constantValue = cell.getConstantValue();
ec.compileConst( constantValue );
}
}
}