package com.revolsys.record.io; import com.revolsys.collection.map.MapEx; import com.revolsys.geometry.io.GeometryWriter; import com.revolsys.geometry.model.Geometry; import com.revolsys.geometry.model.GeometryFactory; import com.revolsys.io.AbstractWriter; import com.revolsys.record.ArrayRecord; import com.revolsys.record.Record; import com.revolsys.record.Records; import com.revolsys.record.schema.RecordDefinition; public class RecordWriterGeometryWriter extends AbstractWriter<Geometry> implements GeometryWriter { private final RecordWriter writer; public RecordWriterGeometryWriter(final RecordWriter writer) { this.writer = writer; } @Override public void close() { this.writer.close(); } @Override public void flush() { this.writer.flush(); } @Override public MapEx getProperties() { return this.writer.getProperties(); } @Override public <V> V getProperty(final String name) { return (V)this.writer.getProperty(name); } @Override public void setGeometryFactory(final GeometryFactory geometryFactory) { setProperty("geometryFactory", geometryFactory); } @Override public void setProperty(final String name, final Object value) { this.writer.setProperty(name, value); } @Override public void write(final Geometry geometry) { final RecordDefinition recordDefinition = Records.newGeometryRecordDefinition(); final Record object = new ArrayRecord(recordDefinition); object.setGeometryValue(geometry); this.writer.write(object); } }