LingualQueryCreatorTest.java 文件源码

java
阅读 21 收藏 0 点赞 0 评论 0

项目:Hydrograph 作者:
@Test
public void itShouldGenerateLingualQueryForBetweenClauseAndTimestampDataType() throws ParseException {
    String dateInString1 = "1999-12-31 18:30:00";
    String dateInString2 = "2000-01-11 18:30:00";
    remoteFilterJson.setCondition("f2 between '"+dateInString1+"' AND '"+dateInString2+"'");
    String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
    SimpleDateFormat formatter = new SimpleDateFormat(DATE_FORMAT);
    formatter.setTimeZone(TimeZone.getDefault());
    Date date1 = formatter.parse(dateInString1);
    Date date2 = formatter.parse(dateInString2);
    formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
    dateInString1 = formatter.format(date1);
    dateInString2 = formatter.format(date2);

    ANTLRInputStream stream = new ANTLRInputStream(remoteFilterJson.getCondition());
    QueryParserLexer lexer = new QueryParserLexer(stream);
    CommonTokenStream tokenStream = new CommonTokenStream(lexer);
    QueryParserParser parser = new QueryParserParser(tokenStream);
    parser.removeErrorListeners();
    LingualQueryCreator customVisitor = new LingualQueryCreator(remoteFilterJson.getSchema());
    String lingualExpression = customVisitor.visit(parser.eval());
    Assert.assertEquals("\"f2\" between timestamp '"+dateInString1+"' AND  timestamp '"+dateInString2+"'", lingualExpression);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号