package org.geotoolkit.pending.demo.processing;
import java.net.URI;
import org.geotoolkit.data.FeatureStore;
import org.geotoolkit.db.postgres.PostgresFeatureStoreFactory;
import org.geotoolkit.data.shapefile.ShapefileFeatureStoreFactory;
import org.geotoolkit.utility.parameter.ParametersExt;
import org.geotoolkit.process.Process;
import org.geotoolkit.processing.datastore.copy.CopyDescriptor;
import org.geotoolkit.storage.DataStores;
import org.opengis.parameter.ParameterValueGroup;
/**
* Copy between feature stores.
*/
public class FeatureCopyDemo {
public static void main(String[] args) throws Exception {
final ParameterValueGroup shpParams = ShapefileFeatureStoreFactory.PARAMETERS_DESCRIPTOR.createValue();
ParametersExt.getOrCreateValue(shpParams,"path").setValue(URI.create("file:/...someshapefile"));
final FeatureStore source = (FeatureStore) DataStores.open(shpParams);
final ParameterValueGroup pgParams = PostgresFeatureStoreFactory.PARAMETERS_DESCRIPTOR.createValue();
ParametersExt.getOrCreateValue(pgParams,"host").setValue("host");
ParametersExt.getOrCreateValue(pgParams,"port").setValue(5432);
ParametersExt.getOrCreateValue(pgParams,"database").setValue("database");
ParametersExt.getOrCreateValue(pgParams,"user").setValue("user");
ParametersExt.getOrCreateValue(pgParams,"password").setValue("secret");
final FeatureStore target = (FeatureStore) DataStores.open(pgParams);
final ParameterValueGroup copyParams = CopyDescriptor.INPUT_DESC.createValue();
ParametersExt.getOrCreateValue(copyParams, "source_datastore").setValue(source);
ParametersExt.getOrCreateValue(copyParams, "target_datastore").setValue(target);
final Process process = CopyDescriptor.INSTANCE.createProcess(copyParams);
process.call();
}
}