@JsonProperty("parameters") public DatasetParameters getDatasetParameters() { return getDatasetParameters(false); }
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()); } }
protected String createRangeLabel(DatasetOutput output) { DatasetParameters parameters = output.getDatasetParameters(); ParameterOutput phenomenon = parameters.getPhenomenon(); StringBuilder uom = new StringBuilder(); uom.append(phenomenon.getLabel()); String uomLabel = output.getUom(); if (uomLabel != null && !uomLabel.isEmpty()) { uom.append(" [") .append(uomLabel) .append("]"); } return uom.toString(); }
public static <V extends AbstractValue< ? >> DatasetOutput<V> create(String type, IoParameters params) { DatasetOutput<V> output = new DatasetOutput<>(); output.setValue(VALUE_TYPE, type, params, output::setValueType); return output; }
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(); }
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; } }
private DatasetOutput createCondensed(DatasetEntity<?> series, DbQuery query) throws DataAccessException { DatasetOutput output = new DatasetOutput(series.getDatasetType()) {}; output.setLabel(createSeriesLabel(series, query.getLocale())); output.setId(series.getPkid().toString()); output.setDomainId(series.getDomainId()); output.setHrefBase(urHelper.getDatasetsHrefBaseUrl(query.getHrefBase())); return output; }
protected DatasetOutput createCondensed(DatasetEntity dataset, DbQuery query, Session session) throws DataAccessException { IoParameters parameters = query.getParameters(); String valueType = dataset.getValueType(); DatasetOutput<?> result = DatasetOutput.create(valueType, parameters); Long id = dataset.getId(); String domainId = dataset.getIdentifier(); String uom = dataset.getUnitI18nName(query.getLocale()); String label = createDatasetLabel(dataset, query.getLocale()); String hrefBase = query.getHrefBase(); String platformtype = getCondensedPlatform(dataset, query.withoutFieldsFilter(), session).getPlatformType(); result.setId(id.toString()); result.setValue(DatasetOutput.UOM, uom, parameters, result::setUom); result.setValue(DatasetOutput.LABEL, label, parameters, result::setLabel); result.setValue(DatasetOutput.DOMAIN_ID, domainId, parameters, result::setDomainId); result.setValue(DatasetOutput.HREF_BASE, hrefBase, parameters, result::setHrefBase); result.setValue(DatasetOutput.PLATFORM_TYPE, platformtype, parameters, result::setPlatformType); return result; }
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; }
private void checkForHref(DatasetOutput result, IoParameters parameters) { result.setHrefBase(urlHelper.getDatasetsHrefBaseUrl(parameters.getHrefBase())); }
@Override @SuppressWarnings("rawtypes") protected TimeseriesMetadataOutput createExpanded(QuantityDatasetEntity series, DbQuery query, Session session) throws DataAccessException { TimeseriesMetadataOutput output = super.createExpanded(series, query, session); if (Strings.isNullOrEmpty(output.getUom())) { DatasetOutput datasetOutput = datasetRepository.createExpanded(series, query, session); output.setUom(OptionalOutput.of(datasetOutput.getUom())); } return output; } }
protected DatasetOutput<AbstractValue<?>> createExpanded(DatasetEntity dataset, DbQuery query, Session session) throws DataAccessException { try { IoParameters params = query.getParameters(); DatasetOutput result = createCondensed(dataset, query, session); DatasetParameters datasetParams = createDatasetParameters(dataset, query.withoutFieldsFilter(), session); datasetParams.setPlatform(getCondensedPlatform(dataset, query, session)); if (dataset.getService() == null) { dataset.setService(getServiceEntity()); } DataRepository dataRepository = dataRepositoryFactory.create(dataset.getValueType()); AbstractValue firstValue = dataRepository.getFirstValue(dataset, session, query); AbstractValue lastValue = dataRepository.getLastValue(dataset, session, query); List<ReferenceValueOutput> refValues = dataRepository.createReferenceValueOutputs(dataset, query); lastValue = isReferenceSeries(dataset) && isCongruentValues(firstValue, lastValue) // first == last to have a valid interval ? firstValue : lastValue; result.setValue(DatasetOutput.REFERENCE_VALUES, refValues, params, result::setReferenceValues); result.setValue(DatasetOutput.DATASET_PARAMETERS, datasetParams, params, result::setDatasetParameters); result.setValue(DatasetOutput.FIRST_VALUE, firstValue, params, result::setFirstValue); result.setValue(DatasetOutput.LAST_VALUE, lastValue, params, result::setLastValue); return result; } catch (DatasetFactoryException ex) { throwNewCreateFactoryException(ex); return null; } }
private DatasetOutput< ? > getTimeseriesMetadataOutput(String datasetId) { for (DatasetOutput< ? > output : getMetadataOutputs()) { if (output.getId() .equals(datasetId)) { return output; } } return null; }
private String createChartId(DatasetOutput< ? > metadata, String referenceId) { ParameterOutput feature = metadata.getDatasetParameters() .getFeature(); StringBuilder timeseriesLabel = new StringBuilder(); timeseriesLabel.append(feature.getLabel()); if (referenceId != null) { timeseriesLabel.append(", ") .append(referenceId); } timeseriesLabel.append(" (") .append(createRangeLabel(metadata)) .append(")"); return timeseriesLabel.toString(); }
private Map<String, String> parseMetadata(DatasetOutput metadata) { Map<String, String> map = new HashMap<String, String>(); map.put(STATION, getStation(metadata)); map.put(PHENOMENON, metadata.getDatasetParameters(true).getPhenomenon().getLabel()); map.put(PROCEDURE, metadata.getDatasetParameters(true).getProcedure().getLabel()); map.put(UOM, metadata.getUom()); return map; }
private RenderingHintsExtensionConfig.ConfiguredStyle getSeriesStyle(T output) { return renderingConfig.getTimeseriesStyles() .get(output.getId()); }
@Override public Collection<String> getExtraMetadataFieldNames(DatasetOutput output) { final ParameterOutput serviceOutput = output.getDatasetParameters(true) .getService(); return isAvailableFor(serviceOutput.getId()) ? Collections.singleton(EXTENSION_NAME) : Collections.emptySet(); }
private boolean hasSeriesConfiguration(T output) { return renderingConfig.getTimeseriesStyles() .containsKey(output.getId()); }
private RenderingHintsExtensionConfig.ConfiguredStyle getPhenomenonStyle(T output) { String id = output.getDatasetParameters() .getPhenomenon() .getId(); return renderingConfig.getPhenomenonStyles() .get(id); }
private boolean hasSeriesConfiguration(T output) { Map<String, ConfigInterval> intervals = intervalConfig.getTimeseriesIntervals(); return intervals.containsKey(output.getId()); }