@Override public Object visit(Function expression, Object data) { if (Boolean.TRUE.equals(super.visit(expression, data))) { return true; } else { return expression instanceof EnvFunction; } } };
@Override public Object visit(Or filter, Object data) { if (parentLogicOperator != null) return data; processFilter(filter); return super.visit(filter, data); }
@Override public Object visit(And filter, Object data) { if (parentLogicOperator != null) return data; processFilter(filter); return super.visit(filter, data); }
@Override public Object visit(BBOX filter, Object data) { final ReferencedEnvelope bbox = ReferencedEnvelope.reference(filter.getBounds()); if (this.bbox != null) { this.bbox = (ReferencedEnvelope) this.bbox.intersection(bbox); } else { this.bbox = bbox; } return super.visit(filter, data); } }
public Object visit(org.opengis.filter.expression.Function expression, Object data) { if (expression instanceof VolatileFunction) { usingVolatileFunctions = true; } if (expression instanceof FilterFunction_property) { boolean foundLiteral = false; // dynamic property usage if (expression.getParameters() != null && expression.getParameters().size() > 0) { org.opengis.filter.expression.Expression firstParam = expression.getParameters().get(0); FilterAttributeExtractor secondary = new FilterAttributeExtractor(); firstParam.accept(secondary, null); if (secondary.isConstantExpression()) { String name = firstParam.evaluate(null, String.class); if (name != null) { attributeNames.add(name); propertyNames.add(FF.property(name)); foundLiteral = true; } } } if (!foundLiteral) { usingDynamicProperties = true; } } return super.visit(expression, data); };
@Override public Object visit(Contains filter, Object data) { geometryFilterPresent = true; return super.visit(filter, data); }
@Override public Object visit(Within filter, Object data) { geometryFilterPresent = true; return super.visit(filter, data); } }
@Override public Object visit(BBOX filter, Object data) { geometryFilterPresent = true; return super.visit(filter, data); }
@Override public Object visit(Crosses filter, Object data) { geometryFilterPresent = true; return super.visit(filter, data); }
@Override public Object visit(DWithin filter, Object data) { geometryFilterPresent = true; return super.visit(filter, data); }
@Override public Object visit(Touches filter, Object data) { geometryFilterPresent = true; return super.visit(filter, data); }
@Override public Object visit(Beyond filter, Object data) { geometryFilterPresent = true; return super.visit(filter, data); }
@Override public Object visit(Equals filter, Object data) { geometryFilterPresent = true; return super.visit(filter, data); }
@Override public Object visit(Disjoint filter, Object data) { geometryFilterPresent = true; return super.visit(filter, data); }
@Override public Object visit(Intersects filter, Object data) { geometryFilterPresent = true; return super.visit(filter, data); }
@Override public Object visit(Multiply expression, Object data) { visitMathExpression(expression); return super.visit(expression, data); }
@Override public Object visit(Subtract expression, Object data) { visitMathExpression(expression); return super.visit(expression, data); }
public Object visit(Subtract expr, Object data) { traverse(expr); return super.visit(expr, data); } }
@Override public Object visit(Add expression, Object data) { visitMathExpression(expression); return super.visit(expression, data); }
@Override public Object visit(Intersects filter, Object data) { Envelope2D envelope = (Envelope2D) data; Geometry polygon= ((Geometry)((Literal)filter.getExpression2()).getValue()); org.opengis.geometry.Geometry polygon2 = JTSUtils.jtsToGo1(polygon, envelope.getCoordinateReferenceSystem()); envelope.setBounds(new Envelope2D(polygon2.getEnvelope())); return super.visit(filter, data); }