package com.revolsys.record.io; import com.revolsys.io.IoFactoryRegistry; import com.revolsys.io.Writer; import com.revolsys.record.Record; import com.revolsys.record.io.format.pointz.PointZIoFactory; import com.revolsys.record.schema.RecordDefinition; public interface RecordIo { static void copyRecords(final Iterable<? extends Record> reader, final Writer<Record> writer) { if (reader != null && writer != null) { for (final Record record : reader) { writer.write(record); } } } static void copyRecords(final Object source, final Object target) { try ( RecordReader reader = RecordReader.newRecordReader(source)) { if (reader == null) { throw new IllegalArgumentException("Unable to read " + source); } else { copyRecords(reader, target); } } } static void copyRecords(final Object source, final Writer<Record> writer) { try ( RecordReader reader = RecordReader.newRecordReader(source)) { if (reader == null) { throw new IllegalArgumentException("Unable to read " + source); } else { copyRecords((Iterable<Record>)reader, writer); } } } static void copyRecords(final RecordDefinition recordDefinition, final Iterable<? extends Record> records, final Object target) { try ( RecordWriter writer = RecordWriter.newRecordWriter(recordDefinition, target)) { if (writer == null) { throw new IllegalArgumentException("Unable to create writer " + target); } else { copyRecords(records, writer); } } } static void copyRecords(final RecordReader reader, final Object target) { if (reader != null) { final RecordDefinition recordDefinition = reader.getRecordDefinition(); copyRecords(recordDefinition, reader, target); } } public static void ioFactoryInit() { IoFactoryRegistry.addFactory(new PointZIoFactory()); } }