package mil.nga.giat.geowave.analytic.mapreduce; import java.util.Arrays; import java.util.Collection; import org.apache.hadoop.conf.Configuration; import mil.nga.giat.geowave.analytic.PropertyManagement; import mil.nga.giat.geowave.analytic.param.FormatConfiguration; import mil.nga.giat.geowave.analytic.param.ParameterEnum; import mil.nga.giat.geowave.analytic.param.StoreParameters.StoreParam; import mil.nga.giat.geowave.analytic.store.PersistableStore; import mil.nga.giat.geowave.core.store.operations.remote.options.DataStorePluginOptions; import mil.nga.giat.geowave.mapreduce.input.GeoWaveInputFormat; import mil.nga.giat.geowave.mapreduce.output.GeoWaveOutputFormat; public class GeoWaveOutputFormatConfiguration implements FormatConfiguration { /** * Captures the state, but the output format is flexible enough to deal with * both. * */ protected boolean isDataWritable = false; @Override public void setup( final PropertyManagement runTimeProperties, final Configuration configuration ) throws Exception { final DataStorePluginOptions dataStoreOptions = ((PersistableStore) runTimeProperties .getProperty(StoreParam.INPUT_STORE)).getDataStoreOptions(); GeoWaveOutputFormat.setStoreOptions( configuration, dataStoreOptions); } @Override public Class<?> getFormatClass() { return GeoWaveOutputFormat.class; } @Override public boolean isDataWritable() { return isDataWritable; } @Override public void setDataIsWritable( final boolean isWritable ) { isDataWritable = isWritable; } @Override public Collection<ParameterEnum<?>> getParameters() { return Arrays.asList(new ParameterEnum<?>[] { StoreParam.INPUT_STORE }); } }