/** * @see org.apache.velocity.runtime.parser.node.ParserVisitor#visit(org.apache.velocity.runtime.parser.node.ASTAddNode, java.lang.Object) */ public Object visit(ASTAddNode node, Object data) { data = node.childrenAccept(this, data); return data; }
case PLUS: jj_consume_token(PLUS); ASTAddNode jjtn001 = new ASTAddNode(this, JJTADDNODE); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001);
protected Object handleSpecial(Object left, Object right, InternalContextAdapter context) { /* * shall we try for strings? */ if (left instanceof String || right instanceof String) { if (left == null) { left = jjtGetChild(0).literal(); } else if (right == null) { right = jjtGetChild(1).literal(); } return left.toString().concat(right.toString()); } return null; }
case PLUS: jj_consume_token(PLUS); ASTAddNode jjtn001 = new ASTAddNode(this, JJTADDNODE); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001);
protected Object handleSpecial(Object left, Object right, InternalContextAdapter context) { /* * shall we try for strings? */ if (left instanceof String || right instanceof String) { if (left == null) { left = jjtGetChild(0).literal(); } else if (right == null) { right = jjtGetChild(1).literal(); } return left.toString().concat(right.toString()); } return null; }
case PLUS: jj_consume_token(PLUS); ASTAddNode jjtn001 = new ASTAddNode(this, JJTADDNODE); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001);
/** * @see org.apache.velocity.runtime.parser.node.ParserVisitor#visit(org.apache.velocity.runtime.parser.node.ASTAddNode, java.lang.Object) */ public Object visit(ASTAddNode node, Object data) { data = node.childrenAccept(this, data); return data; }
@Override protected Object handleSpecial(Object left, Object right, InternalContextAdapter context) { // check for strings, but don't coerce String lstr = DuckType.asString(left, false); String rstr = DuckType.asString(right, false); if (lstr != null || rstr != null) { if (lstr == null) { lstr = left != null ? left.toString() : jjtGetChild(0).literal(); } else if (rstr == null) { rstr = right != null ? right.toString() : jjtGetChild(1).literal(); } return lstr.concat(rstr); } return null; }
case PLUS: jj_consume_token(PLUS); ASTAddNode jjtn001 = new ASTAddNode(this, JJTADDNODE); boolean jjtc001 = true; jjtree.openNodeScope(jjtn001);
/** * @see org.apache.velocity.runtime.parser.node.ParserVisitor#visit(org.apache.velocity.runtime.parser.node.ASTAddNode, java.lang.Object) */ public Object visit(ASTAddNode node, Object data) { data = node.childrenAccept(this, data); return data; }