public Object visit(DWithin filter, Object extraData) { Expression geometry1 = visit(filter.getExpression1(), extraData); Expression geometry2 = visit(filter.getExpression2(), extraData); double distance = filter.getDistance(); String units = filter.getDistanceUnits(); return getFactory(extraData) .dwithin(geometry1, geometry2, distance, units, filter.getMatchAction()); }
@Override public Filter replaceExpressions( DWithin filter, Expression expression1, Expression expression2) { return ff.dwithin( expression1, expression2, filter.getDistance(), filter.getDistanceUnits(), filter.getMatchAction()); } });
Object cloneFilter( BinarySpatialOperator bso, Object extraData, Expression ex1, Expression ex2) { DWithin filter = (DWithin) bso; return ff.dwithin(ex1, ex2, filter.getDistance(), filter.getDistanceUnits()); } }.transform(filter, extraData);
if (filter.getExpression1() instanceof PropertyName && filter.getExpression2() instanceof Literal) { geometry = (Literal) filter.getExpression2(); if (filter.getExpression2() instanceof PropertyName && filter.getExpression1() instanceof Literal) { geometry = (Literal) filter.getExpression2(); env.expandBy(filter.getDistance());
public Object visit(DWithin filter, Object data) { filter.getExpression1().accept(this, data); if (found) return found; filter.getExpression2().accept(this, data); return found; }
@Override public Expression getExpression1(DWithin filter) { return filter.getExpression1(); }
@Override public Expression getExpression2(DWithin filter) { return filter.getExpression2(); }
public Object visit(DWithin filter, Object extraData) { double distance = filter.getDistance(); if(filter.getExpression1() instanceof Literal) { Literal transformed = bufferTransformGeometry((Literal) filter.getExpression1(), distance, extraData); return getFactory(extraData).intersects(transformed, filter.getExpression2()); } else if(filter.getExpression2() instanceof Literal) { Literal transformed = bufferTransformGeometry((Literal) filter.getExpression2(), distance, extraData); return getFactory(extraData).intersects(filter.getExpression1(), transformed); } else { LOGGER.log(Level.WARNING, "Could not transform this filter because " + "it does not use a geometry literal: {0}.\n" + "The resulting of filtering will be most likely wrong", new Object[] {filter}); return filter; } }
@Override public Object visit(DWithin filter, Object data) { data = geom(filter.getExpression1(), data); data = geom(filter.getExpression2(), data); return data; }
public Object visit(DWithin filter, Object arg1) { Expression[][] exps = visitBinarySpatialOp(filter); List combinedFilters = new ArrayList(exps.length); for (int i = 0; i < exps.length; i++) { Expression left = exps[i][0]; Expression right = exps[i][1]; Filter unrolled = ff.dwithin( left, right, filter.getDistance(), filter.getDistanceUnits(), filter.getMatchAction()); combinedFilters.add(unrolled); } Filter unrolled = combineOred(combinedFilters); return unrolled; }
Object cloneFilter(BinarySpatialOperator bso, Object extraData, Expression ex1, Expression ex2) { DWithin filter = (DWithin) bso; return ff.dwithin(ex1, ex2, filter.getDistance(), filter.getDistanceUnits()); } }.transform(filter, extraData);
public Object visit(DWithin filter, Object extraData) { checkLeftExpressionIsProperty(filter.getExpression1()); return FilterToTextUtil.buildDWithin(filter, extraData); }
public static Object buildDWithin(DWithin filter, Object extraData, ExpressionToText visitor) { LOGGER.finer("exporting DWITHIN"); StringBuilder output = asStringBuilder(extraData); output.append("DWITHIN("); filter.getExpression1().accept(visitor, output); output.append(", "); filter.getExpression2().accept(visitor, output); output.append(", "); output.append(filter.getDistance()); output.append(", "); output.append(filter.getDistanceUnits()); output.append(")"); return output; }
@Override public Object visit(DWithin filter, Object extraData) { double distance = filter.getDistance(); if(filter.getExpression1() instanceof Literal) { Literal transformed = bufferTransformGeometry((Literal) filter.getExpression1(), distance, extraData); return getFactory(extraData).intersects(transformed, filter.getExpression2()); } else if(filter.getExpression2() instanceof Literal) { Literal transformed = bufferTransformGeometry((Literal) filter.getExpression2(), distance, extraData); return getFactory(extraData).intersects(filter.getExpression1(), transformed); } else { LOGGER.log(Level.WARNING, "Could not transform this filter because " + "it does not use a geometry literal: {0}.\n" + "The resulting of filtering will be most likely wrong", new Object[] {filter}); return filter; } }
public Object visit(DWithin filter, Object data) { data = filter.getExpression1().accept(this, data); data = filter.getExpression2().accept(this, data); return data; }
public Object visit(DWithin filter, Object arg1) { Expression[][] exps = visitBinarySpatialOp(filter); List combinedFilters = new ArrayList(exps.length); for (int i = 0; i < exps.length; i++) { Expression left = exps[i][0]; Expression right = exps[i][1]; Filter unrolled = ff.dwithin(left, right, filter.getDistance(), filter .getDistanceUnits(), filter.getMatchAction()); combinedFilters.add(unrolled); } Filter unrolled = combineOred(combinedFilters); return unrolled; }
@Override public Filter[] visit(DWithin filter, Object extraData) { return boundedOp(filter, (g1, g2) -> ff.dwithin(g1, g2, filter.getDistance(), filter.getDistanceUnits()), false); }
public Object visit(DWithin filter, Object extraData) { checkLeftExpressionIsProperty(filter.getExpression1()); return FilterToTextUtil.buildDWithin(filter, extraData); } public Object visit(Equals filter, Object extraData) {
public Object visit(DWithin filter, Object extraData) { Expression left = filter.getExpression1(); Expression right = filter.getExpression2(); final String type = "DWithin"; start(type); left.accept(this, extraData); right.accept(this, extraData); element("Distance", String.valueOf(filter.getDistance())); element("DistanceUnits", String.valueOf(filter.getDistanceUnits())); end(type); return extraData; }
if(filter.getExpression1() instanceof PropertyName && filter.getExpression2() instanceof Literal) { geometry = (Literal) filter.getExpression2(); } if(filter.getExpression2() instanceof PropertyName && filter.getExpression1() instanceof Literal) { geometry = (Literal) filter.getExpression2(); env.expandBy(filter.getDistance());