private PlatformEntity convertToPlatform(FeatureEntity entity, DbQuery query) { PlatformEntity result = new PlatformEntity(); result.setIdentifier(entity.getIdentifier()); result.setId(entity.getId()); result.setName(entity.getName()); result.setParameters(entity.getParameters()); result.setTranslations(entity.getTranslations()); result.setDescription(entity.getDescription()); result.setGeometry(getGeometry(entity.getGeometryEntity(), query)); return result; }
private PlatformOutput createCondensed(PlatformEntity entity, DbQuery parameters) { PlatformOutput result = new PlatformOutput(entity.getPlatformType()); result.setLabel(entity.getLabelFrom(parameters.getLocale())); result.setId(Long.toString(entity.getPkid())); result.setDomainId(entity.getDomainId()); result.setHrefBase(urHelper.getPlatformsHrefBaseUrl(parameters.getHrefBase())); return result; }
private PlatformEntity convertToPlatform(FeatureEntity entity) { PlatformEntity result = new PlatformEntity(); result.setDomainId(entity.getDomainId()); result.setPkid(entity.getPkid()); result.setName(entity.getName()); result.setTranslations(entity.getTranslations()); result.setDescription(entity.getDescription()); result.setGeometry(entity.getGeometry()); return result; }
protected V addMetadatasIfNeeded(E observation, V value, S dataset, DbQuery query) { // TODO move to appropriate location addResultTime(observation, value); if (query.isExpanded()) { addValidTime(observation, value); addParameters(observation, value, query); addGeometry(observation, value, query); } else { if (dataset.getPlatform() .isMobile()) { addGeometry(observation, value, query); } } return value; }
@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; }
private PlatformOutput createExpanded(PlatformEntity entity, DbQuery parameters, Session session) throws DataAccessException { PlatformOutput result = createCondensed(entity, parameters); DbQuery query = DbQuery.createFrom(parameters.getParameters() .extendWith(Parameters.PLATFORMS, result.getId()) .removeAllOf(Parameters.FILTER_PLATFORM_TYPES)); List<DatasetOutput> datasets = seriesRepository.getAllCondensed(query); result.setDatasets(datasets); Geometry geometry = entity.getGeometry(); result.setGeometry(geometry == null ? getLastSamplingGeometry(datasets, query, session) : geometry); return result; }
@Override public TextValue createSeriesValueFor(TextDataEntity observation, TextDatasetEntity series, DbQuery query) { if (observation == null) { // do not fail on empty observations return null; } long timeend = observation.getTimeend().getTime(); long timestart = observation.getTimestart().getTime(); String observationValue = !getServiceInfo().isNoDataValue(observation) ? observation.getValue() : null; TextValue value = query.getParameters().isShowTimeIntervals() ? new TextValue(timestart, timeend, observationValue) : new TextValue(timeend, observationValue); if (query.isExpanded()) { addGeometry(observation, value); addValidTime(observation, value); } else if (series.getPlatform().isMobile()) { addGeometry(observation, value); } return value; }
@Override public CountValue createSeriesValueFor(CountDataEntity observation, CountDatasetEntity series, DbQuery query) { if (observation == null) { // do not fail on empty observations return null; } long timestart = observation.getTimestart().getTime(); long timeend = observation.getTimeend().getTime(); Integer observationValue = !getServiceInfo().isNoDataValue(observation) ? observation.getValue() : null; CountValue value = query.getParameters().isShowTimeIntervals() ? new CountValue(timestart, timeend, observationValue) : new CountValue(timeend, observationValue); if (query.isExpanded()) { addGeometry(observation, value); addValidTime(observation, value); } else if (series.getPlatform().isMobile()) { addGeometry(observation, value); } return value; }
@Override public MeasurementValue createSeriesValueFor(MeasurementDataEntity observation, MeasurementDatasetEntity series, DbQuery query) { if (observation == null) { // do not fail on empty observations return null; } long timeend = observation.getTimeend().getTime(); long timestart = observation.getTimestart().getTime(); Double observationValue = !getServiceInfo().isNoDataValue(observation) ? format(observation, series) : null; MeasurementValue value = query.getParameters().isShowTimeIntervals() ? new MeasurementValue(timestart, timeend, observationValue) : new MeasurementValue(timeend, observationValue); if (query.isExpanded()) { addGeometry(observation, value); addValidTime(observation, value); addParameter(observation, value); } else if (series.getPlatform().isMobile()) { addGeometry(observation, value); } return value; }