@Override public void writeFeature(RevFeature feature, DataOutput target) throws IOException { if (feature instanceof LazyRevFeature) { fastEncode((LazyRevFeature) feature, target); return;
@Test public void testLazyRevFeatureForEach() throws IOException { LazyRevFeature decoded; { ByteArrayDataOutput target = ByteStreams.newDataOutput(); encoder.writeFeature(feature, target); byte[] encoded = target.toByteArray(); decoded = (LazyRevFeature) encoder.readFeature(null, ByteStreams.newDataInput(encoded)); } List<Object> values = new ArrayList<>(); decoded.forEach((v) -> values.add(v)); assertEquals(this.values, values); } }
@Test public void testWriteFeatureFastPath() throws IOException { ByteArrayDataOutput target = ByteStreams.newDataOutput(); encoder.writeFeature(feature, target); byte[] encoded = target.toByteArray(); LazyRevFeature decoded = (LazyRevFeature) encoder.readFeature(null, ByteStreams.newDataInput(encoded)); target = ByteStreams.newDataOutput(); encoder.fastEncode(decoded, target); encoded = target.toByteArray(); LazyRevFeature decoded2 = (LazyRevFeature) encoder.readFeature(null, ByteStreams.newDataInput(encoded)); assertTrue(decoded instanceof LazyRevFeature); assertEquals(feature, decoded); assertTrue(decoded.equals(feature)); assertEquals(feature.getValues(), decoded.getValues()); assertEquals(feature, decoded2); assertEquals(feature.getValues(), decoded2.getValues()); }
@Test public void testWriteFeatureFastPath() throws IOException { ByteArrayDataOutput target = ByteStreams.newDataOutput(); encoder.writeFeature(feature, target); byte[] encoded = target.toByteArray(); LazyRevFeature decoded = (LazyRevFeature) encoder.readFeature(null, ByteStreams.newDataInput(encoded)); target = ByteStreams.newDataOutput(); encoder.fastEncode(decoded, target); encoded = target.toByteArray(); LazyRevFeature decoded2 = (LazyRevFeature) encoder.readFeature(null, ByteStreams.newDataInput(encoded)); assertTrue(decoded instanceof LazyRevFeature); assertEquals(feature, decoded); assertTrue(decoded.equals(feature)); assertEquals(feature.getValues(), decoded.getValues()); assertEquals(feature, decoded2); assertEquals(feature.getValues(), decoded2.getValues()); }
@Test public void testLazyRevFeatureForEach() throws IOException { LazyRevFeature decoded; { ByteArrayDataOutput target = ByteStreams.newDataOutput(); encoder.writeFeature(feature, target); byte[] encoded = target.toByteArray(); decoded = (LazyRevFeature) encoder.readFeature(null, ByteStreams.newDataInput(encoded)); } List<Object> values = new ArrayList<>(); decoded.forEach((v) -> values.add(v)); assertEquals(this.values, values); } }
@Override public void writeFeature(RevFeature feature, DataOutput target) throws IOException { if (feature instanceof LazyRevFeature) { fastEncode((LazyRevFeature) feature, target); return;
@Test public void testWriteFeatureSlowPath() throws IOException { ByteArrayDataOutput target = ByteStreams.newDataOutput(); encoder.writeFeature(feature, target); byte[] encoded = target.toByteArray(); RevFeature decoded = encoder.readFeature(null, ByteStreams.newDataInput(encoded)); assertTrue(decoded instanceof LazyRevFeature); assertEquals(feature, decoded); assertTrue(decoded.equals(feature)); assertEquals(feature.getValues(), decoded.getValues()); }
@Test public void testWriteFeatureSlowPath() throws IOException { ByteArrayDataOutput target = ByteStreams.newDataOutput(); encoder.writeFeature(feature, target); byte[] encoded = target.toByteArray(); RevFeature decoded = encoder.readFeature(null, ByteStreams.newDataInput(encoded)); assertTrue(decoded instanceof LazyRevFeature); assertEquals(feature, decoded); assertTrue(decoded.equals(feature)); assertEquals(feature.getValues(), decoded.getValues()); }
@Test public void testLazyRevFeatureProvidedGeometryFactory() throws IOException { LazyRevFeature decoded; { ByteArrayDataOutput target = ByteStreams.newDataOutput(); encoder.writeFeature(feature, target); byte[] encoded = target.toByteArray(); decoded = (LazyRevFeature) encoder.readFeature(null, ByteStreams.newDataInput(encoded)); } GeometryFactory provided = new GeometryFactory(); Geometry g1 = (Geometry) decoded.get(geomIndex).orNull(); assertNotSame(geom, g1); assertEquals(geom, g1); Geometry g2 = decoded.get(geomIndex, provided).orNull(); assertEquals(geom, g2); assertNotSame(g1, g2); assertSame(provided, g2.getFactory()); }
@Test public void testLazyRevFeatureProvidedGeometryFactory() throws IOException { LazyRevFeature decoded; { ByteArrayDataOutput target = ByteStreams.newDataOutput(); encoder.writeFeature(feature, target); byte[] encoded = target.toByteArray(); decoded = (LazyRevFeature) encoder.readFeature(null, ByteStreams.newDataInput(encoded)); } GeometryFactory provided = new GeometryFactory(); Geometry g1 = (Geometry) decoded.get(geomIndex).orNull(); assertNotSame(geom, g1); assertEquals(geom, g1); Geometry g2 = decoded.get(geomIndex, provided).orNull(); assertEquals(geom, g2); assertNotSame(g1, g2); assertSame(provided, g2.getFactory()); }