@Override public String toString() { StringBuilder sb = new StringBuilder(getClass().getSimpleName()).append(" [ "); sb.append("timestart: ").append(getTimestart()).append(", "); sb.append("timestamp: ").append(getTimestamp()).append(", "); sb.append("value: ").append(getValue()); return sb.append(" ]").toString(); }
/** * Classifies the given value into result time (if present). * * @param value * the value to classify. */ public void classifyValue(T value) { Long resultTime = value.getResultTime(); if (resultTime != null) { String rt = Long.toString(resultTime); if (!valuesByResultTime.containsKey(rt)) { valuesByResultTime.put(rt, new ArrayList<>()); } valuesByResultTime.get(rt) .add(value); } }
private AbstractValue< ? > getLaterValue(AbstractValue< ? > currentLastValue, AbstractValue< ? > valueToCheck) { if (currentLastValue == null) { return valueToCheck; } if (valueToCheck == null) { return currentLastValue; } return currentLastValue.getTimestamp() > valueToCheck.getTimestamp() ? currentLastValue : valueToCheck; }
protected void addValidTime(DataEntity<?> observation, AbstractValue<?> value) { if (observation.isSetValidStartTime() || observation.isSetValidEndTime()) { Long validFrom = observation.isSetValidStartTime() ? observation.getValidTimeStart().getTime() : null; Long validUntil = observation.isSetValidEndTime() ? observation.getValidTimeEnd().getTime() : null; value.setValidTime(new ValidTime(validFrom, validUntil)); } }
protected void addParameter(DataEntity<?> observation, AbstractValue<?> value) { if (observation.hasParameters()) { for (DataParameter<?> parameter : observation.getParameters()) { value.addParameter(parameter.getName(), parameter.getValue()); } } }
protected void addGeometry(DataEntity< ? > dataEntity, AbstractValue< ? > value, DbQuery query) { if (dataEntity.isSetGeometryEntity()) { GeometryEntity geometryEntity = dataEntity.getGeometryEntity(); Geometry geometry = getGeometry(geometryEntity, query); value.setGeometry(geometry); } }
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 List<ProfileDataItem<T>> getValue() { List<ProfileDataItem<T>> profileValue = new ArrayList<>(super.getValue()); Collections.sort(profileValue); return profileValue; }
private boolean isCongruentValues(AbstractValue<?> firstValue, AbstractValue<?> lastValue) { return firstValue == null && lastValue == null || firstValue != null && lastValue.getTimestamp().equals(firstValue.getTimestamp()) || lastValue != null && firstValue.getTimestamp().equals(lastValue.getTimestamp()); }
protected void addValidTime(DataEntity< ? > observation, AbstractValue< ? > value) { if (observation.isSetValidStartTime() || observation.isSetValidEndTime()) { Long validFrom = observation.isSetValidStartTime() ? observation.getValidTimeStart() .getTime() : null; Long validUntil = observation.isSetValidEndTime() ? observation.getValidTimeEnd() .getTime() : null; value.setValidTime(new ValidTime(validFrom, validUntil)); } }
protected void addParameters(DataEntity< ? > observation, AbstractValue< ? > value, DbQuery query) { if (observation.hasParameters()) { for (Parameter< ? > parameter : observation.getParameters()) { value.addParameter(parameter.toValueMap(query.getLocale())); } } }
protected void addGeometry(DataEntity<?> dataEntity, AbstractValue<?> value) { if (dataEntity.isSetGeometry()) { GeometryEntity geometry = dataEntity.getGeometry(); value.setGeometry(geometry.getGeometry(getDatabaseSrid())); } }
@Override public int compareTo(AbstractValue<T> o) { // TODO check odering when `showtimeintervals=true` return getTimestamp().compareTo(o.getTimestamp()); }