package com.revolsys.record.io.format.cogojson; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.nio.charset.Charset; import com.revolsys.geometry.io.GeometryReader; import com.revolsys.io.FileUtil; import com.revolsys.record.io.GeometryRecordReaderFactory; import com.revolsys.record.io.RecordWriter; import com.revolsys.record.io.RecordWriterFactory; import com.revolsys.record.io.format.geojson.GeoJsonGeometryReader; import com.revolsys.record.io.format.geojson.GeoJsonRecordWriter; import com.revolsys.record.schema.RecordDefinition; import com.revolsys.spring.resource.Resource; public class CogoJson extends GeometryRecordReaderFactory implements RecordWriterFactory { public static final String COGO_LINE_STRING = "CogoLineString"; public static final String COGO_MULTI_LINE_STRING = "CogoMultiLineString"; public static final String COGO_MULTI_POLYGON = "CogoMultiPolygon"; public static final String COGO_POLYGON = "CogoPolygon"; public CogoJson() { super("CogoJSON"); addMediaTypeAndFileExtension("application/x-cogo+json", "cogojson"); } @Override public boolean isReadFromZipFileSupported() { return true; } @Override public GeometryReader newGeometryReader(final Resource resource) { final GeoJsonGeometryReader iterator = new GeoJsonGeometryReader(resource); return iterator; } @Override public RecordWriter newRecordWriter(final String baseName, final RecordDefinition recordDefinition, final OutputStream outputStream, final Charset charset) { final OutputStreamWriter writer = FileUtil.newUtf8Writer(outputStream); return new GeoJsonRecordWriter(writer, true); } }