package com.revolsys.record.query.functions; import com.revolsys.geometry.model.BoundingBox; import com.revolsys.geometry.model.Geometry; import com.revolsys.record.query.Column; import com.revolsys.record.query.QueryValue; import com.revolsys.record.query.Value; import com.revolsys.record.schema.FieldDefinition; import com.revolsys.record.schema.RecordDefinition; public class F { public static WithinDistance dWithin(final FieldDefinition fieldDefinition, final Geometry geometry, final double distance) { final Column column = new Column(fieldDefinition); final Value geometryValue = new Value(fieldDefinition, geometry); final Value distanceValue = new Value(distance); return new WithinDistance(column, geometryValue, distanceValue); } public static WithinDistance dWithin(final String name, final Geometry geometry, double distance) { if (distance < 0) { distance = 0; } final Column column = new Column(name); final Value geometryValue = new Value(geometry); final Value distanceValue = new Value(distance); return new WithinDistance(column, geometryValue, distanceValue); } public static EnvelopeIntersects envelopeIntersects(final FieldDefinition attribute, final BoundingBox boundingBox) { if (attribute == null) { return null; } else { final Column column = new Column(attribute); final Value value = new Value(attribute, boundingBox); return new EnvelopeIntersects(column, value); } } public static EnvelopeIntersects envelopeIntersects(final FieldDefinition attribute, final Geometry geometry) { return new EnvelopeIntersects(new Column(attribute), new Value(attribute, geometry.getBoundingBox())); } public static EnvelopeIntersects envelopeIntersects(final RecordDefinition recordDefinition, final BoundingBox boundingBox) { final FieldDefinition attribute = recordDefinition.getGeometryField(); return envelopeIntersects(attribute, boundingBox); } public static EnvelopeIntersects envelopeIntersects(final String name, final BoundingBox boundingBox) { return new EnvelopeIntersects(new Column(name), new Value(boundingBox)); } public static Lower lower(final QueryValue value) { return new Lower(value); } public static RegexpReplace regexpReplace(final QueryValue value, final String pattern, final String replace) { return new RegexpReplace(value, pattern, replace); } public static RegexpReplace regexpReplace(final QueryValue value, final String pattern, final String replace, final String flags) { return new RegexpReplace(value, pattern, replace, flags); } public static Upper upper(final QueryValue value) { return new Upper(value); } public static Upper upper(final String name) { return upper(new Column(name)); } }