private static void writeSimpleGeometry(DynamicSliceOutput output, GeometrySerializationType type, OGCGeometry geometry) { output.appendByte(type.code()); Geometry esriGeometry = requireNonNull(geometry.getEsriGeometry(), "esriGeometry is null"); byte[] shape = geometryToEsriShape(esriGeometry); output.appendBytes(shape); }
public static Slice serialize(Envelope envelope) { requireNonNull(envelope, "envelope is null"); verify(!envelope.isEmpty()); DynamicSliceOutput output = new DynamicSliceOutput(100); output.appendByte(GeometrySerializationType.ENVELOPE.code()); output.appendDouble(envelope.getXMin()); output.appendDouble(envelope.getYMin()); output.appendDouble(envelope.getXMax()); output.appendDouble(envelope.getYMax()); return output.slice(); }
private static void writeSimpleGeometry(DynamicSliceOutput output, GeometrySerializationType type, OGCGeometry geometry) { output.appendByte(type.code()); Geometry esriGeometry = requireNonNull(geometry.getEsriGeometry(), "esriGeometry is null"); byte[] shape = geometryToEsriShape(esriGeometry); output.appendBytes(shape); }
private static void writeGeometryCollection(Geometry collection, DynamicSliceOutput output) { output.appendByte(GeometrySerializationType.GEOMETRY_COLLECTION.code()); for (int geometryIndex = 0; geometryIndex < collection.getNumGeometries(); geometryIndex++) { Geometry geometry = collection.getGeometryN(geometryIndex); int startPosition = output.size(); // leave 4 bytes for the shape length output.appendInt(0); writeGeometry(geometry, output); int endPosition = output.size(); int length = endPosition - startPosition - Integer.BYTES; output.getUnderlyingSlice().setInt(startPosition, length); } }
private static void writeSimpleGeometry(DynamicSliceOutput output, GeometrySerializationType type, OGCGeometry geometry) { output.appendByte(type.code()); Geometry esriGeometry = requireNonNull(geometry.getEsriGeometry(), "esriGeometry is null"); byte[] shape = geometryToEsriShape(esriGeometry); output.appendBytes(shape); }
private static void writeGeometryCollection(DynamicSliceOutput output, OGCGeometryCollection collection) { output.appendByte(GeometrySerializationType.GEOMETRY_COLLECTION.code()); for (int geometryIndex = 0; geometryIndex < collection.numGeometries(); geometryIndex++) { OGCGeometry geometry = collection.geometryN(geometryIndex); int startPosition = output.size(); // leave 4 bytes for the shape length output.appendInt(0); writeGeometry(output, geometry); int endPosition = output.size(); int length = endPosition - startPosition - Integer.BYTES; output.getUnderlyingSlice().setInt(startPosition, length); } }
private static void writeSimpleGeometry(DynamicSliceOutput output, GeometrySerializationType type, OGCGeometry geometry) { output.appendByte(type.code()); Geometry esriGeometry = requireNonNull(geometry.getEsriGeometry(), "esriGeometry is null"); byte[] shape = geometryToEsriShape(esriGeometry); output.appendBytes(shape); }
private static void writePoint(DynamicSliceOutput output, OGCGeometry geometry) { Geometry esriGeometry = geometry.getEsriGeometry(); verify(esriGeometry instanceof Point, "geometry is expected to be an instance of Point"); Point point = (Point) esriGeometry; verify(!point.hasAttribute(VertexDescription.Semantics.Z) && !point.hasAttribute(VertexDescription.Semantics.M) && !point.hasAttribute(VertexDescription.Semantics.ID), "Only 2D points with no ID nor M attribute are supported"); output.appendByte(GeometrySerializationType.POINT.code()); if (!point.isEmpty()) { output.appendDouble(point.getX()); output.appendDouble(point.getY()); } else { output.appendDouble(NaN); output.appendDouble(NaN); } }
@Test public void testAppendMultiple() throws Exception { Slice actual = new DynamicSliceOutput(1) .appendByte(0) .appendByte(1) .appendByte(2) .appendByte(3) .appendByte(4) .slice(); Slice expected = Slices.wrappedBuffer(new byte[] {0, 1, 2, 3, 4}); assertEquals(actual, expected); }
@Test public void testEmpty() throws Exception { Slice expected = new DynamicSliceOutput(1) .appendByte(2) // format tag .appendByte(12) // p // number of entries .appendByte(0) .appendByte(0) .slice(); SparseHll hll = new SparseHll(12); assertSlicesEqual(hll.serialize(), expected); }
@Test public void testAppendByte() throws Exception { for (int i = Byte.MIN_VALUE; i <= Byte.MAX_VALUE; i++) { Slice actual = new DynamicSliceOutput(1) .appendByte(i) .slice(); Slice expected = Slices.wrappedBuffer(new byte[] {(byte) i}); assertEquals(actual, expected); } }
@Test public void testAppendUnsignedByte() throws Exception { for (int i = 0; i < 256; i++) { Slice actual = new DynamicSliceOutput(1) .appendByte(i) .slice(); Slice expected = Slices.wrappedBuffer(new byte[] {(byte) i}); assertEquals(actual, expected); } }
@Test public void testAppendByteTruncation() throws Exception { for (int i = 256; i < 512; i++) { Slice actual = new DynamicSliceOutput(1) .appendByte(i) .slice(); Slice expected = Slices.wrappedBuffer(new byte[] {(byte) i}); assertEquals(actual, expected); } }
@Test public void testAppendByte() throws Exception { for (int i = Byte.MIN_VALUE; i <= Byte.MAX_VALUE; i++) { Slice actual = new DynamicSliceOutput(1) .appendByte(i) .slice(); Slice expected = Slices.wrappedBuffer(new byte[] {(byte) i}); assertEquals(actual, expected); } }
@Test public void testAppendUnsignedByte() throws Exception { for (int i = 0; i < 256; i++) { Slice actual = new DynamicSliceOutput(1) .appendByte(i) .slice(); Slice expected = Slices.wrappedBuffer(new byte[] {(byte) i}); assertEquals(actual, expected); } }
@Test public void testAppendByteTruncation() throws Exception { for (int i = 256; i < 512; i++) { Slice actual = new DynamicSliceOutput(1) .appendByte(i) .slice(); Slice expected = Slices.wrappedBuffer(new byte[] {(byte) i}); assertEquals(actual, expected); } }
public static Slice serialize(Envelope envelope) { requireNonNull(envelope, "envelope is null"); verify(!envelope.isEmpty()); DynamicSliceOutput output = new DynamicSliceOutput(100); output.appendByte(GeometrySerializationType.ENVELOPE.code()); output.appendDouble(envelope.getXMin()); output.appendDouble(envelope.getYMin()); output.appendDouble(envelope.getXMax()); output.appendDouble(envelope.getYMax()); return output.slice(); }
public static Slice serialize(Envelope envelope) { requireNonNull(envelope, "envelope is null"); verify(!envelope.isEmpty()); DynamicSliceOutput output = new DynamicSliceOutput(100); output.appendByte(GeometrySerializationType.ENVELOPE.code()); output.appendDouble(envelope.getXMin()); output.appendDouble(envelope.getYMin()); output.appendDouble(envelope.getXMax()); output.appendDouble(envelope.getYMax()); return output.slice(); }
public static Slice serialize(Envelope envelope) { requireNonNull(envelope, "envelope is null"); verify(!envelope.isEmpty()); DynamicSliceOutput output = new DynamicSliceOutput(100); output.appendByte(GeometrySerializationType.ENVELOPE.code()); output.appendDouble(envelope.getXMin()); output.appendDouble(envelope.getYMin()); output.appendDouble(envelope.getXMax()); output.appendDouble(envelope.getYMax()); return output.slice(); }
private static void writeGeometryCollection(DynamicSliceOutput output, OGCGeometryCollection collection) { output.appendByte(GeometrySerializationType.GEOMETRY_COLLECTION.code()); for (int geometryIndex = 0; geometryIndex < collection.numGeometries(); geometryIndex++) { OGCGeometry geometry = collection.geometryN(geometryIndex); int startPosition = output.size(); // leave 4 bytes for the shape length output.appendInt(0); writeGeometry(output, geometry); int endPosition = output.size(); int length = endPosition - startPosition - Integer.BYTES; output.getUnderlyingSlice().setInt(startPosition, length); } }