public MultiPolygonPath<MultiPolygon> asMultiPolygon() { if (multiPolygon == null) { multiPolygon = new MultiPolygonPath<MultiPolygon>(pathMixin.getMetadata()); } return multiPolygon; }
@Test public void multiPolygon_methods() { MultiPolygonPath<MultiPolygon> multipolygon = shapes.geometry.asMultiPolygon(); List<Expression<?>> expressions = Lists.newArrayList(); add(expressions, multipolygon.asBinary(), H2); add(expressions, multipolygon.asText()); add(expressions, multipolygon.boundary(), MYSQL); add(expressions, multipolygon.convexHull(), MYSQL); add(expressions, multipolygon.dimension()); add(expressions, multipolygon.envelope(), H2); add(expressions, multipolygon.geometryType(), H2); add(expressions, multipolygon.isEmpty()); add(expressions, multipolygon.isSimple()); // multipolygon specific add(expressions, multipolygon.numGeometries(), H2); add(expressions, multipolygon.geometryN(1), H2); for (Expression<?> expr : expressions) { boolean logged = false; for (Object row : withMultiPolygons().select(expr).fetch()) { if (row == null && !logged) { System.err.println(expr.toString()); logged = true; } } } }
@Test public void convert() { GeometryPath<Geometry> geometry = new GeometryPath<Geometry>("geometry"); assertEquals(new GeometryCollectionPath<GeometryCollection>("geometry"), geometry.asCollection()); assertEquals(new LinearRingPath<LinearRing>("geometry"), geometry.asLinearRing()); assertEquals(new LineStringPath<LineString>("geometry"), geometry.asLineString()); assertEquals(new MultiLineStringPath<MultiLineString>("geometry"), geometry.asMultiLineString()); assertEquals(new MultiPointPath<MultiPoint>("geometry"), geometry.asMultiPoint()); assertEquals(new MultiPolygonPath<MultiPolygon>("geometry"), geometry.asMultiPolygon()); assertEquals(new PointPath<Point>("geometry"), geometry.asPoint()); assertEquals(new PolygonPath<Polygon>("geometry"), geometry.asPolygon()); assertEquals(new PolyhedralSurfacePath<PolyHedralSurface>("geometry"), geometry.asPolyHedralSurface()); } }
@Override public <A extends MultiPolygon> MultiPolygonPath<A> createMultiPolygon(String property, Class<? extends A> type) { return add(new MultiPolygonPath<A>(type, forProperty(property))); }
@Test public void convert() { GeometryPath<Geometry> geometry = new GeometryPath<Geometry>("geometry"); assertEquals(new GeometryCollectionPath<GeometryCollection>("geometry"), geometry.asCollection()); assertEquals(new LinearRingPath<LinearRing>("geometry"), geometry.asLinearRing()); assertEquals(new LineStringPath<LineString>("geometry"), geometry.asLineString()); assertEquals(new MultiLineStringPath<MultiLineString>("geometry"), geometry.asMultiLineString()); assertEquals(new MultiPointPath<MultiPoint>("geometry"), geometry.asMultiPoint()); assertEquals(new MultiPolygonPath<MultiPolygon>("geometry"), geometry.asMultiPolygon()); assertEquals(new PointPath<Point>("geometry"), geometry.asPoint()); assertEquals(new PolygonPath<Polygon>("geometry"), geometry.asPolygon()); assertEquals(new PolyhedralSurfacePath<PolyHedralSurface>("geometry"), geometry.asPolyHedralSurface()); } }