package com.revolsys.record.io.format.shp; import java.io.File; import com.revolsys.io.FileUtil; import com.revolsys.record.ArrayRecord; import com.revolsys.record.Record; import com.revolsys.record.io.RecordWriter; import com.revolsys.record.query.Query; import com.revolsys.record.schema.AbstractRecordStore; import com.revolsys.record.schema.RecordDefinition; public class ShapefileRecordStore extends AbstractRecordStore { private ShapefileDirectoryWriter writer; public ShapefileRecordStore(final File directory) { directory.mkdirs(); this.writer = new ShapefileDirectoryWriter(directory); this.writer.setLogCounts(false); } @Override public void close() { super.close(); FileUtil.closeSilent(this.writer); this.writer = null; } @Override public int getRecordCount(final Query query) { return 0; } @Override public RecordDefinition getRecordDefinition(final String typePath) { return this.writer.getRecordDefinition(typePath); } @Override public String getRecordStoreType() { return ShapefileConstants.DESCRIPTION; } @Override public void insertRecord(final Record record) { this.writer.write(record); } @Override public Record newRecord(final RecordDefinition recordDefinition) { final String typePath = recordDefinition.getPath(); final RecordDefinition savedRecordDefinition = getRecordDefinition(typePath); if (savedRecordDefinition == null) { return new ArrayRecord(recordDefinition); } else { return new ArrayRecord(savedRecordDefinition); } } @Override public RecordWriter newRecordWriter() { return this.writer; } }