private DatasetOutput< ? > getTimeseriesMetadataOutput(String datasetId) { for (DatasetOutput< ? > output : getMetadataOutputs()) { if (output.getId() .equals(datasetId)) { return output; } } return null; }
private static void associateBackwardsCompatibleSingleStyle(IoParameters parameters, List< ? extends DatasetOutput< ? >> metadatas, Map<String, StyleProperties> styles) { if (styles.isEmpty() && metadatas.size() == 1) { // no referenced styles are given so associate // backwards compatible single style DatasetOutput< ? > metadata = metadatas.get(0); styles.put(metadata.getId(), parameters.getSingleStyle()); } }
private boolean hasSeriesConfiguration(T output) { return renderingConfig.getTimeseriesStyles() .containsKey(output.getId()); }
private RenderingHintsExtensionConfig.ConfiguredStyle getSeriesStyle(T output) { return renderingConfig.getTimeseriesStyles() .get(output.getId()); }
private Set<String> getResultTimes(IoParameters parameters, DatasetOutput output) { return service.getResultTimeList(parameters, output.getId()); }
private boolean hasSeriesConfiguration(T output) { Map<String, ConfigInterval> intervals = intervalConfig.getTimeseriesIntervals(); return intervals.containsKey(output.getId()); }
private boolean hasPhenomenonConfiguration(T output) { Map<String, ConfigInterval> intervals = intervalConfig.getPhenomenonIntervals(); return intervals.containsKey(output.getId()); }
private StatusIntervalsExtensionConfig.ConfigInterval getSeriesIntervals(T output) { return intervalConfig.getTimeseriesIntervals() .get(output.getId()); }
private static Map<String, StyleMetadata> collectStyleMetadatas(List< ? extends DatasetOutput< ? >> metadatas, final Map<String, StyleProperties> styles) { return metadatas.stream() .map(e -> { return new StyleMetadata().setDatasetMetadata(e) .setDatasetId(e.getId()) .setStyleProperties(styles.get(e.getId())); }) .collect(Collectors.toMap(StyleMetadata::getDatasetId, Function.identity())); }
private void writeData(DataCollection<Data<QuantityValue>> data, OutputStream stream) throws IOException { for (DatasetOutput metadata : seriesMetadatas) { Data<QuantityValue> series = data.getSeries(metadata.getId()); writeData(metadata, series, stream); } }
protected String createReferenceDatasetId(DbQuery query, QuantityDatasetEntity referenceSeriesEntity) { String valueType = referenceSeriesEntity.getValueType(); DatasetOutput< ? > dataset = DatasetOutput.create(valueType, query.getParameters()); Long id = referenceSeriesEntity.getId(); dataset.setId(id.toString()); String referenceDatasetId = dataset.getId(); return referenceDatasetId.toString(); }
private Geometry getLastSamplingGeometry(List<DatasetOutput> datasets, DbQuery query, Session session) throws DataAccessException { AbstractValue<?> currentLastValue = null; for (DatasetOutput dataset : datasets) { // XXX fix generics and inheritance of Data, AbstractValue, etc. // https://trello.com/c/dMVa0fg9/78-refactor-data-abstractvalue 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; }
@Override public Map<String, Object> getExtras(T output, IoParameters parameters) { if (!hasExtrasToReturn(output, parameters)) { return Collections.emptyMap(); } if (hasSeriesConfiguration(output)) { return wrapSingleIntoMap(createStyle(getSeriesStyle(output))); } else if (hasPhenomenonConfiguration(output)) { return wrapSingleIntoMap(createStyle(getPhenomenonStyle(output))); } LOGGER.error("No rendering style found for {} (id={})", output, output.getId()); return Collections.emptyMap(); }
@Override public Map<String, Object> getExtras(T output, IoParameters parameters) { if (!hasExtrasToReturn(output, parameters)) { return Collections.emptyMap(); } if (hasSeriesConfiguration(output)) { return wrapSingleIntoMap(createIntervals(getSeriesIntervals(output))); } else if (hasPhenomenonConfiguration(output)) { return wrapSingleIntoMap(createIntervals(getPhenomenonIntervals(output))); } LOGGER.error("No status intervals found for {} (id={})", output, output.getId()); return Collections.emptyMap(); }
Map<String, Set<HierarchicalParameterOutput>> getExtras(String platformId, IoParameters parameters) { Session session = getSession(); try { DbQuery dbQuery = getDbQuery(parameters); Map<String, Set<HierarchicalParameterOutput>> extras = new HashMap<>(); PlatformOutput platform = platformRepository.getInstance(platformId, dbQuery); DatasetDao<DatasetEntity> dao = new DatasetDao<>(session); for (DatasetOutput dataset : platform.getDatasets()) { String datasetId = ValueType.extractId(dataset.getId()); DatasetEntity instance = dao.getInstance(Long.parseLong(datasetId), dbQuery); addProcedureParents(instance, dbQuery, extras); // TODO add further parents } return extras; } catch (NumberFormatException e) { LOGGER.debug("Could not convert id '{}' to long.", platformId, e); } catch (DataAccessException e) { LOGGER.error("Could not query hierarchical parameters for dataset with id '{}'", platformId, e); } finally { returnSession(session); } return Collections.emptyMap(); }
private DatasetEntity getLastDataset(List<DatasetOutput<AbstractValue<?>>> datasets, DbQuery query, Session session) throws DataAccessException { DatasetEntity currentLastDataset = null; for (DatasetOutput<AbstractValue<?>> dataset : datasets) { String id = dataset.getId(); DbQuery datasetQuery = getDbQuery(query.getParameters().removeAllOf(Parameters.BBOX).removeAllOf(Parameters.NEAR)); DatasetEntity entity = seriesRepository.getInstanceEntity(id, datasetQuery, session); if (currentLastDataset == null) { currentLastDataset = entity; } else { if (currentLastDataset.getLastValueAt().after(entity.getLastValueAt())) { currentLastDataset = entity; } } } return currentLastDataset; }
IoParameters query = IoParameters.createFromSingleValueMap(parameters); for (DatasetOutput< ? > metadata : datasetService.getCondensedParameters(query)) { String timeseriesId = metadata.getId(); renderConfiguredIntervals(timeseriesId, config); if (interrupted) {
String timeseriesId = timeseriesMetadata.getId(); StyleProperties style = getDatasetStyleFor(timeseriesId); Data<QuantityValue> timeseriesData = allTimeseries.get(timeseriesId);
protected String formatTitle(DatasetOutput metadata, String title) { DatasetParameters parameters = metadata.getDatasetParameters(); Object[] varargs = { // index important to reference in config! parameters.getPlatform() .getLabel(), parameters.getPhenomenon() .getLabel(), parameters.getProcedure() .getLabel(), parameters.getCategory() .getLabel(), parameters.getOffering() .getLabel(), parameters.getFeature() .getLabel(), parameters.getService() .getLabel(), metadata.getUom() }; try { return String.format(title, varargs); } catch (Exception e) { String datasetId = metadata.getId(); LOGGER.info("Couldn't format title while prerendering dataset '{}'", datasetId, e); // return template as fallback return title; } }