@Override protected void visitBinaryComparisonOperator(BinaryComparisonOperator filter) { Expression expression1 = filter.getExpression1(); Expression expression2 = filter.getExpression2(); if ((expression1 instanceof JsonSelectFunction || expression1 instanceof JsonSelectAllFunction) && expression2 instanceof Literal) { preStack.push(filter); } else if ((expression2 instanceof JsonSelectFunction || expression2 instanceof JsonSelectAllFunction) && expression1 instanceof Literal) { preStack.push(filter); } }
public Object getProperty(Object object, QName name) throws Exception { if (OGC.expression.equals(name)) { BinaryComparisonOperator op = (BinaryComparisonOperator) object; return new Expression[] {op.getExpression1(), op.getExpression2()}; } // filter 1.1 only if ("matchCase".equals(name.getLocalPart())) { BinaryComparisonOperator op = (BinaryComparisonOperator) object; return Boolean.valueOf(op.isMatchingCase()); } return null; } }
@Override public Object getProperty(Object object, QName name) throws Exception { BinaryComparisonOperator op = (BinaryComparisonOperator) object; if ("matchAction".equals(name.getLocalPart())) { return op.getMatchAction().name(); } if ("matchCase".equals(name.getLocalPart())) { return op.isMatchingCase(); } if (FES.expression.equals(name)) { return new Expression[] {op.getExpression1(), op.getExpression2()}; } return null; } }
@Override public Filter replaceExpressions( BinaryComparisonOperator filter, Expression expression1, Expression expression2) { try { return (Filter) method.invoke( ff, expression1, expression2, filter.isMatchingCase(), filter.getMatchAction()); } catch (Exception e) { throw new RuntimeException(e); } } }
@Override public Expression getExpression2(BinaryComparisonOperator filter) { return filter.getExpression2(); }
@Override public Expression getExpression1(BinaryComparisonOperator filter) { return filter.getExpression1(); }
Object cloneFilter( BinaryComparisonOperator bso, Object extraData, Expression ex1, Expression ex2) { return ff.equal(ex1, ex2, bso.isMatchingCase()); } }.transform(filter, extraData);
MultiValuedFilter.MatchAction matchAction = filter.getMatchAction(); if ((matchAction == MultiValuedFilter.MatchAction.ANY || matchAction == MultiValuedFilter.MatchAction.ONE)
private boolean isNodataFilter(Filter filter) { if (filter instanceof BinaryComparisonOperator) { BinaryComparisonOperator bcOp = (BinaryComparisonOperator) filter; Literal literal = (Literal) bcOp.getExpression2(); return literal.toString().equalsIgnoreCase("NoData"); } return false; } }
Object cloneFilter( BinaryComparisonOperator bso, Object extraData, Expression ex1, Expression ex2) { return ff.notEqual(ex1, ex2, bso.isMatchingCase()); } }.transform(filter, extraData);
/** * Visits filter.getExpression1(), and filter.getExpression2() if an expression visitor was set. */ protected Object visit(BinaryComparisonOperator filter, Object data) { if (expressionVisitor != null) { if (filter.getExpression1() != null) { filter.getExpression1().accept(expressionVisitor, data); } if (filter.getExpression2() != null) { filter.getExpression2().accept(expressionVisitor, data); } } return filter; }
LOGGER.finer("exporting SQL ComparisonFilter"); Expression left = filter.getExpression1(); Expression right = filter.getExpression2(); if (!filter.isMatchingCase()) {
&& (!(op instanceof PropertyIsEqualTo) || (op.isMatchingCase()))) { addRange(rangeMap, er.expression, new MultiRange(er.range)); } else {
private void visitBinaryComparisonOperator(BinaryComparisonOperator filter) { visitBinaryOperator(filter, filter.getExpression1(), filter.getExpression2()); }
public Object getProperty(Object object, QName name) throws Exception { if (OGC.expression.equals(name)) { BinaryComparisonOperator op = (BinaryComparisonOperator) object; return new Expression[] { op.getExpression1(), op.getExpression2() }; } //filter 1.1 only if ("matchCase".equals(name.getLocalPart())) { BinaryComparisonOperator op = (BinaryComparisonOperator) object; return Boolean.valueOf(op.isMatchingCase()); } return null; } }
Object cloneFilter(BinaryComparisonOperator bso, Object extraData, Expression ex1, Expression ex2) { return ff.equal(ex1, ex2, bso.isMatchingCase()); } }.transform(filter, extraData);
private Object guardAgainstNulls(BinaryComparisonOperator clone) { Filter result = guardAgainstNulls(clone, clone.getExpression1()); result = guardAgainstNulls(result, clone.getExpression2()); return result; }
public Object getProperty(Object object, QName name) throws Exception { if (OGC.expression.equals(name)) { BinaryComparisonOperator op = (BinaryComparisonOperator) object; return new Expression[] { op.getExpression1(), op.getExpression2() }; } //filter 1.1 only if ("matchCase".equals(name.getLocalPart())) { BinaryComparisonOperator op = (BinaryComparisonOperator) object; return Boolean.valueOf(op.isMatchingCase()); } return null; } }
Object cloneFilter(BinaryComparisonOperator bso, Object extraData, Expression ex1, Expression ex2) { return ff.notEqual(ex1, ex2, bso.isMatchingCase()); } }.transform(filter, extraData);
private Object simplifyBinaryComparisonOperator(BinaryComparisonOperator clone) { if (isConstant(clone.getExpression1()) && isConstant(clone.getExpression2())) { return staticFilterEvaluate(clone); } else { return clone; } }