@Override protected PlatformOutput createExpanded(PlatformEntity entity, DbQuery query, Session session) throws DataAccessException { PlatformOutput result = createCondensed(entity, query, session); DbQuery platformQuery = getDbQuery(query.getParameters().extendWith(Parameters.PLATFORMS, result.getId()) .removeAllOf(Parameters.FILTER_PLATFORM_TYPES).removeAllOf(Parameters.FILTER_FIELDS)); DbQuery datasetQuery = getDbQuery(platformQuery.getParameters().removeAllOf(Parameters.BBOX).removeAllOf(Parameters.NEAR) .removeAllOf(Parameters.ODATA_FILTER).removeAllOf(Parameters.FILTER_FIELDS)); List<DatasetOutput<AbstractValue<?>>> datasets = seriesRepository.getAllCondensed(datasetQuery); Geometry geometry = entity.getGeometry() == null ? getLastSamplingGeometry(datasets, platformQuery, session) : entity.getGeometry(); if (!matchesSpatialFilter(geometry, query)) { return null; } Set<Map<String, Object>> parameters = entity.getMappedParameters(query.getLocale()); result.setValue(PlatformOutput.GEOMETRY, geometry, query.getParameters(), result::setGeometry); result.setValue(PlatformOutput.DATASETS, datasets, query.getParameters(), result::setDatasets); result.setValue(PlatformOutput.PARAMETERS, parameters, query.getParameters(), result::setParameters); return result; }