// header start
package org.geotools.tutorial.datastore;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.Collections;
import java.util.List;
import org.geotools.data.Query;
import org.geotools.data.store.ContentDataStore;
import org.geotools.data.store.ContentEntry;
import org.geotools.data.store.ContentFeatureSource;
import org.geotools.feature.NameImpl;
import org.opengis.feature.type.Name;
import com.csvreader.CsvReader;
public class CSVDataStore extends ContentDataStore {
// header end
// constructor start
File file;
public CSVDataStore( File file ){
this.file = file;
}
// constructor end
/**
* Allow read access to file; for our package visibile "friends".
* Please close the reader when done.
* @return CsvReader for file
*/
CsvReader read() throws IOException {
Reader reader = new FileReader(file);
CsvReader csvReader = new CsvReader(reader);
csvReader.close();
return csvReader;
}
// createTypeNames start
protected List<Name> createTypeNames() throws IOException {
String name = file.getName();
name = name.substring(0, name.lastIndexOf('.'));
Name typeName = new NameImpl( name );
return Collections.singletonList(typeName);
}
// createTypeNames end
@Override
protected ContentFeatureSource createFeatureSource(ContentEntry entry) throws IOException {
return new CSVFeatureSource(entry, Query.ALL);
}
}