@TeiidFunction(name=SourceSystemFunctions.ST_SETSRID, category=FunctionCategoryConstants.GEOMETRY, nullOnNull=true, pushdown=PushDown.CAN_PUSHDOWN) public static GeometryType setSrid(GeometryType geom1, int srid) { GeometryType gt = new GeometryType(); gt.setReference(geom1.getReference()); gt.setSrid(srid); return gt; }
@TeiidFunction(name=SourceSystemFunctions.ST_SRID, category=FunctionCategoryConstants.GEOMETRY, nullOnNull=true, pushdown=PushDown.CAN_PUSHDOWN) public static int getSrid(GeometryType geom1) { return geom1.getSrid(); }
@Override protected Object readObject(ObjectInput in, List<Object> cache, byte version) throws IOException, ClassNotFoundException { if (version < VERSION_GEOMETRY) { BlobType bt = new BlobType(); bt.readExternal(in); return bt; } GeometryType bt = new GeometryType(); bt.readExternal(in); return bt; } }
public static GeometryType getGeometryType(Geometry jtsGeom, int srid) { jtsGeom.setSRID(srid); byte[] bytes = getBytes(jtsGeom, true); GeometryType result = new GeometryType(bytes, srid); result.setGeoCache(jtsGeom); return result; }
@Test public void testGeometry() throws IOException, ClassNotFoundException { GeometryType geometryType = new GeometryType(new byte[0]); geometryType.setReferenceStreamId(null); geometryType.setSrid(10000); Object val = helpTestSerialization(new String[] {DataTypeManager.DefaultDataTypes.GEOMETRY}, new List[] {Arrays.asList(geometryType)}, BatchSerializer.VERSION_GEOMETRY).get(0).get(0); assertTrue(val instanceof GeometryType); assertEquals(10000, ((GeometryType)val).getSrid()); helpTestSerialization(new String[] {DataTypeManager.DefaultDataTypes.GEOMETRY}, new List[] {Arrays.asList(geometryType)}, (byte)0); //object serialization - should fail on the client side val = helpTestSerialization(new String[] {DataTypeManager.DefaultDataTypes.GEOMETRY}, new List[] {Arrays.asList(geometryType)}, (byte)1).get(0).get(0); //blob serialization assertFalse(val instanceof GeometryType); val = helpTestSerialization(new String[] {DataTypeManager.DefaultDataTypes.OBJECT}, new List[] {Arrays.asList(geometryType)}, (byte)1).get(0).get(0); //blob serialization assertFalse(val instanceof GeometryType); }
/** * The default strategy assumes a blob value containing wkb * @param results * @param paramIndex * @return * @throws SQLException */ public Object retrieveGeometryValue(ResultSet results, int paramIndex) throws SQLException { GeometryType geom = null; Blob val = results.getBlob(paramIndex); if (val != null) { geom = new GeometryType(val); } return geom; }
Blob b = new BlobImpl(streamFactory); GeometryType geom = new GeometryType(b); geom.setSrid(srid); return geom;
@Test public void testGeography() throws IOException, ClassNotFoundException { GeometryType geometryType = new GeometryType(new byte[0]); geometryType.setReferenceStreamId(null); geometryType.setSrid(4326); Object val = helpTestSerialization(new String[] {DataTypeManager.DefaultDataTypes.GEOGRAPHY}, new List[] {Arrays.asList(geometryType)}, BatchSerializer.VERSION_GEOGRAPHY).get(0).get(0); assertTrue(val instanceof GeographyType); assertEquals(4326, ((GeographyType)val).getSrid()); helpTestSerialization(new String[] {DataTypeManager.DefaultDataTypes.GEOGRAPHY}, new List[] {Arrays.asList(geometryType)}, (byte)0); //object serialization - should fail on the client side val = helpTestSerialization(new String[] {DataTypeManager.DefaultDataTypes.GEOGRAPHY}, new List[] {Arrays.asList(geometryType)}, (byte)1).get(0).get(0); //blob serialization assertFalse(val instanceof GeographyType); val = helpTestSerialization(new String[] {DataTypeManager.DefaultDataTypes.OBJECT}, new List[] {Arrays.asList(geometryType)}, (byte)1).get(0).get(0); //blob serialization assertFalse(val instanceof GeographyType); }
public GeometryType(Blob blob, int srid) { super(blob); setSrid(srid); }
public static Geometry getGeometry(GeometryType geom) throws FunctionExecutionException { try { return getGeometry(geom.getBinaryStream(), geom.getSrid(), false); } catch (SQLException e) { throw new FunctionExecutionException(e); } }
@Test public void testRoundTrip() throws Exception { Expression ex = TestFunctionResolving.getExpression("ST_GeomFromText('POLYGON ((40 0, 50 50, 0 50, 0 0, 40 0))')"); GeometryType geom = (GeometryType) Evaluator.evaluate(ex); assertEquals(0, geom.getSrid()); byte[] bytes = geom.getBytes(1, (int) geom.length()); Expression ex1 = TestFunctionResolving.getExpression("ST_GeomFromBinary(X'"+new BinaryType(bytes)+"', 8307)"); GeometryType geom1 = (GeometryType) Evaluator.evaluate(ex1); assertEquals(8307, geom1.getSrid()); assertEquals(geom, geom1); }
@TeiidFunction(name=SourceSystemFunctions.ST_ASBINARY, category=FunctionCategoryConstants.GEOMETRY, nullOnNull=true, pushdown=PushDown.CAN_PUSHDOWN) public static BlobType asBlob(GeometryType geometry) { Blob b = geometry.getReference(); return new BlobType(b); }
public static GeometryType getGeometryType(Geometry jtsGeom, int srid) { byte[] bytes = getBytes(jtsGeom, true); return new GeometryType(bytes, srid); }
@Override protected Object readObject(ObjectInput in, List<Object> cache, byte version) throws IOException, ClassNotFoundException { if (version < VERSION_GEOMETRY) { BlobType bt = new BlobType(); bt.readExternal(in); return bt; } GeometryType bt = new GeometryType(); bt.readExternal(in); return bt; } }
public static GeometryType getGeometryType(Geometry jtsGeom, int srid) { jtsGeom.setSRID(srid); byte[] bytes = getBytes(jtsGeom, true); GeometryType result = new GeometryType(bytes, srid); result.setGeoCache(jtsGeom); return result; }
public GeometryType(Blob blob, int srid) { super(blob); setSrid(srid); }
@TeiidFunction(name=SourceSystemFunctions.ST_ASBINARY, category=FunctionCategoryConstants.GEOMETRY, nullOnNull=true, pushdown=PushDown.CAN_PUSHDOWN) public static BlobType asBlob(GeometryType geometry) { Blob b = geometry.getReference(); return new BlobType(b); }
@TeiidFunction(name=SourceSystemFunctions.ST_SRID, category=FunctionCategoryConstants.GEOMETRY, nullOnNull=true, pushdown=PushDown.CAN_PUSHDOWN) public static int getSrid(GeometryType geom1) { return geom1.getSrid(); }
@TeiidFunction(name=SourceSystemFunctions.ST_SETSRID, category=FunctionCategoryConstants.GEOMETRY, nullOnNull=true, pushdown=PushDown.CAN_PUSHDOWN) public static GeometryType setSrid(GeometryType geom1, int srid) { GeometryType gt = new GeometryType(); gt.setReference(geom1.getReference()); gt.setSrid(srid); return gt; }
public static GeometryType geometryFromBlob(BlobType wkb, int srid) throws FunctionExecutionException { //return as geometry GeometryType gt = new GeometryType(wkb.getReference(), srid); //validate getGeometry(gt); return gt; }