package mil.nga.giat.geowave.datastore.accumulo; import mil.nga.giat.geowave.core.store.DataStore; import mil.nga.giat.geowave.core.store.StoreFactoryOptions; import mil.nga.giat.geowave.datastore.accumulo.index.secondary.AccumuloSecondaryIndexDataStore; import mil.nga.giat.geowave.datastore.accumulo.metadata.AccumuloAdapterIndexMappingStore; import mil.nga.giat.geowave.datastore.accumulo.metadata.AccumuloAdapterStore; import mil.nga.giat.geowave.datastore.accumulo.metadata.AccumuloDataStatisticsStore; import mil.nga.giat.geowave.datastore.accumulo.metadata.AccumuloIndexStore; import mil.nga.giat.geowave.datastore.accumulo.operations.config.AccumuloOptions; import mil.nga.giat.geowave.datastore.accumulo.operations.config.AccumuloRequiredOptions; public class AccumuloDataStoreFactory extends AbstractAccumuloStoreFactory<DataStore> { @Override public DataStore createStore( final StoreFactoryOptions options ) { if (!(options instanceof AccumuloRequiredOptions)) { throw new AssertionError( "Expected " + AccumuloRequiredOptions.class.getSimpleName()); } AccumuloRequiredOptions opts = (AccumuloRequiredOptions) options; if (opts.getAdditionalOptions() == null) { opts.setAdditionalOptions(new AccumuloOptions()); } BasicAccumuloOperations accumuloOperations = createOperations(opts); return new AccumuloDataStore( new AccumuloIndexStore( accumuloOperations), new AccumuloAdapterStore( accumuloOperations), new AccumuloDataStatisticsStore( accumuloOperations), new AccumuloSecondaryIndexDataStore( accumuloOperations, opts.getAdditionalOptions()), new AccumuloAdapterIndexMappingStore( accumuloOperations), accumuloOperations, opts.getAdditionalOptions()); } }