use of org.apache.camel.component.sql.stored.template.ast.Template in project camel by apache.
the class TemplateParser method parseTemplate.
public Template parseTemplate(String template) {
try {
SSPTParser parser = new SSPTParser(new StringReader(template));
Template ret = validate(parser.parse());
return ret;
} catch (ParseException parseException) {
throw new ParseRuntimeException(parseException);
}
}
use of org.apache.camel.component.sql.stored.template.ast.Template in project camel by apache.
the class ParserTest method shouldParseOk.
@Test
public void shouldParseOk() {
Template template = parser.parseTemplate("addnumbers(INTEGER ${header.header1}," + "VARCHAR ${property.property1},BIGINT ${header.header2},OUT INTEGER header1)");
Assert.assertEquals("addnumbers", template.getProcedureName());
Assert.assertEquals(4, template.getParameterList().size());
Exchange exchange = createExchangeWithBody(null);
exchange.getIn().setHeader("header1", 1);
exchange.setProperty("property1", "constant string");
exchange.getIn().setHeader("header2", BigInteger.valueOf(2));
InputParameter param1 = (InputParameter) template.getParameterList().get(0);
Assert.assertEquals("_0", param1.getName());
Assert.assertEquals(Types.INTEGER, param1.getSqlType());
Assert.assertEquals(1, param1.getValueExtractor().eval(exchange, null));
InputParameter param2 = (InputParameter) template.getParameterList().get(1);
Assert.assertEquals("_1", param2.getName());
Assert.assertEquals(Types.VARCHAR, param2.getSqlType());
Assert.assertEquals("constant string", param2.getValueExtractor().eval(exchange, null));
InputParameter param3 = (InputParameter) template.getParameterList().get(2);
Assert.assertEquals("_2", param3.getName());
Assert.assertEquals(Types.BIGINT, param3.getSqlType());
Assert.assertEquals(BigInteger.valueOf(2L), param3.getValueExtractor().eval(exchange, null));
OutParameter sptpOutputNode = (OutParameter) template.getParameterList().get(3);
Assert.assertEquals("_3", sptpOutputNode.getName());
Assert.assertEquals(Types.INTEGER, sptpOutputNode.getSqlType());
Assert.assertEquals("header1", sptpOutputNode.getOutValueMapKey());
}
use of org.apache.camel.component.sql.stored.template.ast.Template in project camel by apache.
the class ParserTest method vendorSpecificPositiveSqlType.
@Test
public void vendorSpecificPositiveSqlType() {
Template template = parser.parseTemplate("ADDNUMBERS2(1342 ${header.foo})");
assertEquals(1342, ((InputParameter) template.getParameterList().get(0)).getSqlType());
}
use of org.apache.camel.component.sql.stored.template.ast.Template in project camel by apache.
the class ParserTest method vendorSpecificNegativeSqlTypeOut.
@Test
public void vendorSpecificNegativeSqlTypeOut() {
Template template = parser.parseTemplate("ADDNUMBERS2(OUT -1342 h1)");
assertEquals(-1342, ((OutParameter) template.getParameterList().get(0)).getSqlType());
}
use of org.apache.camel.component.sql.stored.template.ast.Template in project camel by apache.
the class ParserTest method nableIssueSyntax.
@Test
public void nableIssueSyntax() {
Map<String, String> params = new HashMap<>();
params.put("P_STR_IN", "a");
Template template = parser.parseTemplate("IBS.\"Z$IMS_INTERFACE_WS\".TEST_STR(VARCHAR :#P_STR_IN,OUT VARCHAR P_STR_OUT)");
assertEquals("a", ((InputParameter) template.getParameterList().get(0)).getValueExtractor().eval(null, params));
assertEquals("IBS.\"Z$IMS_INTERFACE_WS\".TEST_STR", template.getProcedureName());
}
Aggregations