public String verbalize(LiteralStringExpression expression) {
if (expression == null) {
return "";
} else if (expression instanceof ComposedStringExpression) {
ComposedStringExpression e = (ComposedStringExpression) expression;
StringBuilder sb = new StringBuilder();
Iterator<IStringExpression> it = e.getExpressions().iterator();
while (it.hasNext()) {
IStringExpression each = it.next();
sb.append(verbalize(each));
if (it.hasNext()) {
sb.append(" + ");
}
}
return sb.toString();
} else if (expression instanceof ReferenceStringExpression) {
ReferenceStringExpression e = (ReferenceStringExpression) expression;
return e.getVar();
} else if (expression instanceof SimpleStringExpression) {
SimpleStringExpression e = (SimpleStringExpression) expression;
return "\"" + e.getValue() + "\"";
}
return expression.getClass().getSimpleName();
}