package org.concordion.internal.command;
import org.concordion.api.Element;
import org.concordion.api.Evaluator;
import org.concordion.api.ResultRecorder;
import org.concordion.internal.CommandCall;
import org.concordion.internal.util.Check;
public class EchoCommand extends AbstractCommand {
@Override
public void verify(CommandCall commandCall, Evaluator evaluator, ResultRecorder resultRecorder) {
Check.isFalse(commandCall.hasChildCommands(), "Nesting commands inside an 'echo' is not supported");
Object result = evaluator.evaluate(commandCall.getExpression());
Element element = commandCall.getElement();
if (result != null) {
element.appendText(result.toString());
} else {
Element child = new Element("em");
child.appendText("null");
element.appendChild(child);
}
}
}