package com.revolsys.record.io.format.pointz; import java.io.OutputStream; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import com.revolsys.geometry.io.GeometryReader; import com.revolsys.geometry.io.GeometryWriter; import com.revolsys.geometry.io.GeometryWriterFactory; import com.revolsys.record.io.GeometryRecordReaderFactory; import com.revolsys.spring.resource.OutputStreamResource; import com.revolsys.spring.resource.Resource; public class PointZIoFactory extends GeometryRecordReaderFactory implements GeometryWriterFactory { public static final short VERSION = 1; public static final String FILE_TYPE_POINTZ = "POINTZ"; public static final byte[] FILE_TYPE_POINTZ_BYTES = FILE_TYPE_POINTZ .getBytes(StandardCharsets.UTF_8); public static final int HEADER_SIZE = 28; public static final int RECORD_SIZE = 12; public PointZIoFactory() { super("Compact Binary PointZ"); addMediaTypeAndFileExtension("application/x-revolsys-pointz", "pointz"); } @Override public boolean isCustomFieldsSupported() { return false; } @Override public GeometryReader newGeometryReader(final Resource resource) { return new PointZGeometryReader(resource); } @Override public GeometryWriter newGeometryWriter(final Resource resource) { return new PointZGeometryWriter(resource); } @Override public GeometryWriter newGeometryWriter(final String baseName, final OutputStream out, final Charset charset) { final OutputStreamResource resource = new OutputStreamResource(baseName, out); return newGeometryWriter(resource); } }