package mil.nga.giat.geowave.adapter.vector.plugin.transaction;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import mil.nga.giat.geowave.adapter.vector.GeotoolsFeatureDataAdapter;
import mil.nga.giat.geowave.adapter.vector.plugin.GeoWaveDataStoreComponents;
import mil.nga.giat.geowave.core.index.ByteArrayId;
import mil.nga.giat.geowave.core.store.CloseableIterator;
import mil.nga.giat.geowave.core.store.adapter.statistics.DataStatistics;
import org.opengis.feature.simple.SimpleFeature;
public abstract class AbstractTransactionManagement implements
GeoWaveTransaction
{
protected final GeoWaveDataStoreComponents components;
public AbstractTransactionManagement(
final GeoWaveDataStoreComponents components ) {
super();
this.components = components;
}
@Override
@SuppressWarnings("unchecked")
public Map<ByteArrayId, DataStatistics<SimpleFeature>> getDataStatistics() {
final Map<ByteArrayId, DataStatistics<SimpleFeature>> stats = new HashMap<ByteArrayId, DataStatistics<SimpleFeature>>();
final GeotoolsFeatureDataAdapter adapter = components.getAdapter();
try (CloseableIterator<DataStatistics<?>> it = components.getStatsStore().getDataStatistics(
adapter.getAdapterId(),
composeAuthorizations())) {
while (it.hasNext()) {
final DataStatistics<?> stat = it.next();
stats.put(
stat.getStatisticsId(),
(DataStatistics<SimpleFeature>) stat);
}
}
catch (final Exception e) {
GeoWaveTransactionManagement.LOGGER.error(
"Failed to access statistics from data store",
e);
}
return stats;
}
}