use of com.abubusoft.kripton.processor.sqlite.grammars.jsql.JqlParser.Bind_dynamic_sqlContext in project kripton by xcesco.
the class TestJqlChecker method testOK.
/**
* <p>
* OK
* </p>
*
* @throws Throwable
*/
@Test
public void testOK() throws Throwable {
String sql = "SELECT id, action, number, countryCode, contactName, contactId FROM phone_number WHERE number = ${bean.number} and number like ${bean.number} || '%' and #{" + JQLDynamicStatementType.DYNAMIC_WHERE + "}";
log(sql);
JQL jql = new JQL();
jql.value = sql;
JQLChecker jsqChecker = JQLChecker.getInstance();
jsqChecker.analyze(dummyContext, jql, new JqlBaseListener() {
@Override
public void enterBind_parameter(Bind_parameterContext ctx) {
TestJqlChecker.this.log("xx parameter name %s", ctx.bind_parameter_name().getText());
}
@Override
public void enterBind_dynamic_sql(Bind_dynamic_sqlContext ctx) {
TestJqlChecker.this.log("xx dynamic %s", ctx.bind_parameter_name().getText());
}
@Override
public void enterColumn_name(Column_nameContext ctx) {
super.enterColumn_name(ctx);
log("column " + ctx.getText());
}
});
jsqChecker.extractPlaceHoldersAsList(new JQLContext() {
@Override
public String getContextDescription() {
return "test context";
}
}, jql.value);
log("replaced " + jsqChecker.replace(dummyContext, jql, new JQLReplacerListenerImpl(null) {
@Override
public String onDynamicSQL(JQLDynamicStatementType dynamicStatement) {
return String.format("\"+%s+\"", dynamicStatement);
}
@Override
public String onBindParameter(String bindParameterName) {
return "?";
}
@Override
public String onColumnFullyQualifiedName(String tableName, String columnName) {
// TODO Auto-generated method stub
return null;
}
}));
log("aa");
}
use of com.abubusoft.kripton.processor.sqlite.grammars.jsql.JqlParser.Bind_dynamic_sqlContext in project kripton by xcesco.
the class JQLChecker method extractPlaceHolders.
private <L extends Collection<JQLPlaceHolder>> L extractPlaceHolders(final JQLContext jqlContext, String jql, final L result) {
final One<Boolean> valid = new One<>();
valid.value0 = false;
analyzeInternal(jqlContext, jql, new JqlBaseListener() {
@Override
public void enterBind_parameter(Bind_parameterContext ctx) {
String value;
if (ctx.bind_parameter_name() != null) {
value = ctx.bind_parameter_name().getText();
} else {
value = ctx.getText();
}
result.add(new JQLPlaceHolder(JQLPlaceHolderType.PARAMETER, value));
}
@Override
public void enterBind_dynamic_sql(Bind_dynamic_sqlContext ctx) {
result.add(new JQLPlaceHolder(JQLPlaceHolderType.DYNAMIC_SQL, ctx.bind_parameter_name().getText()));
}
});
return result;
}
use of com.abubusoft.kripton.processor.sqlite.grammars.jsql.JqlParser.Bind_dynamic_sqlContext in project kripton by xcesco.
the class JQLChecker method extractPlaceHoldersFromVariableStatement.
private <L extends Collection<JQLPlaceHolder>> L extractPlaceHoldersFromVariableStatement(final JQLContext jqlContext, String jql, final L result) {
final One<Boolean> valid = new One<>();
if (!StringUtils.hasText(jql))
return result;
valid.value0 = false;
analyzeVariableStatementInternal(jqlContext, jql, new JqlBaseListener() {
@Override
public void enterBind_parameter(Bind_parameterContext ctx) {
String parameter;
if (ctx.bind_parameter_name() != null) {
parameter = ctx.bind_parameter_name().getText();
} else {
parameter = ctx.getText();
}
result.add(new JQLPlaceHolder(JQLPlaceHolderType.PARAMETER, parameter));
}
@Override
public void enterBind_dynamic_sql(Bind_dynamic_sqlContext ctx) {
result.add(new JQLPlaceHolder(JQLPlaceHolderType.DYNAMIC_SQL, ctx.bind_parameter_name().getText()));
}
});
return result;
}
Aggregations