From f7dc65a124f3e85ef6148b014f457d7f9899aed1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Sun, 15 Mar 2015 00:46:57 +0200 Subject: [PATCH] Move expression creation to central factory classes --- .../com/querydsl/spatial/CurveExpression.java | 4 +- .../spatial/GeometryCollectionExpression.java | 2 +- .../querydsl/spatial/GeometryExpression.java | 18 ++--- .../querydsl/spatial/GeometryExpressions.java | 81 ++++++++++++++++--- .../querydsl/spatial/GeometryOperation.java | 12 --- .../spatial/LineStringExpression.java | 2 +- .../querydsl/spatial/LineStringOperation.java | 12 --- .../spatial/MultiSurfaceExpression.java | 4 +- .../com/querydsl/spatial/PointOperation.java | 12 --- .../querydsl/spatial/PolygonExpression.java | 4 +- .../querydsl/spatial/PolygonOperation.java | 12 --- .../spatial/PolyhedralSurfaceExpression.java | 3 +- .../querydsl/spatial/SurfaceExpression.java | 4 +- .../spatial/jts/JTSCurveExpression.java | 4 +- .../jts/JTSGeometryCollectionExpression.java | 2 +- .../spatial/jts/JTSGeometryExpression.java | 18 ++--- .../spatial/jts/JTSGeometryExpressions.java | 75 ++++++++++++++--- .../spatial/jts/JTSGeometryOperation.java | 12 --- .../spatial/jts/JTSLineStringExpression.java | 2 +- .../spatial/jts/JTSLineStringOperation.java | 12 --- .../jts/JTSMultiSurfaceExpression.java | 4 +- .../spatial/jts/JTSPointOperation.java | 12 --- .../spatial/jts/JTSPolygonExpression.java | 4 +- .../spatial/jts/JTSPolygonOperation.java | 12 --- .../spatial/jts/JTSSurfaceExpression.java | 4 +- 25 files changed, 174 insertions(+), 157 deletions(-) diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/CurveExpression.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/CurveExpression.java index eab3cf92d..125daa43c 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/CurveExpression.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/CurveExpression.java @@ -68,7 +68,7 @@ public abstract class CurveExpression extends GeometryExpres */ public PointExpression startPoint() { if (startPoint == null) { - startPoint = PointOperation.create(Point.class, SpatialOps.START_POINT, mixin); + startPoint = GeometryExpressions.pointOperation(SpatialOps.START_POINT, mixin); } return startPoint; } @@ -80,7 +80,7 @@ public abstract class CurveExpression extends GeometryExpres */ public PointExpression endPoint() { if (endPoint == null) { - endPoint = PointOperation.create(Point.class, SpatialOps.END_POINT, mixin); + endPoint = GeometryExpressions.pointOperation(SpatialOps.END_POINT, mixin); } return endPoint; } diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/GeometryCollectionExpression.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/GeometryCollectionExpression.java index db015b9d1..71b511156 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/GeometryCollectionExpression.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/GeometryCollectionExpression.java @@ -60,7 +60,7 @@ public abstract class GeometryCollectionExpression * @return */ public GeometryExpression geometryN(Integer n) { - return GeometryOperation.create(Geometry.class, SpatialOps.GEOMETRYN, mixin, ConstantImpl.create(n)); + return GeometryExpressions.geometryOperation(SpatialOps.GEOMETRYN, mixin, ConstantImpl.create(n)); } } diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/GeometryExpression.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/GeometryExpression.java index b471a97d0..215cd38c2 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/GeometryExpression.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/GeometryExpression.java @@ -104,7 +104,7 @@ public abstract class GeometryExpression extends SimpleExpre */ public GeometryExpression envelope() { if (envelope == null) { - envelope = GeometryOperation.create(Geometry.class, SpatialOps.ENVELOPE, mixin); + envelope = GeometryExpressions.geometryOperation(SpatialOps.ENVELOPE, mixin); } return envelope; } @@ -168,7 +168,7 @@ public abstract class GeometryExpression extends SimpleExpre */ public GeometryExpression boundary() { if (boundary == null) { - boundary = GeometryOperation.create(Geometry.class, SpatialOps.BOUNDARY, mixin); + boundary = GeometryExpressions.geometryOperation(SpatialOps.BOUNDARY, mixin); } return boundary; } @@ -408,7 +408,7 @@ public abstract class GeometryExpression extends SimpleExpre * @return */ public GeometryExpression buffer(double distance) { - return GeometryOperation.create(Geometry.class, SpatialOps.BUFFER, mixin, ConstantImpl.create(distance)); + return GeometryExpressions.geometryOperation(SpatialOps.BUFFER, mixin, ConstantImpl.create(distance)); } /** @@ -420,7 +420,7 @@ public abstract class GeometryExpression extends SimpleExpre */ public GeometryExpression convexHull() { if (convexHull == null) { - convexHull = GeometryOperation.create(Geometry.class, SpatialOps.CONVEXHULL, mixin); + convexHull = GeometryExpressions.geometryOperation(SpatialOps.CONVEXHULL, mixin); } return convexHull; } @@ -444,7 +444,7 @@ public abstract class GeometryExpression extends SimpleExpre * @return */ public GeometryExpression intersection(Expression geometry) { - return GeometryOperation.create(Geometry.class, SpatialOps.INTERSECTION, mixin, geometry); + return GeometryExpressions.geometryOperation(SpatialOps.INTERSECTION, mixin, geometry); } /** @@ -466,7 +466,7 @@ public abstract class GeometryExpression extends SimpleExpre * @return */ public GeometryExpression union(Expression geometry) { - return GeometryOperation.create(Geometry.class, SpatialOps.UNION, mixin, geometry); + return GeometryExpressions.geometryOperation(SpatialOps.UNION, mixin, geometry); } /** @@ -488,7 +488,7 @@ public abstract class GeometryExpression extends SimpleExpre * @return */ public GeometryExpression difference(Expression geometry) { - return GeometryOperation.create(Geometry.class, SpatialOps.DIFFERENCE, mixin, geometry); + return GeometryExpressions.geometryOperation(SpatialOps.DIFFERENCE, mixin, geometry); } /** @@ -510,11 +510,11 @@ public abstract class GeometryExpression extends SimpleExpre * @return */ public GeometryExpression symDifference(Expression geometry) { - return GeometryOperation.create(Geometry.class, SpatialOps.SYMDIFFERENCE, mixin, geometry); + return GeometryExpressions.geometryOperation(SpatialOps.SYMDIFFERENCE, mixin, geometry); } public GeometryExpression transform(int srid) { - return GeometryOperation.create(Geometry.class, SpatialOps.TRANSFORM, mixin, ConstantImpl.create(srid)); + return GeometryExpressions.geometryOperation(SpatialOps.TRANSFORM, mixin, ConstantImpl.create(srid)); } } diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/GeometryExpressions.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/GeometryExpressions.java index 1406307ea..f4400dfad 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/GeometryExpressions.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/GeometryExpressions.java @@ -1,10 +1,14 @@ package com.querydsl.spatial; +import org.geolatte.geom.*; + import com.querydsl.core.types.ConstantImpl; import com.querydsl.core.types.Expression; -import com.querydsl.core.types.dsl.*; -import org.geolatte.geom.Geometry; -import org.geolatte.geom.GeometryCollection; +import com.querydsl.core.types.Operator; +import com.querydsl.core.types.dsl.BooleanExpression; +import com.querydsl.core.types.dsl.Expressions; +import com.querydsl.core.types.dsl.NumberExpression; +import com.querydsl.core.types.dsl.StringExpression; /** * GeometryExpressions contains static functions for GEO operations @@ -28,7 +32,7 @@ public final class GeometryExpressions { * @return */ public static GeometryExpression fromText(String text) { - return GeometryOperation.create(Geometry.class, SpatialOps.GEOM_FROM_TEXT, ConstantImpl.create(text)); + return geometryOperation(SpatialOps.GEOM_FROM_TEXT, ConstantImpl.create(text)); } /** @@ -38,7 +42,7 @@ public final class GeometryExpressions { * @return */ public static GeometryExpression fromText(Expression text) { - return GeometryOperation.create(Geometry.class, SpatialOps.GEOM_FROM_TEXT, text); + return geometryOperation(SpatialOps.GEOM_FROM_TEXT, text); } /** @@ -50,7 +54,7 @@ public final class GeometryExpressions { * @return */ public static GeometryExpression setSRID(Expression expr, int srid) { - return (GeometryExpression)GeometryOperation.create(expr.getType(), SpatialOps.SET_SRID, + return (GeometryExpression)geometryOperation(expr.getType(), SpatialOps.SET_SRID, expr, ConstantImpl.create(srid)); } @@ -129,7 +133,7 @@ public final class GeometryExpressions { * @return */ public static GeometryExpression extent(Expression collection) { - return GeometryOperation.create(Geometry.class, SpatialOps.EXTENT, collection); + return geometryOperation(SpatialOps.EXTENT, collection); } /** @@ -139,7 +143,7 @@ public final class GeometryExpressions { * @return */ public static GeometryExpression collect(Expression collection) { - return GeometryOperation.create(Geometry.class, SpatialOps.COLLECT, collection); + return geometryOperation(SpatialOps.COLLECT, collection); } /** @@ -150,7 +154,7 @@ public final class GeometryExpressions { * @return */ public static GeometryExpression collect(Expression expr1, Expression expr2) { - return GeometryOperation.create(Geometry.class, SpatialOps.COLLECT2, expr1, expr2); + return geometryOperation(SpatialOps.COLLECT2, expr1, expr2); } /** @@ -163,7 +167,7 @@ public final class GeometryExpressions { * @return */ public static GeometryExpression translate(Expression expr, float deltax, float deltay) { - return (GeometryExpression)GeometryOperation.create(expr.getType(), SpatialOps.TRANSLATE, + return (GeometryExpression)geometryOperation(expr.getType(), SpatialOps.TRANSLATE, expr, ConstantImpl.create(deltax), ConstantImpl.create(deltay)); } @@ -178,9 +182,64 @@ public final class GeometryExpressions { * @return */ public static GeometryExpression translate(Expression expr, float deltax, float deltay, float deltaz) { - return (GeometryExpression)GeometryOperation.create(expr.getType(), SpatialOps.TRANSLATE2, + return (GeometryExpression)geometryOperation(expr.getType(), SpatialOps.TRANSLATE2, expr, ConstantImpl.create(deltax), ConstantImpl.create(deltay), ConstantImpl.create(deltaz)); } + /** + * Create a new Geometry operation expression + * + * @param op + * @param args + * @return + */ + public static GeometryExpression geometryOperation(Operator op, Expression... args) { + return new GeometryOperation(Geometry.class, op, args); + } + + /** + * Create a new Geometry operation expression + * + * @param op + * @param args + * @return + */ + public static GeometryExpression geometryOperation(Class type, Operator op, Expression... args) { + return new GeometryOperation(type, op, args); + } + + /** + * Create a new LineString operation expression + * + * @param op + * @param args + * @return + */ + public static LineStringExpression lineStringOperation(Operator op, Expression... args) { + return new LineStringOperation(LineString.class, op, args); + } + + /** + * Create a new Point operation expression + * + * @param op + * @param args + * @return + */ + public static PointExpression pointOperation(Operator op, Expression... args) { + return new PointOperation(Point.class, op, args); + } + + /** + * Create a new Polygon operation expression + * + * @param op + * @param args + * @return + */ + public static PolygonExpression polygonOperation(Operator op, Expression... args) { + return new PolygonOperation(Polygon.class, op, args); + } + private GeometryExpressions() {} } diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/GeometryOperation.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/GeometryOperation.java index 2878040fe..856701a2b 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/GeometryOperation.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/GeometryOperation.java @@ -33,18 +33,6 @@ public class GeometryOperation extends GeometryExpression private static final long serialVersionUID = 3433471874808633698L; - public static GeometryOperation create(Class type, Operator op, Expression one) { - return new GeometryOperation(type, op, ImmutableList.>of(one)); - } - - public static GeometryOperation create(Class type, Operator op, Expression one, Expression two) { - return new GeometryOperation(type, op, ImmutableList.of(one, two)); - } - - public static GeometryOperation create(Class type, Operator op, Expression... args) { - return new GeometryOperation(type, op, args); - } - private final OperationImpl< T> opMixin; protected GeometryOperation(Class type, Operator op, Expression... args) { diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/LineStringExpression.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/LineStringExpression.java index 84559c56b..6ce11635e 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/LineStringExpression.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/LineStringExpression.java @@ -61,7 +61,7 @@ public abstract class LineStringExpression extends CurveEx * @return */ public PointExpression pointN(int idx) { - return PointOperation.create(Point.class, SpatialOps.POINTN, mixin, ConstantImpl.create(idx)); + return GeometryExpressions.pointOperation(SpatialOps.POINTN, mixin, ConstantImpl.create(idx)); } } diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/LineStringOperation.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/LineStringOperation.java index c16a863ca..fd7fad9f6 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/LineStringOperation.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/LineStringOperation.java @@ -33,18 +33,6 @@ public class LineStringOperation extends LineStringExpress private static final long serialVersionUID = 3433471874808633698L; - public static LineStringOperation create(Class type, Operator op, Expression one) { - return new LineStringOperation(type, op, ImmutableList.>of(one)); - } - - public static LineStringOperation create(Class type, Operator op, Expression one, Expression two) { - return new LineStringOperation(type, op, ImmutableList.of(one, two)); - } - - public static LineStringOperation create(Class type, Operator op, Expression... args) { - return new LineStringOperation(type, op, args); - } - private final OperationImpl< T> opMixin; protected LineStringOperation(Class type, Operator op, Expression... args) { diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/MultiSurfaceExpression.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/MultiSurfaceExpression.java index 605c28ff7..e65118fff 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/MultiSurfaceExpression.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/MultiSurfaceExpression.java @@ -67,7 +67,7 @@ public abstract class MultiSurfaceExpression exten */ public PointExpression centroid() { if (centroid == null) { - centroid = PointOperation.create(Point.class, SpatialOps.CENTROID, mixin); + centroid = GeometryExpressions.pointOperation(SpatialOps.CENTROID, mixin); } return centroid; } @@ -79,7 +79,7 @@ public abstract class MultiSurfaceExpression exten */ public PointExpression pointOnSurface() { if (pointOnSurface == null) { - pointOnSurface = PointOperation.create(Point.class, SpatialOps.POINT_ON_SURFACE, mixin); + pointOnSurface = GeometryExpressions.pointOperation(SpatialOps.POINT_ON_SURFACE, mixin); } return pointOnSurface; } diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/PointOperation.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/PointOperation.java index 55b1b3a4a..a1c0b5ae5 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/PointOperation.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/PointOperation.java @@ -33,18 +33,6 @@ public class PointOperation extends PointExpression implemen private static final long serialVersionUID = 3433471874808633698L; - public static PointOperation create(Class type, Operator op, Expression one) { - return new PointOperation(type, op, ImmutableList.>of(one)); - } - - public static PointOperation create(Class type, Operator op, Expression one, Expression two) { - return new PointOperation(type, op, ImmutableList.of(one, two)); - } - - public static PointOperation create(Class type, Operator op, Expression... args) { - return new PointOperation(type, op, args); - } - private final OperationImpl< T> opMixin; protected PointOperation(Class type, Operator op, Expression... args) { diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/PolygonExpression.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/PolygonExpression.java index 6941a78b1..38843b027 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/PolygonExpression.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/PolygonExpression.java @@ -53,7 +53,7 @@ public abstract class PolygonExpression extends SurfaceExpres */ public LineStringExpression exteriorRing() { if (exterorRing == null) { - exterorRing = LineStringOperation.create(LineString.class, SpatialOps.EXTERIOR_RING, mixin); + exterorRing = GeometryExpressions.lineStringOperation(SpatialOps.EXTERIOR_RING, mixin); } return exterorRing; } @@ -77,6 +77,6 @@ public abstract class PolygonExpression extends SurfaceExpres * @return */ public LineStringExpression interiorRingN(int idx) { - return LineStringOperation.create(LineString.class, SpatialOps.INTERIOR_RINGN, mixin, ConstantImpl.create(idx)); + return GeometryExpressions.lineStringOperation(SpatialOps.INTERIOR_RINGN, mixin, ConstantImpl.create(idx)); } } diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/PolygonOperation.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/PolygonOperation.java index ec8336442..88238199c 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/PolygonOperation.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/PolygonOperation.java @@ -33,18 +33,6 @@ public class PolygonOperation extends PolygonExpression im private static final long serialVersionUID = 3433471874808633698L; - public static PolygonOperation create(Class type, Operator op, Expression one) { - return new PolygonOperation(type, op, ImmutableList.>of(one)); - } - - public static PolygonOperation create(Class type, Operator op, Expression one, Expression two) { - return new PolygonOperation(type, op, ImmutableList.of(one, two)); - } - - public static PolygonOperation create(Class type, Operator op, Expression... args) { - return new PolygonOperation(type, op, args); - } - private final OperationImpl< T> opMixin; protected PolygonOperation(Class type, Operator op, Expression... args) { diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/PolyhedralSurfaceExpression.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/PolyhedralSurfaceExpression.java index f0cd24e89..8b6970bb6 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/PolyhedralSurfaceExpression.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/PolyhedralSurfaceExpression.java @@ -16,7 +16,6 @@ package com.querydsl.spatial; import javax.annotation.Nullable; import org.geolatte.geom.PolyHedralSurface; -import org.geolatte.geom.Polygon; import com.querydsl.core.types.ConstantImpl; import com.querydsl.core.types.Expression; @@ -67,7 +66,7 @@ public abstract class PolyhedralSurfaceExpression e * @return */ public PolygonExpression patchN(int n) { - return PolygonOperation.create(Polygon.class, SpatialOps.SURFACE, mixin, ConstantImpl.create(n)); + return GeometryExpressions.polygonOperation(SpatialOps.SURFACE, mixin, ConstantImpl.create(n)); } /** diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/SurfaceExpression.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/SurfaceExpression.java index 9e33f5c4e..96231b177 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/SurfaceExpression.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/SurfaceExpression.java @@ -63,7 +63,7 @@ public abstract class SurfaceExpression extends GeometryExpr */ public PointExpression centroid() { if (centroid == null) { - centroid = PointOperation.create(Point.class, SpatialOps.CENTROID, mixin); + centroid = GeometryExpressions.pointOperation(SpatialOps.CENTROID, mixin); } return centroid; } @@ -75,7 +75,7 @@ public abstract class SurfaceExpression extends GeometryExpr */ public PointExpression pointOnSurface() { if (pointOnSurface == null) { - pointOnSurface = PointOperation.create(Point.class, SpatialOps.POINT_ON_SURFACE, mixin); + pointOnSurface = GeometryExpressions.pointOperation(SpatialOps.POINT_ON_SURFACE, mixin); } return pointOnSurface; } diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSCurveExpression.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSCurveExpression.java index 0f8e9b2f0..0accdf1bf 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSCurveExpression.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSCurveExpression.java @@ -68,7 +68,7 @@ public abstract class JTSCurveExpression extends JTSGeometry */ public JTSPointExpression startPoint() { if (startPoint == null) { - startPoint = JTSPointOperation.create(Point.class, SpatialOps.START_POINT, mixin); + startPoint = JTSGeometryExpressions.pointOperation(SpatialOps.START_POINT, mixin); } return startPoint; } @@ -80,7 +80,7 @@ public abstract class JTSCurveExpression extends JTSGeometry */ public JTSPointExpression endPoint() { if (endPoint == null) { - endPoint = JTSPointOperation.create(Point.class, SpatialOps.END_POINT, mixin); + endPoint = JTSGeometryExpressions.pointOperation(SpatialOps.END_POINT, mixin); } return endPoint; } diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSGeometryCollectionExpression.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSGeometryCollectionExpression.java index 9a3c69b0a..76b4167f8 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSGeometryCollectionExpression.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSGeometryCollectionExpression.java @@ -60,7 +60,7 @@ public abstract class JTSGeometryCollectionExpression geometryN(Integer n) { - return JTSGeometryOperation.create(Geometry.class, SpatialOps.GEOMETRYN, mixin, ConstantImpl.create(n)); + return JTSGeometryExpressions.geometryOperation(SpatialOps.GEOMETRYN, mixin, ConstantImpl.create(n)); } } diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSGeometryExpression.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSGeometryExpression.java index fcde7c4c8..fcde8fa8e 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSGeometryExpression.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSGeometryExpression.java @@ -104,7 +104,7 @@ public abstract class JTSGeometryExpression extends SimpleEx */ public JTSGeometryExpression envelope() { if (envelope == null) { - envelope = JTSGeometryOperation.create(Geometry.class, SpatialOps.ENVELOPE, mixin); + envelope = JTSGeometryExpressions.geometryOperation(SpatialOps.ENVELOPE, mixin); } return envelope; } @@ -168,7 +168,7 @@ public abstract class JTSGeometryExpression extends SimpleEx */ public JTSGeometryExpression boundary() { if (boundary == null) { - boundary = JTSGeometryOperation.create(Geometry.class, SpatialOps.BOUNDARY, mixin); + boundary = JTSGeometryExpressions.geometryOperation(SpatialOps.BOUNDARY, mixin); } return boundary; } @@ -408,7 +408,7 @@ public abstract class JTSGeometryExpression extends SimpleEx * @return */ public JTSGeometryExpression buffer(double distance) { - return JTSGeometryOperation.create(Geometry.class, SpatialOps.BUFFER, mixin, ConstantImpl.create(distance)); + return JTSGeometryExpressions.geometryOperation(SpatialOps.BUFFER, mixin, ConstantImpl.create(distance)); } /** @@ -420,7 +420,7 @@ public abstract class JTSGeometryExpression extends SimpleEx */ public JTSGeometryExpression convexHull() { if (convexHull == null) { - convexHull = JTSGeometryOperation.create(Geometry.class, SpatialOps.CONVEXHULL, mixin); + convexHull = JTSGeometryExpressions.geometryOperation(SpatialOps.CONVEXHULL, mixin); } return convexHull; } @@ -444,7 +444,7 @@ public abstract class JTSGeometryExpression extends SimpleEx * @return */ public JTSGeometryExpression intersection(Expression geometry) { - return JTSGeometryOperation.create(Geometry.class, SpatialOps.INTERSECTION, mixin, geometry); + return JTSGeometryExpressions.geometryOperation(SpatialOps.INTERSECTION, mixin, geometry); } /** @@ -466,7 +466,7 @@ public abstract class JTSGeometryExpression extends SimpleEx * @return */ public JTSGeometryExpression union(Expression geometry) { - return JTSGeometryOperation.create(Geometry.class, SpatialOps.UNION, mixin, geometry); + return JTSGeometryExpressions.geometryOperation(SpatialOps.UNION, mixin, geometry); } /** @@ -488,7 +488,7 @@ public abstract class JTSGeometryExpression extends SimpleEx * @return */ public JTSGeometryExpression difference(Expression geometry) { - return JTSGeometryOperation.create(Geometry.class, SpatialOps.DIFFERENCE, mixin, geometry); + return JTSGeometryExpressions.geometryOperation(SpatialOps.DIFFERENCE, mixin, geometry); } /** @@ -510,11 +510,11 @@ public abstract class JTSGeometryExpression extends SimpleEx * @return */ public JTSGeometryExpression symDifference(Expression geometry) { - return JTSGeometryOperation.create(Geometry.class, SpatialOps.SYMDIFFERENCE, mixin, geometry); + return JTSGeometryExpressions.geometryOperation(SpatialOps.SYMDIFFERENCE, mixin, geometry); } public JTSGeometryExpression transform(int srid) { - return JTSGeometryOperation.create(Geometry.class, SpatialOps.TRANSFORM, mixin, ConstantImpl.create(srid)); + return JTSGeometryExpressions.geometryOperation(SpatialOps.TRANSFORM, mixin, ConstantImpl.create(srid)); } } diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSGeometryExpressions.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSGeometryExpressions.java index 812a240a2..28e999492 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSGeometryExpressions.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSGeometryExpressions.java @@ -2,13 +2,13 @@ package com.querydsl.spatial.jts; import com.querydsl.core.types.ConstantImpl; import com.querydsl.core.types.Expression; +import com.querydsl.core.types.Operator; import com.querydsl.core.types.dsl.BooleanExpression; import com.querydsl.core.types.dsl.Expressions; import com.querydsl.core.types.dsl.NumberExpression; import com.querydsl.core.types.dsl.StringExpression; import com.querydsl.spatial.SpatialOps; -import com.vividsolutions.jts.geom.Geometry; -import com.vividsolutions.jts.geom.GeometryCollection; +import com.vividsolutions.jts.geom.*; /** * GeometryExpressions contains static functions for GEO operations @@ -32,7 +32,7 @@ public final class JTSGeometryExpressions { * @return */ public static JTSGeometryExpression fromText(String text) { - return JTSGeometryOperation.create(Geometry.class, SpatialOps.GEOM_FROM_TEXT, ConstantImpl.create(text)); + return geometryOperation(SpatialOps.GEOM_FROM_TEXT, ConstantImpl.create(text)); } /** @@ -42,7 +42,7 @@ public final class JTSGeometryExpressions { * @return */ public static JTSGeometryExpression fromText(Expression text) { - return JTSGeometryOperation.create(Geometry.class, SpatialOps.GEOM_FROM_TEXT, text); + return geometryOperation(SpatialOps.GEOM_FROM_TEXT, text); } /** @@ -54,7 +54,7 @@ public final class JTSGeometryExpressions { * @return */ public static JTSGeometryExpression setSRID(Expression expr, int srid) { - return (JTSGeometryExpression)JTSGeometryOperation.create(expr.getType(), SpatialOps.SET_SRID, + return (JTSGeometryExpression)geometryOperation(expr.getType(), SpatialOps.SET_SRID, expr, ConstantImpl.create(srid)); } @@ -133,7 +133,7 @@ public final class JTSGeometryExpressions { * @return */ public static JTSGeometryExpression extent(Expression collection) { - return JTSGeometryOperation.create(Geometry.class, SpatialOps.EXTENT, collection); + return geometryOperation(SpatialOps.EXTENT, collection); } /** @@ -143,7 +143,7 @@ public final class JTSGeometryExpressions { * @return */ public static JTSGeometryExpression collect(Expression collection) { - return JTSGeometryOperation.create(Geometry.class, SpatialOps.COLLECT, collection); + return geometryOperation(SpatialOps.COLLECT, collection); } /** @@ -154,7 +154,7 @@ public final class JTSGeometryExpressions { * @return */ public static JTSGeometryExpression collect(Expression expr1, Expression expr2) { - return JTSGeometryOperation.create(Geometry.class, SpatialOps.COLLECT2, expr1, expr2); + return geometryOperation(SpatialOps.COLLECT2, expr1, expr2); } /** @@ -167,7 +167,7 @@ public final class JTSGeometryExpressions { * @return */ public static JTSGeometryExpression translate(Expression expr, float deltax, float deltay) { - return (JTSGeometryExpression)JTSGeometryOperation.create(expr.getType(), SpatialOps.TRANSLATE, + return (JTSGeometryExpression)geometryOperation(expr.getType(), SpatialOps.TRANSLATE, expr, ConstantImpl.create(deltax), ConstantImpl.create(deltay)); } @@ -182,9 +182,64 @@ public final class JTSGeometryExpressions { * @return */ public static JTSGeometryExpression translate(Expression expr, float deltax, float deltay, float deltaz) { - return (JTSGeometryExpression)JTSGeometryOperation.create(expr.getType(), SpatialOps.TRANSLATE2, + return (JTSGeometryExpression)geometryOperation(expr.getType(), SpatialOps.TRANSLATE2, expr, ConstantImpl.create(deltax), ConstantImpl.create(deltay), ConstantImpl.create(deltaz)); } + /** + * Create a new Geometry operation expression + * + * @param op + * @param args + * @return + */ + public static JTSGeometryExpression geometryOperation(Operator op, Expression... args) { + return new JTSGeometryOperation(Geometry.class, op, args); + } + + /** + * Create a new Geometry operation expression + * + * @param op + * @param args + * @return + */ + public static JTSGeometryExpression geometryOperation(Class type, Operator op, Expression... args) { + return new JTSGeometryOperation(type, op, args); + } + + /** + * Create a new LineString operation expression + * + * @param op + * @param args + * @return + */ + public static JTSLineStringExpression lineStringOperation(Operator op, Expression... args) { + return new JTSLineStringOperation(LineString.class, op, args); + } + + /** + * Create a new Point operation expression + * + * @param op + * @param args + * @return + */ + public static JTSPointExpression pointOperation(Operator op, Expression... args) { + return new JTSPointOperation(Point.class, op, args); + } + + /** + * Create a new Polygon operation expression + * + * @param op + * @param args + * @return + */ + public static JTSPolygonExpression polygonOperation(Operator op, Expression... args) { + return new JTSPolygonOperation(Polygon.class, op, args); + } + private JTSGeometryExpressions() {} } diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSGeometryOperation.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSGeometryOperation.java index 208136589..e90a652ce 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSGeometryOperation.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSGeometryOperation.java @@ -33,18 +33,6 @@ public class JTSGeometryOperation extends JTSGeometryExpress private static final long serialVersionUID = 3433471874808633698L; - public static JTSGeometryOperation create(Class type, Operator op, Expression one) { - return new JTSGeometryOperation(type, op, ImmutableList.>of(one)); - } - - public static JTSGeometryOperation create(Class type, Operator op, Expression one, Expression two) { - return new JTSGeometryOperation(type, op, ImmutableList.of(one, two)); - } - - public static JTSGeometryOperation create(Class type, Operator op, Expression... args) { - return new JTSGeometryOperation(type, op, args); - } - private final OperationImpl< T> opMixin; protected JTSGeometryOperation(Class type, Operator op, Expression... args) { diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSLineStringExpression.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSLineStringExpression.java index 39a2c979f..2571ff145 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSLineStringExpression.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSLineStringExpression.java @@ -61,7 +61,7 @@ public abstract class JTSLineStringExpression extends JTSC * @return */ public JTSPointExpression pointN(int idx) { - return JTSPointOperation.create(Point.class, SpatialOps.POINTN, mixin, ConstantImpl.create(idx)); + return JTSGeometryExpressions.pointOperation(SpatialOps.POINTN, mixin, ConstantImpl.create(idx)); } } diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSLineStringOperation.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSLineStringOperation.java index 4b7138eab..f1304ecbf 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSLineStringOperation.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSLineStringOperation.java @@ -33,18 +33,6 @@ public class JTSLineStringOperation extends JTSLineStringE private static final long serialVersionUID = 3433471874808633698L; - public static JTSLineStringOperation create(Class type, Operator op, Expression one) { - return new JTSLineStringOperation(type, op, ImmutableList.>of(one)); - } - - public static JTSLineStringOperation create(Class type, Operator op, Expression one, Expression two) { - return new JTSLineStringOperation(type, op, ImmutableList.of(one, two)); - } - - public static JTSLineStringOperation create(Class type, Operator op, Expression... args) { - return new JTSLineStringOperation(type, op, args); - } - private final OperationImpl< T> opMixin; protected JTSLineStringOperation(Class type, Operator op, Expression... args) { diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSMultiSurfaceExpression.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSMultiSurfaceExpression.java index d6d2e3b61..6d95878ff 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSMultiSurfaceExpression.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSMultiSurfaceExpression.java @@ -67,7 +67,7 @@ public abstract class JTSMultiSurfaceExpression ex */ public JTSPointExpression centroid() { if (centroid == null) { - centroid = JTSPointOperation.create(Point.class, SpatialOps.CENTROID, mixin); + centroid = JTSGeometryExpressions.pointOperation(SpatialOps.CENTROID, mixin); } return centroid; } @@ -79,7 +79,7 @@ public abstract class JTSMultiSurfaceExpression ex */ public JTSPointExpression pointOnSurface() { if (pointOnSurface == null) { - pointOnSurface = JTSPointOperation.create(Point.class, SpatialOps.POINT_ON_SURFACE, mixin); + pointOnSurface = JTSGeometryExpressions.pointOperation(SpatialOps.POINT_ON_SURFACE, mixin); } return pointOnSurface; } diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSPointOperation.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSPointOperation.java index fbe427156..49aa97316 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSPointOperation.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSPointOperation.java @@ -33,18 +33,6 @@ public class JTSPointOperation extends JTSPointExpression im private static final long serialVersionUID = 3433471874808633698L; - public static JTSPointOperation create(Class type, Operator op, Expression one) { - return new JTSPointOperation(type, op, ImmutableList.>of(one)); - } - - public static JTSPointOperation create(Class type, Operator op, Expression one, Expression two) { - return new JTSPointOperation(type, op, ImmutableList.of(one, two)); - } - - public static JTSPointOperation create(Class type, Operator op, Expression... args) { - return new JTSPointOperation(type, op, args); - } - private final OperationImpl< T> opMixin; protected JTSPointOperation(Class type, Operator op, Expression... args) { diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSPolygonExpression.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSPolygonExpression.java index b10481343..90244dec4 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSPolygonExpression.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSPolygonExpression.java @@ -53,7 +53,7 @@ public abstract class JTSPolygonExpression extends JTSSurface */ public JTSLineStringExpression exteriorRing() { if (exteriorRing == null) { - exteriorRing = JTSLineStringOperation.create(LineString.class, SpatialOps.EXTERIOR_RING, mixin); + exteriorRing = JTSGeometryExpressions.lineStringOperation(SpatialOps.EXTERIOR_RING, mixin); } return exteriorRing; } @@ -77,6 +77,6 @@ public abstract class JTSPolygonExpression extends JTSSurface * @return */ public JTSLineStringExpression interiorRingN(int idx) { - return JTSLineStringOperation.create(LineString.class, SpatialOps.INTERIOR_RINGN, mixin, ConstantImpl.create(idx)); + return JTSGeometryExpressions.lineStringOperation(SpatialOps.INTERIOR_RINGN, mixin, ConstantImpl.create(idx)); } } diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSPolygonOperation.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSPolygonOperation.java index d9849dce0..e76155d81 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSPolygonOperation.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSPolygonOperation.java @@ -33,18 +33,6 @@ public class JTSPolygonOperation extends JTSPolygonExpression private static final long serialVersionUID = 3433471874808633698L; - public static JTSPolygonOperation create(Class type, Operator op, Expression one) { - return new JTSPolygonOperation(type, op, ImmutableList.>of(one)); - } - - public static JTSPolygonOperation create(Class type, Operator op, Expression one, Expression two) { - return new JTSPolygonOperation(type, op, ImmutableList.of(one, two)); - } - - public static JTSPolygonOperation create(Class type, Operator op, Expression... args) { - return new JTSPolygonOperation(type, op, args); - } - private final OperationImpl< T> opMixin; protected JTSPolygonOperation(Class type, Operator op, Expression... args) { diff --git a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSSurfaceExpression.java b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSSurfaceExpression.java index 995d948ab..e8c93f8e8 100644 --- a/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSSurfaceExpression.java +++ b/querydsl-spatial/src/main/java/com/querydsl/spatial/jts/JTSSurfaceExpression.java @@ -63,7 +63,7 @@ public abstract class JTSSurfaceExpression extends JTSGeomet */ public JTSPointExpression centroid() { if (centroid == null) { - centroid = JTSPointOperation.create(Point.class, SpatialOps.CENTROID, mixin); + centroid = JTSGeometryExpressions.pointOperation(SpatialOps.CENTROID, mixin); } return centroid; } @@ -75,7 +75,7 @@ public abstract class JTSSurfaceExpression extends JTSGeomet */ public JTSPointExpression pointOnSurface() { if (pointOnSurface == null) { - pointOnSurface = JTSPointOperation.create(Point.class, SpatialOps.POINT_ON_SURFACE, mixin); + pointOnSurface = JTSGeometryExpressions.pointOperation(SpatialOps.POINT_ON_SURFACE, mixin); } return pointOnSurface; }