@Override public Object visit(final ASTCOMPARE node, final Object data) { if (node.jjtGetNumChildren() == 1) { return evalSingleTerm(node, data); } else { return evalCompare(node, data); } }
@SuppressWarnings({ "unchecked", "rawtypes", "checkstyle:methodname" }) private boolean _compare(final Compare comparison, final Comparable value1, final Comparable value2) { if (comparison.equals(Compare.MATCHES) || comparison.equals(Compare.LIKE)) { if (value2 != null) { String value = value2.toString(); if (comparison.equals(Compare.LIKE)) { value = sqlLiketoRegexExpression(value);
@Override public Object visit(final ASTCOMPARE node, final Object data) { Set<String> result = Sets.newHashSet(); if (node.jjtGetNumChildren() == 3) { final String value = evalString(node, data); if (value != null) { result = Sets.newHashSet(value); } } return result; }
@Override public String evalString(final SimpleNode node, final Object data) { final Object value1 = node.jjtGetChild(0).jjtAccept(this, data); if (!"dateCreated".equals(value1)) { return null; } final Compare comparison = (Compare) node.jjtGetChild(1).jjtAccept(this, data); final Object value2 = node.jjtGetChild(2).jjtAccept(this, data); return String.format("%s%s%s", value1, comparison.getExpression(), value2.toString()); } }
@Override public Object visit(final ASTBETWEEN node, final Object data) { final Object value = node.jjtGetChild(0).jjtAccept(this, data); final Object startValue = node.jjtGetChild(1).jjtAccept(this, data); final Object endValue = node.jjtGetChild(2).jjtAccept(this, data); final boolean compare1 = compare(Compare.GTE, value, startValue); final boolean compare2 = compare(Compare.LTE, value, endValue); final boolean result = compare1 && compare2; return node.not != result; }
private String getDateCreatedSqlCriteria(final String filterExpression) { final StringBuilder result = new StringBuilder(); Collection<String> values = com.google.common.collect.Lists.newArrayList(); if (!Strings.isNullOrEmpty(filterExpression)) { try { values = (Collection<String>) new PartitionParser(new StringReader(filterExpression)).filter() .jjtAccept(new PartitionParamParserEval(), null); } catch (Throwable ignored) { // } } for (String value : values) { if (result.length() != 0) { result.append(" and "); } result.append(value.replace("dateCreated", "to_seconds(p.date_created)")); } return result.toString(); }
public static void main(String args[]) throws ParseException { PartitionParser parser = new PartitionParser(new java.io.StringReader(args[0])); SimpleNode root = parser.filter(); root.dump(""); System.out .println(root.jjtAccept(new com.netflix.metacat.common.server.partition.visitor.PartitionParserEval(), null)); }
@SuppressWarnings({ "unchecked", "rawtypes", "checkstyle:methodname" }) private boolean _compare(final Compare comparison, final Comparable value1, final Comparable value2) { if (comparison.equals(Compare.MATCHES) || comparison.equals(Compare.LIKE)) { if (value2 != null) { String value = value2.toString(); if (comparison.equals(Compare.LIKE)) { value = sqlLiketoRegexExpression(value);
@Override public Object visit(final ASTCOMPARE node, final Object data) { if (node.jjtGetNumChildren() == 1) { return evalSingleTerm(node, data); } else { return evalCompare(node, data); } }
@Override public String evalString(final SimpleNode node, final Object data) { final Object value1 = node.jjtGetChild(0).jjtAccept(this, data); if (!"dateCreated".equals(value1)) { return null; } final Compare comparison = (Compare) node.jjtGetChild(1).jjtAccept(this, data); final Object value2 = node.jjtGetChild(2).jjtAccept(this, data); return String.format("%s%s%s", value1, comparison.getExpression(), value2.toString()); } }
@Override public Object visit(final ASTBETWEEN node, final Object data) { final Object value = node.jjtGetChild(0).jjtAccept(this, data); final Object startValue = node.jjtGetChild(1).jjtAccept(this, data); final Object endValue = node.jjtGetChild(2).jjtAccept(this, data); final boolean compare1 = compare(Compare.GTE, value, startValue); final boolean compare2 = compare(Compare.LTE, value, endValue); final boolean result = compare1 && compare2; return node.not != result; }
private String getDateCreatedSqlCriteria(final String filterExpression) { final StringBuilder result = new StringBuilder(); Collection<String> values = Lists.newArrayList(); if (!Strings.isNullOrEmpty(filterExpression)) { try { values = (Collection<String>) new PartitionParser( new StringReader(filterExpression)).filter().jjtAccept(new PartitionParamParserEval(), null ); } catch (Throwable ignored) { // } } for (String value : values) { if (result.length() != 0) { result.append(" and "); } result.append(value.replace("dateCreated", "p.CREATE_TIME")); } return result.toString(); }
@Override public Object visit(final ASTCOMPARE node, final Object data) { Set<String> result = Sets.newHashSet(); if (node.jjtGetNumChildren() == 3) { final String value = evalString(node, data); if (value != null) { result = Sets.newHashSet(value); } } return result; }
public static void main(String args[]) throws ParseException { PartitionParser parser = new PartitionParser(new java.io.StringReader(args[0])); SimpleNode root = parser.filter(); root.dump(""); System.out .println(root.jjtAccept(new com.netflix.metacat.common.server.partition.visitor.PartitionParserEval(), null)); }
@Override public Object visit(final ASTLIKE node, final Object data) { final Object value1 = node.jjtGetChild(0).jjtAccept(this, data); final Object value2 = node.jjtGetChild(1).jjtAccept(this, data); final boolean result = compare(Compare.LIKE, value1, value2); return node.not != result; }
@Override public Object visit(final ASTLIKE node, final Object data) { final Object value1 = node.jjtGetChild(0).jjtAccept(this, data); final Object value2 = node.jjtGetChild(1).jjtAccept(this, data); final boolean result = compare(Compare.LIKE, value1, value2); return node.not != result; }
/** * Compares. * @param node node in the tree * @param data data * @return comparison result */ public Boolean evalCompare(final SimpleNode node, final Object data) { final Object value1 = node.jjtGetChild(0).jjtAccept(this, data); final Compare comparison = (Compare) node.jjtGetChild(1).jjtAccept(this, data); final Object value2 = node.jjtGetChild(2).jjtAccept(this, data); return compare(comparison, value1, value2); }
/** * Compares. * @param node node in the tree * @param data data * @return comparison result */ public Boolean evalCompare(final SimpleNode node, final Object data) { final Object value1 = node.jjtGetChild(0).jjtAccept(this, data); final Compare comparison = (Compare) node.jjtGetChild(1).jjtAccept(this, data); final Object value2 = node.jjtGetChild(2).jjtAccept(this, data); return compare(comparison, value1, value2); }