package com.revolsys.record.io.format.xlsx;
import java.io.OutputStream;
import java.nio.charset.Charset;
import com.revolsys.record.Record;
import com.revolsys.record.RecordFactory;
import com.revolsys.record.io.AbstractRecordIoFactory;
import com.revolsys.record.io.RecordReader;
import com.revolsys.record.io.RecordWriter;
import com.revolsys.record.io.RecordWriterFactory;
import com.revolsys.record.schema.RecordDefinition;
import com.revolsys.spring.resource.Resource;
public class Xlsx extends AbstractRecordIoFactory implements RecordWriterFactory {
public static final String DESCRIPTION = "Excel Workbook";
public static final String FILE_EXTENSION = "xlsx";
public static final String MEDIA_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
public static final char QUOTE_CHARACTER = '"';
public Xlsx() {
super(Xlsx.DESCRIPTION);
addMediaTypeAndFileExtension(Xlsx.MEDIA_TYPE, Xlsx.FILE_EXTENSION);
}
@Override
public RecordReader newRecordReader(final Object source,
final RecordFactory<? extends Record> factory) {
final Resource resource = Resource.getResource(source);
return new XlsxRecordReader(resource, factory);
}
@Override
public RecordReader newRecordReader(final Resource resource,
final RecordFactory<? extends Record> recordFactory) {
return new XlsxRecordReader(resource, recordFactory);
}
@Override
public RecordWriter newRecordWriter(final RecordDefinition recordDefinition,
final Resource resource) {
return new XlsxRecordWriter(recordDefinition, resource);
}
@Override
public RecordWriter newRecordWriter(final String baseName,
final RecordDefinition recordDefinition, final OutputStream outputStream,
final Charset charset) {
return new XlsxRecordWriter(recordDefinition, outputStream);
}
}