/* GeoTools - The Open Source Java GIS Toolkit
* http://geotools.org
*
* (C) 2010-2014, Open Source Geospatial Foundation (OSGeo)
*
* This file is hereby placed into the Public Domain. This means anyone is
* free to do whatever they wish with this file. Use it well and enjoy!
*/
// header start
package org.geotools.tutorial.csv;
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;
/**
* DataStore for Comma Seperated Value (CSV) files.
*
* @author Jody Garnett (Boundless)
*/
public class CSVDataStore extends ContentDataStore {
// header end
// constructor start
File file;
public CSVDataStore( File file ){
this.file = file;
}
// constructor end
// reader start
/**
* Allow read access to file; for our package visible "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);
return csvReader;
}
// reader end
// 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
// createFeatureSource start
@Override
protected ContentFeatureSource createFeatureSource(ContentEntry entry) throws IOException {
return new CSVFeatureSource(entry, Query.ALL);
}
// createFeatureSource end
}