You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/01/15 08:38:49 UTC
[2/2] camel git commit: CAMEL-4725:Vendor spesific SQL type. Removed
type conversions per SQL type.
CAMEL-4725:Vendor spesific SQL type. Removed type conversions per SQL type.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/b3196ee5
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/b3196ee5
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/b3196ee5
Branch: refs/heads/master
Commit: b3196ee548866a26f2dbec512570804cc1787c61
Parents: 8363812
Author: Sami Nurminen <sn...@gmail.com>
Authored: Thu Jan 14 19:30:45 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Jan 15 08:31:02 2016 +0100
----------------------------------------------------------------------
.../BatchCallableStatementCreatorFactory.java | 2 +-
.../sql/stored/CallableStatementWrapper.java | 4 +-
.../sql/stored/SqlStoredComponent.java | 3 +-
.../component/sql/stored/SqlStoredEndpoint.java | 3 +-
.../component/sql/stored/StamentWrapper.java | 1 -
.../sql/stored/TemplateStoredProcedure.java | 6 +-
.../sql/stored/template/ast/InputParameter.java | 23 +-
.../sql/stored/template/ast/OutParameter.java | 10 +-
.../sql/stored/template/ast/ParseHelper.java | 40 +-
.../stored/template/generated/SSPTParser.java | 556 +++++++-------
.../template/generated/SSPTParserConstants.java | 65 +-
.../generated/SSPTParserTokenManager.java | 739 ++++++++++---------
.../sql/stored/template/grammar/sspt.jj | 28 +-
.../camel/component/sql/stored/ParserTest.java | 17 +-
14 files changed, 745 insertions(+), 752 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/b3196ee5/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/BatchCallableStatementCreatorFactory.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/BatchCallableStatementCreatorFactory.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/BatchCallableStatementCreatorFactory.java
index cda2bd4..6654007 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/BatchCallableStatementCreatorFactory.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/BatchCallableStatementCreatorFactory.java
@@ -86,7 +86,7 @@ public class BatchCallableStatementCreatorFactory {
return params;
}
- public CallableStatementCreator newCallableStatementCreator(Map params) {
+ public CallableStatementCreator newCallableStatementCreator(Map<String, ?> params) {
return this.callableStatementCreatorFactory.newCallableStatementCreator(params);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/b3196ee5/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/CallableStatementWrapper.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/CallableStatementWrapper.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/CallableStatementWrapper.java
index 824f21d..b46e1a5 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/CallableStatementWrapper.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/CallableStatementWrapper.java
@@ -39,7 +39,7 @@ public class CallableStatementWrapper implements StamentWrapper {
Map result;
- List<Map> batchItems;
+ List<Map<String, ?>> batchItems;
Integer updateCount;
@@ -63,7 +63,7 @@ public class CallableStatementWrapper implements StamentWrapper {
throw new IllegalArgumentException("Batch must have at least one item");
}
- final Iterator<Map> params = batchItems.iterator();
+ final Iterator<Map<String, ?>> params = batchItems.iterator();
return factory.getJdbcTemplate().execute(new CallableStatementCreator() {
http://git-wip-us.apache.org/repos/asf/camel/blob/b3196ee5/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/SqlStoredComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/SqlStoredComponent.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/SqlStoredComponent.java
index 5444b18..0cefe31 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/SqlStoredComponent.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/SqlStoredComponent.java
@@ -44,7 +44,7 @@ public class SqlStoredComponent extends UriEndpointComponent {
}
@Override
- protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
+ protected Endpoint createEndpoint(String uri, String template, Map<String, Object> parameters) throws Exception {
DataSource target = null;
// endpoint options overrule component configured datasource
@@ -61,7 +61,6 @@ public class SqlStoredComponent extends UriEndpointComponent {
}
JdbcTemplate jdbcTemplate = new JdbcTemplate(target);
- String template = remaining;
SqlStoredEndpoint endpoint = new SqlStoredEndpoint(uri, this, jdbcTemplate);
endpoint.setTemplate(template);
http://git-wip-us.apache.org/repos/asf/camel/blob/b3196ee5/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/SqlStoredEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/SqlStoredEndpoint.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/SqlStoredEndpoint.java
index 7897c74..0c41d10 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/SqlStoredEndpoint.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/SqlStoredEndpoint.java
@@ -58,8 +58,7 @@ public class SqlStoredEndpoint extends DefaultPollingEndpoint {
}
public Producer createProducer() throws Exception {
- SqlStoredProducer result = new SqlStoredProducer(this);
- return result;
+ return new SqlStoredProducer(this);
}
http://git-wip-us.apache.org/repos/asf/camel/blob/b3196ee5/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/StamentWrapper.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/StamentWrapper.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/StamentWrapper.java
index 1b92b28..bcf842d 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/StamentWrapper.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/StamentWrapper.java
@@ -19,7 +19,6 @@ package org.apache.camel.component.sql.stored;
import java.sql.SQLException;
import org.apache.camel.Exchange;
-import org.apache.camel.component.sql.SqlProducer;
/**
* Wrapper that simplifies operations on {@link java.sql.CallableStatement}
http://git-wip-us.apache.org/repos/asf/camel/blob/b3196ee5/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/TemplateStoredProcedure.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/TemplateStoredProcedure.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/TemplateStoredProcedure.java
index c7a1df5..a71ec9b 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/TemplateStoredProcedure.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/TemplateStoredProcedure.java
@@ -54,7 +54,7 @@ public class TemplateStoredProcedure extends StoredProcedure {
} else if (parameter instanceof OutParameter) {
OutParameter outParameter = (OutParameter) parameter;
- declareParameter(new SqlOutParameter(outParameter.getOutHeader(), outParameter.getSqlType()));
+ declareParameter(new SqlOutParameter(outParameter.getOutValueMapKey(), outParameter.getSqlType()));
setFunction(false);
}
}
@@ -71,9 +71,7 @@ public class TemplateStoredProcedure extends StoredProcedure {
}
LOG.debug("Invoking stored procedure: {}", template.getProcedureName());
- Map<String, Object> ret = super.execute(params);
-
- return ret;
+ return super.execute(params);
}
public Template getTemplate() {
http://git-wip-us.apache.org/repos/asf/camel/blob/b3196ee5/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/InputParameter.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/InputParameter.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/InputParameter.java
index deb4d52..9623752 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/InputParameter.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/InputParameter.java
@@ -28,13 +28,11 @@ public class InputParameter {
private final String name;
private final int sqlType;
- private final Class javaType;
private ValueExtractor valueExtractor;
- public InputParameter(String name, int sqlType, Token valueSrcToken, Class javaType) {
+ public InputParameter(String name, int sqlType, Token valueSrcToken) {
this.name = name;
this.sqlType = sqlType;
- this.javaType = javaType;
parseValueExpression(valueSrcToken);
}
@@ -45,7 +43,7 @@ public class InputParameter {
@Override
public Object eval(Exchange exchange, Object container) {
- return exp.evaluate(exchange, javaType);
+ return exp.evaluate(exchange, Object.class);
}
};
} else if (SSPTParserConstants.PARAMETER_POS_TOKEN == valueSrcToken.kind) {
@@ -61,18 +59,6 @@ public class InputParameter {
}
}
- /*public Object getParameterValueFromContainer(Exchange exchange, Object container) {
- if (this.valueExpression != null) {
- return valueExpression.evaluate(exchange, this.getJavaType());
- } else {
- return getValueFromMap((Map<String, Object>) container);
- }
- }*/
-
- /*private Object getValueFromMap(Map<String, Object> container) {
- return container.get(mapKey);
- }*/
-
public String getName() {
return name;
}
@@ -81,11 +67,6 @@ public class InputParameter {
return sqlType;
}
-
- public Class getJavaType() {
- return javaType;
- }
-
public ValueExtractor getValueExtractor() {
return valueExtractor;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/b3196ee5/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/OutParameter.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/OutParameter.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/OutParameter.java
index f01bf57..82b67a1 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/OutParameter.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/OutParameter.java
@@ -20,12 +20,12 @@ public class OutParameter {
private String name;
private int sqlType;
- private String outHeader;
+ private String outValueMapKey;
- public OutParameter(String name, int sqlType, String outHeader) {
+ public OutParameter(String name, int sqlType, String outValueMapKey) {
this.name = name;
this.sqlType = sqlType;
- this.outHeader = outHeader;
+ this.outValueMapKey = outValueMapKey;
}
public String getName() {
@@ -36,7 +36,7 @@ public class OutParameter {
return sqlType;
}
- public String getOutHeader() {
- return outHeader;
+ public String getOutValueMapKey() {
+ return outValueMapKey;
}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/b3196ee5/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/ParseHelper.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/ParseHelper.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/ParseHelper.java
index 8a2d9b5..bbfec72 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/ParseHelper.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/ast/ParseHelper.java
@@ -17,36 +17,26 @@
package org.apache.camel.component.sql.stored.template.ast;
import java.lang.reflect.Field;
-import java.math.BigDecimal;
-import java.sql.Date;
import java.sql.Types;
-import java.util.HashMap;
-import java.util.Map;
+import org.apache.camel.component.sql.stored.template.generated.SSPTParserConstants;
+import org.apache.camel.component.sql.stored.template.generated.Token;
import org.springframework.util.ReflectionUtils;
public final class ParseHelper {
- static final Map<Integer, Class> SQL_TYPE_TO_JAVA_CLASS = new HashMap<>();
-
- //somekind of mapping here https://docs.oracle.com/cd/E19501-01/819-3659/gcmaz/
- //TODO: test with each SQL_TYPE_TO_JAVA_CLASS that JAVA conversion works!
- static {
- SQL_TYPE_TO_JAVA_CLASS.put(Types.INTEGER, Integer.class);
- SQL_TYPE_TO_JAVA_CLASS.put(Types.VARCHAR, String.class);
- SQL_TYPE_TO_JAVA_CLASS.put(Types.BIGINT, Long.class);
- SQL_TYPE_TO_JAVA_CLASS.put(Types.CHAR, String.class);
- SQL_TYPE_TO_JAVA_CLASS.put(Types.DECIMAL, BigDecimal.class);
- SQL_TYPE_TO_JAVA_CLASS.put(Types.BOOLEAN, Boolean.class);
- SQL_TYPE_TO_JAVA_CLASS.put(Types.DATE, Date.class);
- SQL_TYPE_TO_JAVA_CLASS.put(Types.TIMESTAMP, Date.class);
- }
-
private ParseHelper() {
}
- public static int parseSqlType(String sqlType) {
- Field field = ReflectionUtils.findField(Types.class, sqlType);
+ public static int parseSqlType(Token sqlType) {
+
+ //if number then use it(probably Vendor spesific SQL-type)
+ if (sqlType.kind == SSPTParserConstants.NUMBER) {
+ return Integer.valueOf(sqlType.toString());
+ }
+
+ //Loop-up from "Standard" types
+ Field field = ReflectionUtils.findField(Types.class, sqlType.toString());
if (field == null) {
throw new ParseRuntimeException("Field " + sqlType + " not found from java.procedureName.Types");
}
@@ -56,12 +46,4 @@ public final class ParseHelper {
throw new ParseRuntimeException(e);
}
}
-
- public static Class sqlTypeToJavaType(int sqlType, String sqlTypeStr) {
- Class javaType = SQL_TYPE_TO_JAVA_CLASS.get(sqlType);
- if (javaType == null) {
- throw new ParseRuntimeException("Unable to map SQL type " + sqlTypeStr + " to Java type");
- }
- return javaType;
- }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/b3196ee5/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParser.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParser.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParser.java
index 27599f8..d55b900 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParser.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParser.java
@@ -1,328 +1,308 @@
/* Generated By:JavaCC: Do not edit this line. SSPTParser.java */
package org.apache.camel.component.sql.stored.template.generated;
-import org.apache.camel.component.sql.stored.template.ast.InputParameter;
-import org.apache.camel.component.sql.stored.template.ast.OutParameter;
-import org.apache.camel.component.sql.stored.template.ast.ParseHelper;
-import org.apache.camel.component.sql.stored.template.ast.Template;
+import org.apache.camel.component.sql.stored.template.ast.*;
public class SSPTParser implements SSPTParserConstants {
- static private int[] jj_la1_0;
+ int paramaterNameCounter = 0;
- static {
- jj_la1_init_0();
- }
-
- final private int[] jj_la1 = new int[4];
- /** Generated Token Manager. */
- public SSPTParserTokenManager token_source;
- /** Current token. */
- public Token token;
- /** Next token. */
- public Token jj_nt;
- int paramaterNameCounter = 0;
- SimpleCharStream jj_input_stream;
- private int jj_ntk;
- private int jj_gen;
- private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
- private int[] jj_expentry;
- private int jj_kind = -1;
+ String createNextParameterName() {
+ return "_"+(paramaterNameCounter++);
+ }
- /** Constructor with InputStream. */
- public SSPTParser(java.io.InputStream stream) {
- this(stream, null);
- }
-
- /** Constructor with InputStream and supplied encoding */
- public SSPTParser(java.io.InputStream stream, String encoding) {
- try {
- jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1);
- } catch (java.io.UnsupportedEncodingException e) {
- throw new RuntimeException(e);
+ final public Template parse() throws ParseException {
+ Token procudureName;
+ Template template = new Template();
+ Object parameter = null;
+ procudureName = jj_consume_token(IDENTIFIER);
+ jj_consume_token(1);
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case 5:
+ case NUMBER:
+ case IDENTIFIER:
+ parameter = Parameter();
+ template.addParameter(parameter);
+ label_1:
+ while (true) {
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case 2:
+ ;
+ break;
+ default:
+ jj_la1[0] = jj_gen;
+ break label_1;
}
- token_source = new SSPTParserTokenManager(jj_input_stream);
- token = new Token();
- jj_ntk = -1;
- jj_gen = 0;
- for (int i = 0; i < 4; i++) jj_la1[i] = -1;
+ jj_consume_token(2);
+ parameter = Parameter();
+ template.addParameter(parameter);
+ }
+ break;
+ default:
+ jj_la1[1] = jj_gen;
+ ;
}
+ jj_consume_token(3);
+ jj_consume_token(0);
+ template.setProcedureName(procudureName.toString());
+ {if (true) return template;}
+ throw new Error("Missing return statement in function");
+ }
- /** Constructor. */
- public SSPTParser(java.io.Reader stream) {
- jj_input_stream = new SimpleCharStream(stream, 1, 1);
- token_source = new SSPTParserTokenManager(jj_input_stream);
- token = new Token();
- jj_ntk = -1;
- jj_gen = 0;
- for (int i = 0; i < 4; i++) jj_la1[i] = -1;
+ final public Object Parameter() throws ParseException {
+ Object param;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case NUMBER:
+ case IDENTIFIER:
+ param = InputParameter();
+ {if (true) return param;}
+ break;
+ case 5:
+ param = OutParameter();
+ {if (true) return param;}
+ break;
+ default:
+ jj_la1[2] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
}
+ throw new Error("Missing return statement in function");
+ }
- /** Constructor with generated Token Manager. */
- public SSPTParser(SSPTParserTokenManager tm) {
- token_source = tm;
- token = new Token();
- jj_ntk = -1;
- jj_gen = 0;
- for (int i = 0; i < 4; i++) jj_la1[i] = -1;
- }
+ final public InputParameter InputParameter() throws ParseException {
+ Token sqlTypeToken;
+ String name;
+ Token valueSrcToken;
+ sqlTypeToken = ParameterSqlType();
+ jj_consume_token(4);
+ valueSrcToken = InputParameterSrc();
+ int sqlType = ParseHelper.parseSqlType(sqlTypeToken);
+ {if (true) return new InputParameter(createNextParameterName(),sqlType,valueSrcToken);}
+ throw new Error("Missing return statement in function");
+ }
- private static void jj_la1_init_0() {
- jj_la1_0 = new int[]{0x4, 0x820, 0x820, 0x600,};
- }
+ final public OutParameter OutParameter() throws ParseException {
+ Token sqlTypeToken;
+ String name;
+ String outValueMapKey;
+ jj_consume_token(5);
+ jj_consume_token(4);
+ sqlTypeToken = ParameterSqlType();
+ jj_consume_token(4);
+ outValueMapKey = OutHeader();
+ {if (true) return new OutParameter(createNextParameterName(),ParseHelper.parseSqlType(sqlTypeToken),outValueMapKey);}
+ throw new Error("Missing return statement in function");
+ }
- String createNextParameterName() {
- return "_" + (paramaterNameCounter++);
+ final public Token ParameterSqlType() throws ParseException {
+ Token t;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case NUMBER:
+ t = jj_consume_token(NUMBER);
+ break;
+ case IDENTIFIER:
+ t = jj_consume_token(IDENTIFIER);
+ break;
+ default:
+ jj_la1[3] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
}
+ {if (true) return t;}
+ throw new Error("Missing return statement in function");
+ }
- final public Template parse() throws ParseException {
- Token procudureName;
- Template template = new Template();
- Object parameter = null;
- procudureName = jj_consume_token(IDENTIFIER);
- jj_consume_token(1);
- switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
- case 5:
- case IDENTIFIER:
- parameter = Parameter();
- template.addParameter(parameter);
- label_1:
- while (true) {
- switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
- case 2:
- ;
- break;
- default:
- jj_la1[0] = jj_gen;
- break label_1;
- }
- jj_consume_token(2);
- parameter = Parameter();
- template.addParameter(parameter);
- }
- break;
- default:
- jj_la1[1] = jj_gen;
- ;
- }
- jj_consume_token(3);
- jj_consume_token(0);
- template.setProcedureName(procudureName.toString());
- {
- if (true) return template;
- }
- throw new Error("Missing return statement in function");
- }
+ final public String OutHeader() throws ParseException {
+ Token token;
+ token = jj_consume_token(IDENTIFIER);
+ {if (true) return token.toString();}
+ throw new Error("Missing return statement in function");
+ }
- final public Object Parameter() throws ParseException {
- Object param;
- switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
- case IDENTIFIER:
- param = InputParameter();
- {
- if (true) return param;
- }
- break;
- case 5:
- param = OutParameter();
- {
- if (true) return param;
- }
- break;
- default:
- jj_la1[2] = jj_gen;
- jj_consume_token(-1);
- throw new ParseException();
- }
- throw new Error("Missing return statement in function");
+ final public Token InputParameterSrc() throws ParseException {
+ Token ret = null;
+ switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
+ case SIMPLE_EXP_TOKEN:
+ ret = jj_consume_token(SIMPLE_EXP_TOKEN);
+ {if (true) return ret;}
+ break;
+ case PARAMETER_POS_TOKEN:
+ ret = jj_consume_token(PARAMETER_POS_TOKEN);
+ {if (true) return ret;}
+ break;
+ default:
+ jj_la1[4] = jj_gen;
+ jj_consume_token(-1);
+ throw new ParseException();
}
+ throw new Error("Missing return statement in function");
+ }
- final public InputParameter InputParameter() throws ParseException {
- String sqlTypeAsStr;
- String name;
- Token valueSrcToken;
- sqlTypeAsStr = ParameterSqlType();
- jj_consume_token(4);
- valueSrcToken = InputParameterSrc();
- int sqlType = ParseHelper.parseSqlType(sqlTypeAsStr);
- {
- if (true)
- return new InputParameter(createNextParameterName(), sqlType, valueSrcToken, ParseHelper.sqlTypeToJavaType(sqlType,
- sqlTypeAsStr));
- }
- throw new Error("Missing return statement in function");
- }
+ /** Generated Token Manager. */
+ public SSPTParserTokenManager token_source;
+ SimpleCharStream jj_input_stream;
+ /** Current token. */
+ public Token token;
+ /** Next token. */
+ public Token jj_nt;
+ private int jj_ntk;
+ private int jj_gen;
+ final private int[] jj_la1 = new int[5];
+ static private int[] jj_la1_0;
+ static {
+ jj_la1_init_0();
+ }
+ private static void jj_la1_init_0() {
+ jj_la1_0 = new int[] {0x4,0x1060,0x1060,0x1040,0xc00,};
+ }
- final public OutParameter OutParameter() throws ParseException {
- String sqlType;
- String name;
- String outHeader;
- jj_consume_token(5);
- jj_consume_token(4);
- sqlType = ParameterSqlType();
- jj_consume_token(4);
- outHeader = OutHeader();
- {
- if (true) return new OutParameter(createNextParameterName(), ParseHelper.parseSqlType(sqlType), outHeader);
- }
- throw new Error("Missing return statement in function");
- }
+ /** Constructor with InputStream. */
+ public SSPTParser(java.io.InputStream stream) {
+ this(stream, null);
+ }
+ /** Constructor with InputStream and supplied encoding */
+ public SSPTParser(java.io.InputStream stream, String encoding) {
+ try { jj_input_stream = new SimpleCharStream(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
+ token_source = new SSPTParserTokenManager(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 5; i++) jj_la1[i] = -1;
+ }
- final public String ParameterSqlType() throws ParseException {
- Token t;
- t = jj_consume_token(IDENTIFIER);
- {
- if (true) return t.toString();
- }
- throw new Error("Missing return statement in function");
- }
+ /** Reinitialise. */
+ public void ReInit(java.io.InputStream stream) {
+ ReInit(stream, null);
+ }
+ /** Reinitialise. */
+ public void ReInit(java.io.InputStream stream, String encoding) {
+ try { jj_input_stream.ReInit(stream, encoding, 1, 1); } catch(java.io.UnsupportedEncodingException e) { throw new RuntimeException(e); }
+ token_source.ReInit(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 5; i++) jj_la1[i] = -1;
+ }
- final public String OutHeader() throws ParseException {
- Token token;
- token = jj_consume_token(IDENTIFIER);
- {
- if (true) return token.toString();
- }
- throw new Error("Missing return statement in function");
- }
+ /** Constructor. */
+ public SSPTParser(java.io.Reader stream) {
+ jj_input_stream = new SimpleCharStream(stream, 1, 1);
+ token_source = new SSPTParserTokenManager(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 5; i++) jj_la1[i] = -1;
+ }
- final public Token InputParameterSrc() throws ParseException {
- Token ret = null;
- switch ((jj_ntk == -1) ? jj_ntk() : jj_ntk) {
- case SIMPLE_EXP_TOKEN:
- ret = jj_consume_token(SIMPLE_EXP_TOKEN);
- {
- if (true) return ret;
- }
- break;
- case PARAMETER_POS_TOKEN:
- ret = jj_consume_token(PARAMETER_POS_TOKEN);
- {
- if (true) return ret;
- }
- break;
- default:
- jj_la1[3] = jj_gen;
- jj_consume_token(-1);
- throw new ParseException();
- }
- throw new Error("Missing return statement in function");
- }
+ /** Reinitialise. */
+ public void ReInit(java.io.Reader stream) {
+ jj_input_stream.ReInit(stream, 1, 1);
+ token_source.ReInit(jj_input_stream);
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 5; i++) jj_la1[i] = -1;
+ }
- /** Reinitialise. */
- public void ReInit(java.io.InputStream stream) {
- ReInit(stream, null);
- }
+ /** Constructor with generated Token Manager. */
+ public SSPTParser(SSPTParserTokenManager tm) {
+ token_source = tm;
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 5; i++) jj_la1[i] = -1;
+ }
- /** Reinitialise. */
- public void ReInit(java.io.InputStream stream, String encoding) {
- try {
- jj_input_stream.ReInit(stream, encoding, 1, 1);
- } catch (java.io.UnsupportedEncodingException e) {
- throw new RuntimeException(e);
- }
- token_source.ReInit(jj_input_stream);
- token = new Token();
- jj_ntk = -1;
- jj_gen = 0;
- for (int i = 0; i < 4; i++) jj_la1[i] = -1;
- }
+ /** Reinitialise. */
+ public void ReInit(SSPTParserTokenManager tm) {
+ token_source = tm;
+ token = new Token();
+ jj_ntk = -1;
+ jj_gen = 0;
+ for (int i = 0; i < 5; i++) jj_la1[i] = -1;
+ }
- /** Reinitialise. */
- public void ReInit(java.io.Reader stream) {
- jj_input_stream.ReInit(stream, 1, 1);
- token_source.ReInit(jj_input_stream);
- token = new Token();
- jj_ntk = -1;
- jj_gen = 0;
- for (int i = 0; i < 4; i++) jj_la1[i] = -1;
+ private Token jj_consume_token(int kind) throws ParseException {
+ Token oldToken;
+ if ((oldToken = token).next != null) token = token.next;
+ else token = token.next = token_source.getNextToken();
+ jj_ntk = -1;
+ if (token.kind == kind) {
+ jj_gen++;
+ return token;
}
+ token = oldToken;
+ jj_kind = kind;
+ throw generateParseException();
+ }
- /** Reinitialise. */
- public void ReInit(SSPTParserTokenManager tm) {
- token_source = tm;
- token = new Token();
- jj_ntk = -1;
- jj_gen = 0;
- for (int i = 0; i < 4; i++) jj_la1[i] = -1;
- }
- private Token jj_consume_token(int kind) throws ParseException {
- Token oldToken;
- if ((oldToken = token).next != null) token = token.next;
- else token = token.next = token_source.getNextToken();
- jj_ntk = -1;
- if (token.kind == kind) {
- jj_gen++;
- return token;
- }
- token = oldToken;
- jj_kind = kind;
- throw generateParseException();
- }
+/** Get the next Token. */
+ final public Token getNextToken() {
+ if (token.next != null) token = token.next;
+ else token = token.next = token_source.getNextToken();
+ jj_ntk = -1;
+ jj_gen++;
+ return token;
+ }
- /** Get the next Token. */
- final public Token getNextToken() {
- if (token.next != null) token = token.next;
- else token = token.next = token_source.getNextToken();
- jj_ntk = -1;
- jj_gen++;
- return token;
+/** Get the specific Token. */
+ final public Token getToken(int index) {
+ Token t = token;
+ for (int i = 0; i < index; i++) {
+ if (t.next != null) t = t.next;
+ else t = t.next = token_source.getNextToken();
}
+ return t;
+ }
- /** Get the specific Token. */
- final public Token getToken(int index) {
- Token t = token;
- for (int i = 0; i < index; i++) {
- if (t.next != null) t = t.next;
- else t = t.next = token_source.getNextToken();
- }
- return t;
- }
+ private int jj_ntk() {
+ if ((jj_nt=token.next) == null)
+ return (jj_ntk = (token.next=token_source.getNextToken()).kind);
+ else
+ return (jj_ntk = jj_nt.kind);
+ }
- private int jj_ntk() {
- if ((jj_nt = token.next) == null)
- return (jj_ntk = (token.next = token_source.getNextToken()).kind);
- else
- return (jj_ntk = jj_nt.kind);
- }
+ private java.util.List<int[]> jj_expentries = new java.util.ArrayList<int[]>();
+ private int[] jj_expentry;
+ private int jj_kind = -1;
- /** Generate ParseException. */
- public ParseException generateParseException() {
- jj_expentries.clear();
- boolean[] la1tokens = new boolean[12];
- if (jj_kind >= 0) {
- la1tokens[jj_kind] = true;
- jj_kind = -1;
- }
- for (int i = 0; i < 4; i++) {
- if (jj_la1[i] == jj_gen) {
- for (int j = 0; j < 32; j++) {
- if ((jj_la1_0[i] & (1 << j)) != 0) {
- la1tokens[j] = true;
- }
- }
- }
- }
- for (int i = 0; i < 12; i++) {
- if (la1tokens[i]) {
- jj_expentry = new int[1];
- jj_expentry[0] = i;
- jj_expentries.add(jj_expentry);
- }
- }
- int[][] exptokseq = new int[jj_expentries.size()][];
- for (int i = 0; i < jj_expentries.size(); i++) {
- exptokseq[i] = jj_expentries.get(i);
+ /** Generate ParseException. */
+ public ParseException generateParseException() {
+ jj_expentries.clear();
+ boolean[] la1tokens = new boolean[13];
+ if (jj_kind >= 0) {
+ la1tokens[jj_kind] = true;
+ jj_kind = -1;
+ }
+ for (int i = 0; i < 5; i++) {
+ if (jj_la1[i] == jj_gen) {
+ for (int j = 0; j < 32; j++) {
+ if ((jj_la1_0[i] & (1<<j)) != 0) {
+ la1tokens[j] = true;
+ }
}
- return new ParseException(token, exptokseq, tokenImage);
+ }
}
-
- /** Enable tracing. */
- final public void enable_tracing() {
+ for (int i = 0; i < 13; i++) {
+ if (la1tokens[i]) {
+ jj_expentry = new int[1];
+ jj_expentry[0] = i;
+ jj_expentries.add(jj_expentry);
+ }
}
-
- /** Disable tracing. */
- final public void disable_tracing() {
+ int[][] exptokseq = new int[jj_expentries.size()][];
+ for (int i = 0; i < jj_expentries.size(); i++) {
+ exptokseq[i] = jj_expentries.get(i);
}
+ return new ParseException(token, exptokseq, tokenImage);
+ }
+
+ /** Enable tracing. */
+ final public void enable_tracing() {
+ }
+
+ /** Disable tracing. */
+ final public void disable_tracing() {
+ }
}
http://git-wip-us.apache.org/repos/asf/camel/blob/b3196ee5/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserConstants.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserConstants.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserConstants.java
index 147e050..0b66a49 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserConstants.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserConstants.java
@@ -8,38 +8,41 @@ package org.apache.camel.component.sql.stored.template.generated;
*/
public interface SSPTParserConstants {
- /** End of File. */
- int EOF = 0;
- /** RegularExpression Id. */
- int DIGIT = 6;
- /** RegularExpression Id. */
- int LETTER = 7;
- /** RegularExpression Id. */
- int SPECIAL = 8;
- /** RegularExpression Id. */
- int SIMPLE_EXP_TOKEN = 9;
- /** RegularExpression Id. */
- int PARAMETER_POS_TOKEN = 10;
- /** RegularExpression Id. */
- int IDENTIFIER = 11;
+ /** End of File. */
+ int EOF = 0;
+ /** RegularExpression Id. */
+ int NUMBER = 6;
+ /** RegularExpression Id. */
+ int DIGIT = 7;
+ /** RegularExpression Id. */
+ int LETTER = 8;
+ /** RegularExpression Id. */
+ int SPECIAL = 9;
+ /** RegularExpression Id. */
+ int SIMPLE_EXP_TOKEN = 10;
+ /** RegularExpression Id. */
+ int PARAMETER_POS_TOKEN = 11;
+ /** RegularExpression Id. */
+ int IDENTIFIER = 12;
- /** Lexical state. */
- int DEFAULT = 0;
+ /** Lexical state. */
+ int DEFAULT = 0;
- /** Literal token values. */
- String[] tokenImage = {
- "<EOF>",
- "\"(\"",
- "\",\"",
- "\")\"",
- "\" \"",
- "\"OUT\"",
- "<DIGIT>",
- "<LETTER>",
- "<SPECIAL>",
- "<SIMPLE_EXP_TOKEN>",
- "<PARAMETER_POS_TOKEN>",
- "<IDENTIFIER>",
- };
+ /** Literal token values. */
+ String[] tokenImage = {
+ "<EOF>",
+ "\"(\"",
+ "\",\"",
+ "\")\"",
+ "\" \"",
+ "\"OUT\"",
+ "<NUMBER>",
+ "<DIGIT>",
+ "<LETTER>",
+ "<SPECIAL>",
+ "<SIMPLE_EXP_TOKEN>",
+ "<PARAMETER_POS_TOKEN>",
+ "<IDENTIFIER>",
+ };
}
http://git-wip-us.apache.org/repos/asf/camel/blob/b3196ee5/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserTokenManager.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserTokenManager.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserTokenManager.java
index d1a65b8..1dd57a1 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserTokenManager.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/generated/SSPTParserTokenManager.java
@@ -1,375 +1,410 @@
/* Generated By:JavaCC: Do not edit this line. SSPTParserTokenManager.java */
package org.apache.camel.component.sql.stored.template.generated;
+import org.apache.camel.component.sql.stored.template.ast.*;
/** Token Manager. */
-public class SSPTParserTokenManager implements SSPTParserConstants {
+public class SSPTParserTokenManager implements SSPTParserConstants
+{
- /** Token literal values. */
- public static final String[] jjstrLiteralImages = {
- "", "\50", "\54", "\51", "\40", "\117\125\124", null, null, null, null, null,
- null,};
- /** Lexer state names. */
- public static final String[] lexStateNames = {
- "DEFAULT",
- };
- static final int[] jjnextStates = {
- 1, 2,
- };
- private final int[] jjrounds = new int[8];
- private final int[] jjstateSet = new int[16];
- /** Debug output. */
- public java.io.PrintStream debugStream = System.out;
- protected SimpleCharStream input_stream;
- protected char curChar;
- int curLexState = 0;
- int defaultLexState = 0;
- int jjnewStateCnt;
- int jjround;
- int jjmatchedPos;
- int jjmatchedKind;
-
- /** Constructor. */
- public SSPTParserTokenManager(SimpleCharStream stream) {
- if (SimpleCharStream.staticFlag)
- throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
- input_stream = stream;
- }
-
- /** Constructor. */
- public SSPTParserTokenManager(SimpleCharStream stream, int lexState) {
- this(stream);
- SwitchTo(lexState);
- }
-
- /** Set debug output. */
- public void setDebugStream(java.io.PrintStream ds) {
- debugStream = ds;
- }
-
- private final int jjStopStringLiteralDfa_0(int pos, long active0) {
- switch (pos) {
- case 0:
- if ((active0 & 0x20L) != 0L) {
- jjmatchedKind = 11;
- return 7;
- }
- return -1;
- case 1:
- if ((active0 & 0x20L) != 0L) {
- jjmatchedKind = 11;
- jjmatchedPos = 1;
- return 7;
- }
- return -1;
- default:
- return -1;
- }
- }
-
- private final int jjStartNfa_0(int pos, long active0) {
- return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);
- }
-
- private int jjStopAtPos(int pos, int kind) {
- jjmatchedKind = kind;
- jjmatchedPos = pos;
- return pos + 1;
- }
-
- private int jjMoveStringLiteralDfa0_0() {
- switch (curChar) {
- case 32:
- return jjStopAtPos(0, 4);
- case 40:
- return jjStopAtPos(0, 1);
- case 41:
- return jjStopAtPos(0, 3);
- case 44:
- return jjStopAtPos(0, 2);
- case 79:
- return jjMoveStringLiteralDfa1_0(0x20L);
- default:
- return jjMoveNfa_0(3, 0);
- }
- }
-
- private int jjMoveStringLiteralDfa1_0(long active0) {
- try {
- curChar = input_stream.readChar();
- } catch (java.io.IOException e) {
- jjStopStringLiteralDfa_0(0, active0);
- return 1;
- }
- switch (curChar) {
- case 85:
- return jjMoveStringLiteralDfa2_0(active0, 0x20L);
- default:
- break;
- }
- return jjStartNfa_0(0, active0);
- }
-
- private int jjMoveStringLiteralDfa2_0(long old0, long active0) {
- if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(0, old0);
- try {
- curChar = input_stream.readChar();
- } catch (java.io.IOException e) {
- jjStopStringLiteralDfa_0(1, active0);
- return 2;
- }
- switch (curChar) {
- case 84:
- if ((active0 & 0x20L) != 0L)
- return jjStartNfaWithStates_0(2, 5, 7);
- break;
- default:
- break;
- }
- return jjStartNfa_0(1, active0);
- }
-
- private int jjStartNfaWithStates_0(int pos, int kind, int state) {
- jjmatchedKind = kind;
- jjmatchedPos = pos;
- try {
- curChar = input_stream.readChar();
- } catch (java.io.IOException e) {
- return pos + 1;
- }
- return jjMoveNfa_0(state, pos + 1);
- }
-
- private int jjMoveNfa_0(int startState, int curPos) {
- int startsAt = 0;
- jjnewStateCnt = 8;
- int i = 1;
- jjstateSet[0] = startState;
- int kind = 0x7fffffff;
- for (; ; ) {
- if (++jjround == 0x7fffffff)
- ReInitRounds();
- if (curChar < 64) {
- long l = 1L << curChar;
- do {
- switch (jjstateSet[--i]) {
- case 3:
- if ((0x3ff609c00000000L & l) != 0L) {
- if (kind > 11)
- kind = 11;
- jjCheckNAdd(7);
- } else if (curChar == 58)
- jjstateSet[jjnewStateCnt++] = 4;
- if (curChar == 36)
- jjstateSet[jjnewStateCnt++] = 0;
- break;
- case 1:
- if ((0x3ff609d00000000L & l) != 0L)
- jjAddStates(0, 1);
- break;
- case 4:
- if (curChar == 35)
- jjCheckNAdd(5);
- break;
- case 5:
- if ((0x3ff609c00000000L & l) == 0L)
- break;
- if (kind > 10)
- kind = 10;
- jjCheckNAdd(5);
- break;
- case 6:
- if (curChar == 58)
- jjstateSet[jjnewStateCnt++] = 4;
- break;
- case 7:
- if ((0x3ff609c00000000L & l) == 0L)
- break;
- if (kind > 11)
- kind = 11;
- jjCheckNAdd(7);
- break;
- default:
- break;
- }
- } while (i != startsAt);
- } else if (curChar < 128) {
- long l = 1L << (curChar & 077);
- do {
- switch (jjstateSet[--i]) {
- case 3:
- case 7:
- if ((0x2ffffffe87fffffeL & l) == 0L)
- break;
- if (kind > 11)
- kind = 11;
- jjCheckNAdd(7);
- break;
- case 0:
- if (curChar == 123)
- jjCheckNAdd(1);
- break;
- case 1:
- if ((0x2ffffffe87fffffeL & l) != 0L)
- jjCheckNAddTwoStates(1, 2);
- break;
- case 2:
- if (curChar == 125 && kind > 9)
- kind = 9;
- break;
- case 5:
- if ((0x2ffffffe87fffffeL & l) == 0L)
- break;
- if (kind > 10)
- kind = 10;
- jjstateSet[jjnewStateCnt++] = 5;
- break;
- default:
- break;
- }
- } while (i != startsAt);
- } else {
- int i2 = (curChar & 0xff) >> 6;
- long l2 = 1L << (curChar & 077);
- do {
- switch (jjstateSet[--i]) {
- default:
- break;
- }
- } while (i != startsAt);
+ /** Debug output. */
+ public java.io.PrintStream debugStream = System.out;
+ /** Set debug output. */
+ public void setDebugStream(java.io.PrintStream ds) { debugStream = ds; }
+private final int jjStopStringLiteralDfa_0(int pos, long active0)
+{
+ switch (pos)
+ {
+ case 0:
+ if ((active0 & 0x20L) != 0L)
+ {
+ jjmatchedKind = 12;
+ return 8;
+ }
+ return -1;
+ case 1:
+ if ((active0 & 0x20L) != 0L)
+ {
+ jjmatchedKind = 12;
+ jjmatchedPos = 1;
+ return 8;
+ }
+ return -1;
+ default :
+ return -1;
+ }
+}
+private final int jjStartNfa_0(int pos, long active0)
+{
+ return jjMoveNfa_0(jjStopStringLiteralDfa_0(pos, active0), pos + 1);
+}
+private int jjStopAtPos(int pos, int kind)
+{
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ return pos + 1;
+}
+private int jjMoveStringLiteralDfa0_0()
+{
+ switch(curChar)
+ {
+ case 32:
+ return jjStopAtPos(0, 4);
+ case 40:
+ return jjStopAtPos(0, 1);
+ case 41:
+ return jjStopAtPos(0, 3);
+ case 44:
+ return jjStopAtPos(0, 2);
+ case 79:
+ return jjMoveStringLiteralDfa1_0(0x20L);
+ default :
+ return jjMoveNfa_0(4, 0);
+ }
+}
+private int jjMoveStringLiteralDfa1_0(long active0)
+{
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(0, active0);
+ return 1;
+ }
+ switch(curChar)
+ {
+ case 85:
+ return jjMoveStringLiteralDfa2_0(active0, 0x20L);
+ default :
+ break;
+ }
+ return jjStartNfa_0(0, active0);
+}
+private int jjMoveStringLiteralDfa2_0(long old0, long active0)
+{
+ if (((active0 &= old0)) == 0L)
+ return jjStartNfa_0(0, old0);
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) {
+ jjStopStringLiteralDfa_0(1, active0);
+ return 2;
+ }
+ switch(curChar)
+ {
+ case 84:
+ if ((active0 & 0x20L) != 0L)
+ return jjStartNfaWithStates_0(2, 5, 8);
+ break;
+ default :
+ break;
+ }
+ return jjStartNfa_0(1, active0);
+}
+private int jjStartNfaWithStates_0(int pos, int kind, int state)
+{
+ jjmatchedKind = kind;
+ jjmatchedPos = pos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return pos + 1; }
+ return jjMoveNfa_0(state, pos + 1);
+}
+private int jjMoveNfa_0(int startState, int curPos)
+{
+ int startsAt = 0;
+ jjnewStateCnt = 9;
+ int i = 1;
+ jjstateSet[0] = startState;
+ int kind = 0x7fffffff;
+ for (;;)
+ {
+ if (++jjround == 0x7fffffff)
+ ReInitRounds();
+ if (curChar < 64)
+ {
+ long l = 1L << curChar;
+ do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 4:
+ if ((0x3ff609c00000000L & l) != 0L)
+ {
+ if (kind > 12)
+ kind = 12;
+ jjCheckNAdd(8);
+ }
+ else if (curChar == 58)
+ jjstateSet[jjnewStateCnt++] = 5;
+ if ((0x3ff000000000000L & l) != 0L)
+ {
+ if (kind > 6)
+ kind = 6;
+ jjCheckNAdd(0);
+ }
+ else if (curChar == 36)
+ jjstateSet[jjnewStateCnt++] = 1;
+ break;
+ case 0:
+ if ((0x3ff000000000000L & l) == 0L)
+ break;
+ if (kind > 6)
+ kind = 6;
+ jjCheckNAdd(0);
+ break;
+ case 2:
+ if ((0x3ff609d00000000L & l) != 0L)
+ jjAddStates(0, 1);
+ break;
+ case 5:
+ if (curChar == 35)
+ jjCheckNAdd(6);
+ break;
+ case 6:
+ if ((0x3ff609c00000000L & l) == 0L)
+ break;
+ if (kind > 11)
+ kind = 11;
+ jjCheckNAdd(6);
+ break;
+ case 7:
+ if (curChar == 58)
+ jjstateSet[jjnewStateCnt++] = 5;
+ break;
+ case 8:
+ if ((0x3ff609c00000000L & l) == 0L)
+ break;
+ if (kind > 12)
+ kind = 12;
+ jjCheckNAdd(8);
+ break;
+ default : break;
}
- if (kind != 0x7fffffff) {
- jjmatchedKind = kind;
- jjmatchedPos = curPos;
- kind = 0x7fffffff;
+ } while(i != startsAt);
+ }
+ else if (curChar < 128)
+ {
+ long l = 1L << (curChar & 077);
+ do
+ {
+ switch(jjstateSet[--i])
+ {
+ case 4:
+ case 8:
+ if ((0x2ffffffe87fffffeL & l) == 0L)
+ break;
+ if (kind > 12)
+ kind = 12;
+ jjCheckNAdd(8);
+ break;
+ case 1:
+ if (curChar == 123)
+ jjCheckNAdd(2);
+ break;
+ case 2:
+ if ((0x2ffffffe87fffffeL & l) != 0L)
+ jjCheckNAddTwoStates(2, 3);
+ break;
+ case 3:
+ if (curChar == 125 && kind > 10)
+ kind = 10;
+ break;
+ case 6:
+ if ((0x2ffffffe87fffffeL & l) == 0L)
+ break;
+ if (kind > 11)
+ kind = 11;
+ jjstateSet[jjnewStateCnt++] = 6;
+ break;
+ default : break;
}
- ++curPos;
- if ((i = jjnewStateCnt) == (startsAt = 8 - (jjnewStateCnt = startsAt)))
- return curPos;
- try {
- curChar = input_stream.readChar();
- } catch (java.io.IOException e) {
- return curPos;
+ } while(i != startsAt);
+ }
+ else
+ {
+ int i2 = (curChar & 0xff) >> 6;
+ long l2 = 1L << (curChar & 077);
+ do
+ {
+ switch(jjstateSet[--i])
+ {
+ default : break;
}
- }
- }
+ } while(i != startsAt);
+ }
+ if (kind != 0x7fffffff)
+ {
+ jjmatchedKind = kind;
+ jjmatchedPos = curPos;
+ kind = 0x7fffffff;
+ }
+ ++curPos;
+ if ((i = jjnewStateCnt) == (startsAt = 9 - (jjnewStateCnt = startsAt)))
+ return curPos;
+ try { curChar = input_stream.readChar(); }
+ catch(java.io.IOException e) { return curPos; }
+ }
+}
+static final int[] jjnextStates = {
+ 2, 3,
+};
- /** Reinitialise parser. */
- public void ReInit(SimpleCharStream stream) {
- jjmatchedPos = jjnewStateCnt = 0;
- curLexState = defaultLexState;
- input_stream = stream;
- ReInitRounds();
- }
+/** Token literal values. */
+public static final String[] jjstrLiteralImages = {
+"", "\50", "\54", "\51", "\40", "\117\125\124", null, null, null, null, null,
+null, null, };
- private void ReInitRounds() {
- int i;
- jjround = 0x80000001;
- for (i = 8; i-- > 0; )
- jjrounds[i] = 0x80000000;
- }
+/** Lexer state names. */
+public static final String[] lexStateNames = {
+ "DEFAULT",
+};
+protected SimpleCharStream input_stream;
+private final int[] jjrounds = new int[9];
+private final int[] jjstateSet = new int[18];
+protected char curChar;
+/** Constructor. */
+public SSPTParserTokenManager(SimpleCharStream stream){
+ if (SimpleCharStream.staticFlag)
+ throw new Error("ERROR: Cannot use a static CharStream class with a non-static lexical analyzer.");
+ input_stream = stream;
+}
- /** Reinitialise parser. */
- public void ReInit(SimpleCharStream stream, int lexState) {
- ReInit(stream);
- SwitchTo(lexState);
- }
+/** Constructor. */
+public SSPTParserTokenManager(SimpleCharStream stream, int lexState){
+ this(stream);
+ SwitchTo(lexState);
+}
- /** Switch to specified lex state. */
- public void SwitchTo(int lexState) {
- if (lexState >= 1 || lexState < 0)
- throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
- else
- curLexState = lexState;
- }
+/** Reinitialise parser. */
+public void ReInit(SimpleCharStream stream)
+{
+ jjmatchedPos = jjnewStateCnt = 0;
+ curLexState = defaultLexState;
+ input_stream = stream;
+ ReInitRounds();
+}
+private void ReInitRounds()
+{
+ int i;
+ jjround = 0x80000001;
+ for (i = 9; i-- > 0;)
+ jjrounds[i] = 0x80000000;
+}
- protected Token jjFillToken() {
- final Token t;
- final String curTokenImage;
- final int beginLine;
- final int endLine;
- final int beginColumn;
- final int endColumn;
- String im = jjstrLiteralImages[jjmatchedKind];
- curTokenImage = (im == null) ? input_stream.GetImage() : im;
- beginLine = input_stream.getBeginLine();
- beginColumn = input_stream.getBeginColumn();
- endLine = input_stream.getEndLine();
- endColumn = input_stream.getEndColumn();
- t = Token.newToken(jjmatchedKind, curTokenImage);
+/** Reinitialise parser. */
+public void ReInit(SimpleCharStream stream, int lexState)
+{
+ ReInit(stream);
+ SwitchTo(lexState);
+}
- t.beginLine = beginLine;
- t.endLine = endLine;
- t.beginColumn = beginColumn;
- t.endColumn = endColumn;
+/** Switch to specified lex state. */
+public void SwitchTo(int lexState)
+{
+ if (lexState >= 1 || lexState < 0)
+ throw new TokenMgrError("Error: Ignoring invalid lexical state : " + lexState + ". State unchanged.", TokenMgrError.INVALID_LEXICAL_STATE);
+ else
+ curLexState = lexState;
+}
- return t;
- }
+protected Token jjFillToken()
+{
+ final Token t;
+ final String curTokenImage;
+ final int beginLine;
+ final int endLine;
+ final int beginColumn;
+ final int endColumn;
+ String im = jjstrLiteralImages[jjmatchedKind];
+ curTokenImage = (im == null) ? input_stream.GetImage() : im;
+ beginLine = input_stream.getBeginLine();
+ beginColumn = input_stream.getBeginColumn();
+ endLine = input_stream.getEndLine();
+ endColumn = input_stream.getEndColumn();
+ t = Token.newToken(jjmatchedKind, curTokenImage);
- /** Get the next Token. */
- public Token getNextToken() {
- Token matchedToken;
- int curPos = 0;
+ t.beginLine = beginLine;
+ t.endLine = endLine;
+ t.beginColumn = beginColumn;
+ t.endColumn = endColumn;
- EOFLoop:
- for (; ; ) {
- try {
- curChar = input_stream.BeginToken();
- } catch (java.io.IOException e) {
- jjmatchedKind = 0;
- matchedToken = jjFillToken();
- return matchedToken;
- }
+ return t;
+}
- jjmatchedKind = 0x7fffffff;
- jjmatchedPos = 0;
- curPos = jjMoveStringLiteralDfa0_0();
- if (jjmatchedKind != 0x7fffffff) {
- if (jjmatchedPos + 1 < curPos)
- input_stream.backup(curPos - jjmatchedPos - 1);
- matchedToken = jjFillToken();
- return matchedToken;
- }
- int error_line = input_stream.getEndLine();
- int error_column = input_stream.getEndColumn();
- String error_after = null;
- boolean EOFSeen = false;
- try {
- input_stream.readChar();
- input_stream.backup(1);
- } catch (java.io.IOException e1) {
- EOFSeen = true;
- error_after = curPos <= 1 ? "" : input_stream.GetImage();
- if (curChar == '\n' || curChar == '\r') {
- error_line++;
- error_column = 0;
- } else
- error_column++;
- }
- if (!EOFSeen) {
- input_stream.backup(1);
- error_after = curPos <= 1 ? "" : input_stream.GetImage();
- }
- throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
- }
- }
+int curLexState = 0;
+int defaultLexState = 0;
+int jjnewStateCnt;
+int jjround;
+int jjmatchedPos;
+int jjmatchedKind;
+
+/** Get the next Token. */
+public Token getNextToken()
+{
+ Token matchedToken;
+ int curPos = 0;
- private void jjCheckNAdd(int state) {
- if (jjrounds[state] != jjround) {
- jjstateSet[jjnewStateCnt++] = state;
- jjrounds[state] = jjround;
- }
- }
+ EOFLoop :
+ for (;;)
+ {
+ try
+ {
+ curChar = input_stream.BeginToken();
+ }
+ catch(java.io.IOException e)
+ {
+ jjmatchedKind = 0;
+ matchedToken = jjFillToken();
+ return matchedToken;
+ }
- private void jjAddStates(int start, int end) {
- do {
- jjstateSet[jjnewStateCnt++] = jjnextStates[start];
- } while (start++ != end);
- }
+ jjmatchedKind = 0x7fffffff;
+ jjmatchedPos = 0;
+ curPos = jjMoveStringLiteralDfa0_0();
+ if (jjmatchedKind != 0x7fffffff)
+ {
+ if (jjmatchedPos + 1 < curPos)
+ input_stream.backup(curPos - jjmatchedPos - 1);
+ matchedToken = jjFillToken();
+ return matchedToken;
+ }
+ int error_line = input_stream.getEndLine();
+ int error_column = input_stream.getEndColumn();
+ String error_after = null;
+ boolean EOFSeen = false;
+ try { input_stream.readChar(); input_stream.backup(1); }
+ catch (java.io.IOException e1) {
+ EOFSeen = true;
+ error_after = curPos <= 1 ? "" : input_stream.GetImage();
+ if (curChar == '\n' || curChar == '\r') {
+ error_line++;
+ error_column = 0;
+ }
+ else
+ error_column++;
+ }
+ if (!EOFSeen) {
+ input_stream.backup(1);
+ error_after = curPos <= 1 ? "" : input_stream.GetImage();
+ }
+ throw new TokenMgrError(EOFSeen, curLexState, error_line, error_column, error_after, curChar, TokenMgrError.LEXICAL_ERROR);
+ }
+}
- private void jjCheckNAddTwoStates(int state1, int state2) {
- jjCheckNAdd(state1);
- jjCheckNAdd(state2);
- }
+private void jjCheckNAdd(int state)
+{
+ if (jjrounds[state] != jjround)
+ {
+ jjstateSet[jjnewStateCnt++] = state;
+ jjrounds[state] = jjround;
+ }
+}
+private void jjAddStates(int start, int end)
+{
+ do {
+ jjstateSet[jjnewStateCnt++] = jjnextStates[start];
+ } while (start++ != end);
+}
+private void jjCheckNAddTwoStates(int state1, int state2)
+{
+ jjCheckNAdd(state1);
+ jjCheckNAdd(state2);
+}
}
http://git-wip-us.apache.org/repos/asf/camel/blob/b3196ee5/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/grammar/sspt.jj
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/grammar/sspt.jj b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/grammar/sspt.jj
index 617d24a..ab483b5 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/grammar/sspt.jj
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/stored/template/grammar/sspt.jj
@@ -64,42 +64,41 @@ Object Parameter() :
InputParameter InputParameter() :
{
- String sqlTypeAsStr;
+ Token sqlTypeToken;
String name;
Token valueSrcToken;
}
{
- (sqlTypeAsStr = ParameterSqlType() " " valueSrcToken =
+ (sqlTypeToken = ParameterSqlType() " " valueSrcToken =
InputParameterSrc())
{
- int sqlType = ParseHelper.parseSqlType(sqlTypeAsStr);
- return new InputParameter(createNextParameterName(),sqlType,valueSrcToken,ParseHelper.sqlTypeToJavaType(sqlType,
- sqlTypeAsStr));
+ int sqlType = ParseHelper.parseSqlType(sqlTypeToken);
+ return new InputParameter(createNextParameterName(),sqlType,valueSrcToken);
}
}
OutParameter OutParameter() :
{
- String sqlType;
+ Token sqlTypeToken;
String name;
- String outHeader;
+ String outValueMapKey;
}
{
- ("OUT" " " sqlType = ParameterSqlType() " " outHeader =
+ ("OUT" " " sqlTypeToken = ParameterSqlType() " " outValueMapKey =
OutHeader())
{
- return new OutParameter(createNextParameterName(),ParseHelper.parseSqlType(sqlType),outHeader);
+ return new OutParameter(createNextParameterName(),ParseHelper.parseSqlType(sqlTypeToken),outValueMapKey);
}
}
-String ParameterSqlType():
+Token ParameterSqlType():
{
Token t;
}
{
- (t = <IDENTIFIER>)
+ (t = <NUMBER> | t = <IDENTIFIER>)
{
- return t.toString();
+ return t;
}
}
@@ -131,6 +130,11 @@ Token InputParameterSrc():
}
TOKEN: {
+ <NUMBER: (["0"-"9"])+>
+}
+
+
+TOKEN: {
<#DIGIT: (["0"-"9"])>
}
http://git-wip-us.apache.org/repos/asf/camel/blob/b3196ee5/components/camel-sql/src/test/java/org/apache/camel/component/sql/stored/ParserTest.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/test/java/org/apache/camel/component/sql/stored/ParserTest.java b/components/camel-sql/src/test/java/org/apache/camel/component/sql/stored/ParserTest.java
index ffd92fb..d9e8810 100644
--- a/components/camel-sql/src/test/java/org/apache/camel/component/sql/stored/ParserTest.java
+++ b/components/camel-sql/src/test/java/org/apache/camel/component/sql/stored/ParserTest.java
@@ -61,12 +61,12 @@ public class ParserTest extends CamelTestSupport {
InputParameter param3 = (InputParameter) template.getParameterList().get(2);
Assert.assertEquals("_2", param3.getName());
Assert.assertEquals(Types.BIGINT, param3.getSqlType());
- Assert.assertEquals(2L, param3.getValueExtractor().eval(exchange, null));
+ 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.getOutHeader());
+ Assert.assertEquals("header1", sptpOutputNode.getOutValueMapKey());
}
@Test(expected = ParseRuntimeException.class)
@@ -91,6 +91,19 @@ public class ParserTest extends CamelTestSupport {
}
@Test
+ public void vendorSpeficSqlType() {
+ Template template = parser.parseTemplate("ADDNUMBERS2(1342 ${${header.body}})");
+ assertEquals(1342, ((InputParameter) template.getParameterList().get(0)).getSqlType());
+ }
+
+ @Test
+ public void vendorSpeficSqlTypeOut() {
+ Template template = parser.parseTemplate("ADDNUMBERS2(OUT 1342 h1)");
+ assertEquals(1342, ((OutParameter) template.getParameterList().get(0)).getSqlType());
+ }
+
+
+ @Test
public void nableIssueSyntax() {
Map params = new HashMap<>();
params.put("P_STR_IN", "a");