package org.geotools.data.csv;
import java.awt.RenderingHints.Key;
import java.io.File;
import java.io.IOException;
import java.io.Serializable;
import java.util.Map;
import org.geotools.data.DataStore;
import org.geotools.data.DataStoreFactorySpi;
import org.geotools.util.KVP;
public class CSVDataStoreFactory implements DataStoreFactorySpi {
private static final String FILE_TYPE = "csv";
public static final Param FILE_PARAM = new Param("file", File.class,
FILE_TYPE + " file",true, null,
new KVP(Param.EXT,FILE_TYPE));
public String getDisplayName() {
return FILE_TYPE.toUpperCase();
}
public String getDescription() {
return "Comma delimited text file";
}
public Param[] getParametersInfo() {
return new Param[]{ FILE_PARAM };
}
public boolean canProcess(Map<String, Serializable> params) {
try {
File file = (File) FILE_PARAM.lookUp(params);
if ( file != null ){
return file.getPath().toLowerCase().endsWith("." + FILE_TYPE);
}
} catch (IOException e) {
// ignore
}
return false;
}
public boolean isAvailable() {
return true;
}
public Map<Key, ?> getImplementationHints() {
return null;
}
public DataStore createDataStore(Map<String, Serializable> params) throws IOException {
File file = (File) FILE_PARAM.lookUp(params);
return new CSVDataStore(file);
}
public DataStore createNewDataStore(Map<String, Serializable> params) throws IOException {
return null;
}
}