package au.org.aurin.wif.io;
import static org.geotools.data.postgis.PostgisNGDataStoreFactory.PORT;
import static org.geotools.jdbc.JDBCDataStoreFactory.DATABASE;
import static org.geotools.jdbc.JDBCDataStoreFactory.DBTYPE;
import static org.geotools.jdbc.JDBCDataStoreFactory.FETCHSIZE;
import static org.geotools.jdbc.JDBCDataStoreFactory.HOST;
import static org.geotools.jdbc.JDBCDataStoreFactory.PASSWD;
import static org.geotools.jdbc.JDBCDataStoreFactory.SCHEMA;
import static org.geotools.jdbc.JDBCDataStoreFactory.USER;
import static org.geotools.jdbc.JDBCDataStoreFactory.VALIDATECONN;
import java.util.HashMap;
import java.util.Map;
/**
* This class is used to store the Postgis data store configuration. This makes
* it easy to iniatialise the Postgis configuration as a bean in spring and
* provide the getDataStoreParams as an accessor method for the instatiation of
* PostgisDataSource object.
*
* @author Gerson Galang
*/
public class PostgisDataStoreConfig implements DataStoreConfig {
private final Map<String, Object> dataStoreParams = new HashMap<String, Object>();
public PostgisDataStoreConfig() {
// set default values on the data store params
// TODO put the values here in a Constants class
dataStoreParams.put(PORT.key, "5432");
dataStoreParams.put(DBTYPE.key, "postgis");
dataStoreParams.put(VALIDATECONN.key, true);
dataStoreParams.put(FETCHSIZE.key, 1000);
}
public void setHost(final String host) {
dataStoreParams.put(HOST.key, host);
}
public void setDatabaseName(final String databaseName) {
dataStoreParams.put(DATABASE.key, databaseName);
}
public void setPort(final String port) {
dataStoreParams.put(PORT.key, port);
}
public void setUser(final String user) {
dataStoreParams.put(USER.key, user);
}
public void setPassword(final String password) {
dataStoreParams.put(PASSWD.key, password);
}
public void setDatabaseType(final String databaseType) {
dataStoreParams.put(DBTYPE.key, databaseType);
}
public void setSchema(final String schema) {
dataStoreParams.put(SCHEMA.key, schema);
}
public void setValidateConnection(final boolean validateConnection) {
dataStoreParams.put(VALIDATECONN.key, Boolean.valueOf(validateConnection));
}
public Map<String, Object> getDataStoreParams() {
return this.dataStoreParams;
}
}