private Geometry getLastSamplingGeometry(List<DatasetOutput> datasets, DbQuery query, Session session) throws DataAccessException {
AbstractValue<?> currentLastValue = null;
for (DatasetOutput dataset : datasets) {
try {
String id = dataset.getId();
DataRepository dataRepository = factory.create(dataset.getDatasetType());
DatasetEntity entity = seriesRepository.getInstanceEntity(id, query, session);
AbstractValue<?> valueToCheck = dataRepository.getLastValue(entity, session, query);
currentLastValue = getLaterValue(currentLastValue, valueToCheck);
} catch (DatasetFactoryException e) {
LOGGER.error("Couldn't create data repository to determing last value of dataset '{}'", dataset.getId());
}
}
return currentLastValue != null && currentLastValue.isSetGeometry()
? currentLastValue.getGeometry()
: null;
}