From 9860816ab7d6247361fa8c337419e956aeb63cbd Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Tue, 25 Oct 2016 22:36:38 +1300 Subject: [PATCH] Update --- .../avaje/ebean/postgis/RegisterFactory.java | 9 +++++ .../postgis/ScalarTypePgisLineString.java | 13 +++++++ .../ScalarTypePgisMultiLineString.java | 13 +++++++ .../postgis/ScalarTypePgisMultiPoint.java | 13 +++++++ .../postgis/ScalarTypePgisMultiPolygon.java | 2 +- .../latte/ScalarTypeGeoLatteLineString.java | 13 +++++++ .../ScalarTypeGeoLatteMultiLineString.java | 13 +++++++ .../latte/ScalarTypeGeoLatteMultiPoint.java | 11 ++++++ src/test/java/org/example/domain/MyBean.java | 34 ++++++++++++++++++- .../org/example/domain/OtherBeanGeoLatte.java | 33 ++++++++++++++++++ .../org/example/domain/TestInsertQuery.java | 17 ++++++++++ .../example/domain/TestOtherInsertQuery.java | 18 ++++++++++ src/test/resources/test-ebean.properties | 2 +- 13 files changed, 188 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/avaje/ebean/postgis/ScalarTypePgisLineString.java create mode 100644 src/main/java/com/avaje/ebean/postgis/ScalarTypePgisMultiLineString.java create mode 100644 src/main/java/com/avaje/ebean/postgis/ScalarTypePgisMultiPoint.java create mode 100644 src/main/java/com/avaje/ebean/postgis/latte/ScalarTypeGeoLatteLineString.java create mode 100644 src/main/java/com/avaje/ebean/postgis/latte/ScalarTypeGeoLatteMultiLineString.java create mode 100644 src/main/java/com/avaje/ebean/postgis/latte/ScalarTypeGeoLatteMultiPoint.java diff --git a/src/main/java/com/avaje/ebean/postgis/RegisterFactory.java b/src/main/java/com/avaje/ebean/postgis/RegisterFactory.java index 5cf06498a..125c1dfd7 100644 --- a/src/main/java/com/avaje/ebean/postgis/RegisterFactory.java +++ b/src/main/java/com/avaje/ebean/postgis/RegisterFactory.java @@ -2,6 +2,9 @@ package com.avaje.ebean.postgis; import com.avaje.ebean.config.ServerConfig; import com.avaje.ebean.plugin.ExtraTypeFactory; +import com.avaje.ebean.postgis.latte.ScalarTypeGeoLatteLineString; +import com.avaje.ebean.postgis.latte.ScalarTypeGeoLatteMultiLineString; +import com.avaje.ebean.postgis.latte.ScalarTypeGeoLatteMultiPoint; import com.avaje.ebean.postgis.latte.ScalarTypeGeoLatteMultiPolygon; import com.avaje.ebean.postgis.latte.ScalarTypeGeoLattePoint; import com.avaje.ebean.postgis.latte.ScalarTypeGeoLattePolygon; @@ -19,12 +22,18 @@ public class RegisterFactory implements ExtraTypeFactory { List> list = new ArrayList>(); list.add(new ScalarTypePgisPoint()); list.add(new ScalarTypePgisPolygon()); + list.add(new ScalarTypePgisLineString()); list.add(new ScalarTypePgisMultiPolygon()); + list.add(new ScalarTypePgisMultiPoint()); + list.add(new ScalarTypePgisMultiLineString()); if (serverConfig.getClassLoadConfig().isPresent("org.geolatte.geom.Geometry")) { list.add(new ScalarTypeGeoLattePoint()); list.add(new ScalarTypeGeoLattePolygon()); + list.add(new ScalarTypeGeoLatteLineString()); list.add(new ScalarTypeGeoLatteMultiPolygon()); + list.add(new ScalarTypeGeoLatteMultiPoint()); + list.add(new ScalarTypeGeoLatteMultiLineString()); } return list; diff --git a/src/main/java/com/avaje/ebean/postgis/ScalarTypePgisLineString.java b/src/main/java/com/avaje/ebean/postgis/ScalarTypePgisLineString.java new file mode 100644 index 000000000..ac5148cc7 --- /dev/null +++ b/src/main/java/com/avaje/ebean/postgis/ScalarTypePgisLineString.java @@ -0,0 +1,13 @@ +package com.avaje.ebean.postgis; + +import com.avaje.ebean.config.dbplatform.ExtraDbTypes; +import org.postgis.LineString; +import org.postgis.Point; + +public class ScalarTypePgisLineString extends ScalarTypePgisBase { + + public ScalarTypePgisLineString() { + super(ExtraDbTypes.LINESTRING, LineString.class); + } + +} diff --git a/src/main/java/com/avaje/ebean/postgis/ScalarTypePgisMultiLineString.java b/src/main/java/com/avaje/ebean/postgis/ScalarTypePgisMultiLineString.java new file mode 100644 index 000000000..b7b6e1711 --- /dev/null +++ b/src/main/java/com/avaje/ebean/postgis/ScalarTypePgisMultiLineString.java @@ -0,0 +1,13 @@ +package com.avaje.ebean.postgis; + +import com.avaje.ebean.config.dbplatform.ExtraDbTypes; +import org.postgis.LineString; +import org.postgis.MultiLineString; + +public class ScalarTypePgisMultiLineString extends ScalarTypePgisBase { + + public ScalarTypePgisMultiLineString() { + super(ExtraDbTypes.MULTILINESTRING, MultiLineString.class); + } + +} diff --git a/src/main/java/com/avaje/ebean/postgis/ScalarTypePgisMultiPoint.java b/src/main/java/com/avaje/ebean/postgis/ScalarTypePgisMultiPoint.java new file mode 100644 index 000000000..31783832b --- /dev/null +++ b/src/main/java/com/avaje/ebean/postgis/ScalarTypePgisMultiPoint.java @@ -0,0 +1,13 @@ +package com.avaje.ebean.postgis; + +import com.avaje.ebean.config.dbplatform.ExtraDbTypes; +import org.postgis.MultiLineString; +import org.postgis.MultiPoint; + +public class ScalarTypePgisMultiPoint extends ScalarTypePgisBase { + + public ScalarTypePgisMultiPoint() { + super(ExtraDbTypes.MULTIPOINT, MultiPoint.class); + } + +} diff --git a/src/main/java/com/avaje/ebean/postgis/ScalarTypePgisMultiPolygon.java b/src/main/java/com/avaje/ebean/postgis/ScalarTypePgisMultiPolygon.java index a6eb9d7c8..728ff31ab 100644 --- a/src/main/java/com/avaje/ebean/postgis/ScalarTypePgisMultiPolygon.java +++ b/src/main/java/com/avaje/ebean/postgis/ScalarTypePgisMultiPolygon.java @@ -6,7 +6,7 @@ import org.postgis.MultiPolygon; public class ScalarTypePgisMultiPolygon extends ScalarTypePgisBase { public ScalarTypePgisMultiPolygon() { - super(ExtraDbTypes.POLYGON, MultiPolygon.class); + super(ExtraDbTypes.MULTIPOLYGON, MultiPolygon.class); } } diff --git a/src/main/java/com/avaje/ebean/postgis/latte/ScalarTypeGeoLatteLineString.java b/src/main/java/com/avaje/ebean/postgis/latte/ScalarTypeGeoLatteLineString.java new file mode 100644 index 000000000..248947163 --- /dev/null +++ b/src/main/java/com/avaje/ebean/postgis/latte/ScalarTypeGeoLatteLineString.java @@ -0,0 +1,13 @@ +package com.avaje.ebean.postgis.latte; + +import com.avaje.ebean.config.dbplatform.ExtraDbTypes; +import org.geolatte.geom.LineString; +import org.geolatte.geom.MultiLineString; + +public class ScalarTypeGeoLatteLineString extends ScalarTypeGeoLatteBase { + + public ScalarTypeGeoLatteLineString() { + super(ExtraDbTypes.LINESTRING, LineString.class); + } + +} diff --git a/src/main/java/com/avaje/ebean/postgis/latte/ScalarTypeGeoLatteMultiLineString.java b/src/main/java/com/avaje/ebean/postgis/latte/ScalarTypeGeoLatteMultiLineString.java new file mode 100644 index 000000000..312dc4cd8 --- /dev/null +++ b/src/main/java/com/avaje/ebean/postgis/latte/ScalarTypeGeoLatteMultiLineString.java @@ -0,0 +1,13 @@ +package com.avaje.ebean.postgis.latte; + +import com.avaje.ebean.config.dbplatform.ExtraDbTypes; +import org.geolatte.geom.MultiLineString; +import org.geolatte.geom.MultiPolygon; + +public class ScalarTypeGeoLatteMultiLineString extends ScalarTypeGeoLatteBase { + + public ScalarTypeGeoLatteMultiLineString() { + super(ExtraDbTypes.MULTILINESTRING, MultiLineString.class); + } + +} diff --git a/src/main/java/com/avaje/ebean/postgis/latte/ScalarTypeGeoLatteMultiPoint.java b/src/main/java/com/avaje/ebean/postgis/latte/ScalarTypeGeoLatteMultiPoint.java new file mode 100644 index 000000000..f9bb4ce60 --- /dev/null +++ b/src/main/java/com/avaje/ebean/postgis/latte/ScalarTypeGeoLatteMultiPoint.java @@ -0,0 +1,11 @@ +package com.avaje.ebean.postgis.latte; + +import com.avaje.ebean.config.dbplatform.ExtraDbTypes; +import org.geolatte.geom.MultiPoint; + +public class ScalarTypeGeoLatteMultiPoint extends ScalarTypeGeoLatteBase { + + public ScalarTypeGeoLatteMultiPoint() { + super(ExtraDbTypes.MULTIPOINT, MultiPoint.class); + } +} diff --git a/src/test/java/org/example/domain/MyBean.java b/src/test/java/org/example/domain/MyBean.java index ae8a77cd6..1d4844e6a 100644 --- a/src/test/java/org/example/domain/MyBean.java +++ b/src/test/java/org/example/domain/MyBean.java @@ -1,6 +1,8 @@ package org.example.domain; - +import org.postgis.LineString; +import org.postgis.MultiLineString; +import org.postgis.MultiPoint; import org.postgis.MultiPolygon; import org.postgis.Point; import org.postgis.Polygon; @@ -18,6 +20,12 @@ public class MyBean extends BaseEntity { Polygon poly; + LineString lineString; + + MultiLineString multiLineString; + + MultiPoint multiPoint; + MultiPolygon mpoly; public String getName() { @@ -44,6 +52,30 @@ public class MyBean extends BaseEntity { this.poly = poly; } + public LineString getLineString() { + return lineString; + } + + public void setLineString(LineString lineString) { + this.lineString = lineString; + } + + public MultiLineString getMultiLineString() { + return multiLineString; + } + + public void setMultiLineString(MultiLineString multiLineString) { + this.multiLineString = multiLineString; + } + + public MultiPoint getMultiPoint() { + return multiPoint; + } + + public void setMultiPoint(MultiPoint multiPoint) { + this.multiPoint = multiPoint; + } + public MultiPolygon getMpoly() { return mpoly; } diff --git a/src/test/java/org/example/domain/OtherBeanGeoLatte.java b/src/test/java/org/example/domain/OtherBeanGeoLatte.java index b72f28e12..6d35d77ba 100644 --- a/src/test/java/org/example/domain/OtherBeanGeoLatte.java +++ b/src/test/java/org/example/domain/OtherBeanGeoLatte.java @@ -1,6 +1,9 @@ package org.example.domain; +import org.geolatte.geom.LineString; +import org.geolatte.geom.MultiLineString; +import org.geolatte.geom.MultiPoint; import org.geolatte.geom.MultiPolygon; import org.geolatte.geom.Point; import org.geolatte.geom.Polygon; @@ -18,6 +21,12 @@ public class OtherBeanGeoLatte extends BaseEntity { Polygon poly; + LineString lineString; + + MultiLineString multiLineString; + + MultiPoint multiPoint; + MultiPolygon mpoly; public String getName() { @@ -51,4 +60,28 @@ public class OtherBeanGeoLatte extends BaseEntity { public void setMpoly(MultiPolygon mpoly) { this.mpoly = mpoly; } + + public LineString getLineString() { + return lineString; + } + + public void setLineString(LineString lineString) { + this.lineString = lineString; + } + + public MultiLineString getMultiLineString() { + return multiLineString; + } + + public void setMultiLineString(MultiLineString multiLineString) { + this.multiLineString = multiLineString; + } + + public MultiPoint getMultiPoint() { + return multiPoint; + } + + public void setMultiPoint(MultiPoint multiPoint) { + this.multiPoint = multiPoint; + } } diff --git a/src/test/java/org/example/domain/TestInsertQuery.java b/src/test/java/org/example/domain/TestInsertQuery.java index 63fd8561f..ec7b4600e 100644 --- a/src/test/java/org/example/domain/TestInsertQuery.java +++ b/src/test/java/org/example/domain/TestInsertQuery.java @@ -1,6 +1,11 @@ package org.example.domain; import com.avaje.ebean.Ebean; +import jdk.nashorn.internal.ir.annotations.Ignore; +import org.postgis.LineString; +import org.postgis.MultiLineString; +import org.postgis.MultiPoint; +import org.postgis.MultiPolygon; import org.postgis.Point; import org.postgis.Polygon; import org.testng.annotations.Test; @@ -10,6 +15,10 @@ import java.util.List; public class TestInsertQuery { + /** + * Not automated this test yet. + */ + @Ignore @Test public void insert() throws SQLException { @@ -29,11 +38,19 @@ public class TestInsertQuery { Point point = new Point("SRID=4674;POINT(2.8 1.7)"); Polygon poly = new Polygon("SRID=4674;POLYGON((2 2, 2 -2, -2 -2, -2 2, 2 2))"); + LineString lineString = new LineString("SRID=4674;LINESTRING(0 0, 1 2)"); + MultiLineString multiLineString = new MultiLineString("SRID=4674;MULTILINESTRING((0 0, 1 2), (1 2, 3 -1))"); + MultiPoint multiPoint = new MultiPoint("SRID=4674;MULTIPOINT((2 3), (7 8))"); + MultiPolygon mpoly = new MultiPolygon("SRID=4674;MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3, 1 3, 1 1)))"); MyBean p = new MyBean(); p.setName("me at "+System.currentTimeMillis()); p.setPoint(point); p.setPoly(poly); + p.setLineString(lineString); + p.setMultiLineString(multiLineString); + p.setMultiPoint(multiPoint); + p.setMpoly(mpoly); Ebean.save(p); } diff --git a/src/test/java/org/example/domain/TestOtherInsertQuery.java b/src/test/java/org/example/domain/TestOtherInsertQuery.java index 496132faa..02a0490db 100644 --- a/src/test/java/org/example/domain/TestOtherInsertQuery.java +++ b/src/test/java/org/example/domain/TestOtherInsertQuery.java @@ -1,9 +1,14 @@ package org.example.domain; import com.avaje.ebean.Ebean; +import jdk.nashorn.internal.ir.annotations.Ignore; import org.geolatte.geom.Point; import org.geolatte.geom.Polygon; import org.geolatte.geom.codec.Wkt; +import org.geolatte.geom.LineString; +import org.geolatte.geom.MultiLineString; +import org.geolatte.geom.MultiPoint; +import org.geolatte.geom.MultiPolygon; import org.testng.annotations.Test; import java.sql.SQLException; @@ -11,6 +16,10 @@ import java.util.List; public class TestOtherInsertQuery { + /** + * Not automated this test yet. + */ + @Ignore @Test public void insert() throws SQLException { @@ -31,10 +40,19 @@ public class TestOtherInsertQuery { Point point = (Point) Wkt.fromWkt("SRID=4674;POINT (12 23)"); Polygon poly = (Polygon) Wkt.fromWkt("SRID=4674;POLYGON((2 2, 2 -2, -2 -2, -2 2, 2 2))"); + LineString lineString = (LineString)Wkt.fromWkt("SRID=4674;LINESTRING(0 0, 1 2)"); + MultiLineString multiLineString = (MultiLineString)Wkt.fromWkt("SRID=4674;MULTILINESTRING((0 0, 1 2), (1 2, 3 -1))"); + MultiPoint multiPoint = (MultiPoint)Wkt.fromWkt("SRID=4674;MULTIPOINT(10 40, 40 30, 20 20, 30 10)"); + MultiPolygon mpoly = (MultiPolygon)Wkt.fromWkt("SRID=4674;MULTIPOLYGON(((1 1, 1 -1, -1 -1, -1 1, 1 1)),((1 1, 3 1, 3 3, 1 3, 1 1)))"); + OtherBeanGeoLatte p = new OtherBeanGeoLatte(); p.setName("geolatte at "+System.currentTimeMillis()); p.setPoint(point); p.setPoly(poly); + p.setLineString(lineString); + p.setMpoly(mpoly); + p.setMultiPoint(multiPoint); + p.setMultiLineString(multiLineString); Ebean.save(p); } diff --git a/src/test/resources/test-ebean.properties b/src/test/resources/test-ebean.properties index d71a5a501..934016c3a 100644 --- a/src/test/resources/test-ebean.properties +++ b/src/test/resources/test-ebean.properties @@ -2,7 +2,7 @@ ## when running tests ebean.ddl.generate=true -ebean.ddl.run=true +#ebean.ddl.run=true #ebean.ddl.createOnly=true ebean.geometrySRID=4674