void visitDistanceSpatialOperator( DistanceBufferOperator filter, PropertyName property, Literal geometry, boolean swapped, Object extraData) throws IOException { if ((filter instanceof DWithin && !swapped) || (filter instanceof Beyond && swapped)) { out.write("ST_DWithin("); property.accept(delegate, extraData); out.write(","); geometry.accept(delegate, extraData); out.write(","); out.write(toNativeUnits(filter)); out.write(")"); } if ((filter instanceof DWithin && swapped) || (filter instanceof Beyond && !swapped)) { out.write("ST_Distance("); property.accept(delegate, extraData); out.write(","); geometry.accept(delegate, extraData); out.write(") > "); out.write(toNativeUnits(filter)); } }
public static Object buildBinaryTemporalOperator( final String temporalOperator, BinaryTemporalOperator filter, Object extraData) { LOGGER.finer("exporting " + temporalOperator); StringBuilder output = asStringBuilder(extraData); PropertyName propertyName = (PropertyName) filter.getExpression1(); ExpressionToText visitor = new ExpressionToText(); propertyName.accept(visitor, output); output.append(" ").append(temporalOperator).append(" "); Literal expr2 = (Literal) filter.getExpression2(); expr2.accept(visitor, output); return output; }
void visitDistanceSpatialOperator( DistanceBufferOperator filter, PropertyName property, Literal geometry, boolean swapped, Object extraData) throws IOException { if ((filter instanceof DWithin && !swapped) || (filter instanceof Beyond && swapped)) { encodeIndexPredicate(property, geometry); property.accept(this, extraData); out.write(".ST_DWithin(new ST_Geometry("); geometry.accept(this, extraData); out.write("),"); out.write(Double.toString(filter.getDistance())); out.write(")"); } if ((filter instanceof DWithin && swapped) || (filter instanceof Beyond && !swapped)) { encodeIndexPredicate(property, geometry); property.accept(this, extraData); out.write(".ST_Distance(SYSSPATIAL.ST_Geometry("); geometry.accept(this, extraData); out.write(")) > "); out.write(Double.toString(filter.getDistance())); } }
public static Object buildDuring(During during, Object extraData) { LOGGER.finer("exporting DURING"); StringBuilder output = asStringBuilder(extraData); PropertyName propertyName = (PropertyName) during.getExpression1(); ExpressionToText visitor = new ExpressionToText(); propertyName.accept(visitor, output); output.append(" DURING "); Literal expr2 = (Literal) during.getExpression2(); expr2.accept(visitor, output); return output; } }
void visitEnd(Period p, Object extraData) { filterFactory.literal(p.getEnding().getPosition().getDate()).accept(this, extraData); }
Object visitDistanceSpatialOperator( DistanceBufferOperator filter, PropertyName property, Literal geometry, boolean swapped, Object extraData) { try { String comparisonOperator = ") < "; if ((filter instanceof DWithin && swapped) || (filter instanceof Beyond && !swapped)) { comparisonOperator = ") > "; } out.write("db2gse.ST_Distance("); property.accept(this, extraData); out.write(","); geometry.accept(this, extraData); String distanceUnits = filter.getDistanceUnits(); if (isValidUnit(distanceUnits)) { out.write(",'METER'"); } out.write(comparisonOperator); out.write(toMeters(filter.getDistance(), filter.getDistanceUnits())); if (!isValidUnit(distanceUnits)) { addSelectivity(); // Selectivity clause can not be used with distance units } return extraData; } catch (IOException ex) { throw new RuntimeException(ex); } }
void visitBegin(Period p, Object extraData) { filterFactory.literal(p.getBeginning().getPosition().getDate()).accept(this, extraData); }
geometry.accept(delegate, extraData);
Object visitDistanceSpatialOperator(DistanceBufferOperator filter, PropertyName property, Literal geometry, boolean swapped, Object extraData) { try { if ((filter instanceof DWithin && !swapped) || (filter instanceof Beyond && swapped)) { out.write("db2gse.ST_Distance("); property.accept(this, extraData); out.write(","); geometry.accept(this, extraData); out.write(") < "); out.write(Double.toString(filter.getDistance())); } if ((filter instanceof DWithin && swapped) || (filter instanceof Beyond && !swapped)) { out.write("db2gse.ST_Distance("); property.accept(this, extraData); out.write(","); geometry.accept(this, extraData); out.write(") > "); out.write(Double.toString(filter.getDistance())); } return extraData; } catch (IOException ex) { throw new RuntimeException(ex); } }
public static Object buildBinaryTemporalOperator(final String temporalOperator, BinaryTemporalOperator filter, Object extraData) { LOGGER.finer("exporting " + temporalOperator); StringBuilder output = asStringBuilder(extraData); PropertyName propertyName = (PropertyName) filter.getExpression1(); ExpressionToText visitor = new ExpressionToText(); propertyName.accept(visitor, output); output.append(" ").append(temporalOperator).append(" "); Literal expr2 = (Literal) filter.getExpression2(); expr2.accept(visitor, output); return output; }
void visitDistanceSpatialOperator(DistanceBufferOperator filter, PropertyName property, Literal geometry, boolean swapped, Object extraData) throws IOException { if ((filter instanceof DWithin && !swapped) || (filter instanceof Beyond && swapped)) { out.write("ST_DWithin("); property.accept(delegate, extraData); out.write(","); geometry.accept(delegate, extraData); out.write(","); out.write(toMeters(filter.getDistance(), filter.getDistanceUnits())); out.write(")"); } if ((filter instanceof DWithin && swapped) || (filter instanceof Beyond && !swapped)) { out.write("ST_Distance("); property.accept(delegate, extraData); out.write(","); geometry.accept(delegate, extraData); out.write(") > "); out.write(Double.toString(filter.getDistance())); } }
public static Object buildDuring(During during, Object extraData) { LOGGER.finer("exporting DURING" ); StringBuilder output = asStringBuilder(extraData); PropertyName propertyName = (PropertyName) during.getExpression1(); ExpressionToText visitor = new ExpressionToText(); propertyName.accept(visitor, output); output.append(" DURING "); Literal expr2 = (Literal) during.getExpression2(); expr2.accept(visitor, output); return output; }
protected void visitDistanceSpatialOperator(DistanceBufferOperator filter, PropertyName property, Literal geometry, boolean swapped, Object extraData) { property.accept(delegate, extraData); key = (String) delegate.field; geometry.accept(delegate, extraData); final Geometry geo = delegate.currentGeometry; lat = geo.getCentroid().getY(); lon = geo.getCentroid().getX(); final double inputDistance = filter.getDistance(); final String inputUnits = filter.getDistanceUnits(); distance = Double.valueOf(toMeters(inputDistance, inputUnits)); delegate.queryBuilder = ImmutableMap.of("bool", ImmutableMap.of("must", MATCH_ALL, "filter", ImmutableMap.of("geo_distance", ImmutableMap.of("distance", distance+"m", key, ImmutableList.of(lon,lat))))); if ((filter instanceof DWithin && swapped) || (filter instanceof Beyond && !swapped)) { delegate.queryBuilder = ImmutableMap.of("bool", ImmutableMap.of("must_not", delegate.queryBuilder)); } }
geometry.accept(delegate, extraData);
void visitBegin(Period p, Object extraData) { filterFactory.literal(p.getBeginning().getPosition().getDate()).accept(this, extraData); }
void visitEnd(Period p, Object extraData) { filterFactory.literal(p.getEnding().getPosition().getDate()).accept(this, extraData); }
void visitEnd(Period p, Object extraData) { filterFactory.literal(p.getEnding().getPosition().getDate()).accept(this, extraData); }
void visitBegin(Period p, Object extraData) { filterFactory.literal(p.getBeginning().getPosition().getDate()).accept(this, extraData); }