package mil.nga.giat.geowave.datastore.hbase; import mil.nga.giat.geowave.core.store.DataStore; import mil.nga.giat.geowave.core.store.StoreFactoryOptions; import mil.nga.giat.geowave.datastore.hbase.index.secondary.HBaseSecondaryIndexDataStore; import mil.nga.giat.geowave.datastore.hbase.metadata.HBaseAdapterIndexMappingStore; import mil.nga.giat.geowave.datastore.hbase.metadata.HBaseAdapterStore; import mil.nga.giat.geowave.datastore.hbase.metadata.HBaseDataStatisticsStore; import mil.nga.giat.geowave.datastore.hbase.metadata.HBaseIndexStore; import mil.nga.giat.geowave.datastore.hbase.operations.BasicHBaseOperations; import mil.nga.giat.geowave.datastore.hbase.operations.config.HBaseOptions; import mil.nga.giat.geowave.datastore.hbase.operations.config.HBaseRequiredOptions; public class HBaseDataStoreFactory extends AbstractHBaseStoreFactory<DataStore> { @Override public DataStore createStore( final StoreFactoryOptions options ) { if (!(options instanceof HBaseRequiredOptions)) { throw new AssertionError( "Expected " + HBaseRequiredOptions.class.getSimpleName()); } final HBaseRequiredOptions opts = (HBaseRequiredOptions) options; if (opts.getAdditionalOptions() == null) { opts.setAdditionalOptions(new HBaseOptions()); } final BasicHBaseOperations hbaseOperations = createOperations(opts); return new HBaseDataStore( new HBaseIndexStore( hbaseOperations), new HBaseAdapterStore( hbaseOperations), new HBaseDataStatisticsStore( hbaseOperations), new HBaseAdapterIndexMappingStore( hbaseOperations), new HBaseSecondaryIndexDataStore( hbaseOperations), hbaseOperations, opts.getAdditionalOptions()); } }