package com.hubspot.jinjava.el.ext;
import de.odysseus.el.misc.TypeConverter;
import de.odysseus.el.tree.impl.Parser.ExtensionHandler;
import de.odysseus.el.tree.impl.Parser.ExtensionPoint;
import de.odysseus.el.tree.impl.Scanner;
import de.odysseus.el.tree.impl.ast.AstBinary;
import de.odysseus.el.tree.impl.ast.AstBinary.SimpleOperator;
import de.odysseus.el.tree.impl.ast.AstNode;
public class StringConcatOperator extends SimpleOperator {
@Override
protected Object apply(TypeConverter converter, Object o1, Object o2) {
String o1s = converter.convert(o1, String.class);
String o2s = converter.convert(o2, String.class);
return new StringBuilder(o1s).append(o2s).toString();
}
public static final Scanner.ExtensionToken TOKEN = new Scanner.ExtensionToken("~");
public static final StringConcatOperator OP = new StringConcatOperator();
public static final ExtensionHandler HANDLER = new ExtensionHandler(ExtensionPoint.ADD) {
@Override
public AstNode createAstNode(AstNode... children) {
return new AstBinary(children[0], children[1], OP);
}
};
}