public List<RelatedDatasetEntity> getRelatedSeries(DatasetEntity series, Session session) { return getRelatedSeries(series.getId(), session); }
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 void addParameter(OmObservation observation, DataEntity<?> hObservation) throws OwsExceptionReport { long start = System.currentTimeMillis(); LOGGER.trace("Creating Parameter..."); DatasetEntity series = ((DataEntity<?>) hObservation).getDataset(); if (!seriesParameter.containsKey(series.getId()) && series.hasParameters()) { seriesParameter.put(series.getId(), series.getParameters()); } if (seriesParameter.get(series.getId()) != null && !seriesParameter.get(series.getId()).isEmpty()) { new DatasetParameterAdder(observation, seriesParameter.get(series.getId())).add(); } new ParameterAdder(observation, hObservation).add(); LOGGER.trace("Creating Parameter done in {} ms.", System.currentTimeMillis() - start); }
public List<RelatedDatasetEntity> getRelatedSeries(DatasetEntity series, Session session) { return getRelatedSeries(series.getId(), session); }
private void addParameter(OmObservation observation, DataEntity<?> hObservation) throws OwsExceptionReport { long start = System.currentTimeMillis(); LOGGER.trace("Creating Parameter..."); DatasetEntity series = ((DataEntity<?>) hObservation).getDataset(); if (!seriesParameter.containsKey(series.getId()) && series.hasParameters()) { seriesParameter.put(series.getId(), series.getParameters()); } if (seriesParameter.get(series.getId()) != null && !seriesParameter.get(series.getId()).isEmpty()) { new DatasetParameterAdder(observation, seriesParameter.get(series.getId())).add(); } new ParameterAdder(observation, hObservation).add(); LOGGER.trace("Creating Parameter done in {} ms.", System.currentTimeMillis() - start); }
/** * Create series observation query criteria for series * * @param clazz * to query * @param series * Series to get values for * @param session * Hibernate session * @return Criteria to query series observations */ protected Criteria createCriteriaFor(Class<?> clazz, DatasetEntity series, Session session) { final Criteria criteria = getDefaultObservationCriteria(session); criteria.createCriteria(DataEntity.PROPERTY_DATASET) .add(Restrictions.eq(DatasetEntity.PROPERTY_ID, series.getId())) .add(Restrictions.eq(DatasetEntity.PROPERTY_PUBLISHED, true)); return criteria; }
/** * Create series observation query criteria for series * * @param clazz * to query * @param series * Series to get values for * @param session * Hibernate session * @return Criteria to query series observations */ protected Criteria createCriteriaFor(Class<?> clazz, DatasetEntity series, Session session) { final Criteria criteria = getDefaultObservationCriteria(session); criteria.createCriteria(DataEntity.PROPERTY_DATASET) .add(Restrictions.eq(DatasetEntity.PROPERTY_ID, series.getId())) .add(Restrictions.eq(DatasetEntity.PROPERTY_PUBLISHED, true)); return criteria; }
@Override public String toString() { StringBuilder sb = new StringBuilder(); return sb.append(getClass().getSimpleName()) .append(" [") .append(" id: ") .append(getId()) .append(" , category: ") .append(getCategory()) .append(" , phenomenon: ") .append(getPhenomenon()) .append(" , procedure: ") .append(getProcedure()) .append(" , offering: ") .append(getOffering()) .append(" , feature: ") .append(getFeature()) .append(" , service: ") .append(getService()) .append(" ]") .toString(); }
/** * Retrieves all available observation instances belonging to a particular series. * * @param series * the series the observations belongs to. * @param query * some query parameters to restrict result. * @return all observation entities belonging to the given series which match the given query. * @throws DataAccessException * if accessing database fails. */ @SuppressWarnings("unchecked") public List<T> getAllInstancesFor(DatasetEntity series, DbQuery query) throws DataAccessException { final Long id = series.getId(); LOGGER.debug("get all instances for series '{}': {}", id, query); Criteria criteria = query.addTimespanTo(getDefaultCriteria(query)); return criteria.createCriteria(DataEntity.PROPERTY_DATASET) .add(Restrictions.eq(DataEntity.PROPERTY_ID, id)) .list(); }
/** * Create series observation query criteria for series and offerings * * @param clazz * Class to query * @param series * Series to get values for * @param offerings * Offerings to get values for * @param session * Hibernate session * @return Criteria to query series observations */ protected Criteria createCriteriaFor(Class<?> clazz, DatasetEntity series, List<String> offerings, Session session) { final Criteria criteria = getDefaultObservationCriteria(session); Criteria seriesCriteria = criteria.createCriteria(DataEntity.PROPERTY_DATASET) .add(Restrictions.eq(DatasetEntity.PROPERTY_ID, series.getId())) .add(Restrictions.eq(DatasetEntity.PROPERTY_PUBLISHED, true)); if (CollectionHelper.isNotEmpty(offerings)) { seriesCriteria.createCriteria(DatasetEntity.PROPERTY_OFFERING).add(Restrictions.in(OfferingEntity.IDENTIFIER, offerings)); } return criteria; }
private CodedException createMetadataInvalidException(String metadataKey, String metadataContent, IllegalArgumentException iae) { CodedException e = new NoApplicableCodeException().withMessage("Series Metadata '%s' for Series '%s' " + "could not be parsed '%s'. Please contact the administrator of this service.", metadataKey, series.getId(), metadataContent); if (iae != null) { return e.causedBy(iae); } else { return e; } }
private CodedException createMetadataInvalidException(String metadataKey, String metadataContent, IllegalArgumentException iae) { CodedException e = new NoApplicableCodeException().withMessage("Series Metadata '%s' for Series '%s' " + "could not be parsed '%s'. Please contact the administrator of this service.", metadataKey, series.getId(), metadataContent); if (iae != null) { return e.causedBy(iae); } else { return e; } }
/** * Create series observation query criteria for series and offerings * * @param clazz * Class to query * @param series * Series to get values for * @param offerings * Offerings to get values for * @param session * Hibernate session * @return Criteria to query series observations */ protected Criteria createCriteriaFor(Class<?> clazz, DatasetEntity series, List<String> offerings, Session session) { final Criteria criteria = getDefaultObservationCriteria(session); Criteria seriesCriteria = criteria.createCriteria(DataEntity.PROPERTY_DATASET) .add(Restrictions.eq(DatasetEntity.PROPERTY_ID, series.getId())) .add(Restrictions.eq(DatasetEntity.PROPERTY_PUBLISHED, true)); if (CollectionHelper.isNotEmpty(offerings)) { seriesCriteria.createCriteria(DatasetEntity.PROPERTY_OFFERING).add(Restrictions.in(OfferingEntity.IDENTIFIER, offerings)); } return criteria; }
final Criteria criteria = getDefaultObservationCriteria(session); Criteria seriesCriteria = criteria.createCriteria(DataEntity.PROPERTY_DATASET) .add(Restrictions.eq(DatasetEntity.PROPERTY_ID, series.getId())) .add(Restrictions.eq(DatasetEntity.PROPERTY_PUBLISHED, true)); if (CollectionHelper.isNotEmpty(offerings)) {
private Geometry getLastSamplingGeometry(List<DatasetOutput<AbstractValue<?>>> datasets, DbQuery query, Session session) throws DataAccessException { // XXX fix generics and inheritance of Data, AbstractValue, etc. // https://trello.com/c/dMVa0fg9/78-refactor-data-abstractvalue DatasetEntity lastDataset = getLastDataset(datasets, query, session); try { DataRepository dataRepository = factory.create(lastDataset.getValueType()); GeometryEntity lastKnownGeometry = dataRepository.getLastKnownGeometry(lastDataset, session, query); return isValidGeometry(lastKnownGeometry) ? lastKnownGeometry.getGeometry() : null; } catch (DatasetFactoryException e) { LOGGER.error("Couldn't create data repository to determing last value of dataset '{}'", lastDataset.getId()); } return null; }
/** * Create criteria to query min/max time for series from series observation * * @param series * Series to get values for * @param offerings * @param session * Hibernate session * @return Criteria to get min/max time values for series */ public Criteria getMinMaxTimeCriteriaForSeriesObservation(DatasetEntity series, Collection<String> offerings, Session session) { final Criteria criteria = getDefaultObservationCriteria(session); Criteria seriesCriteria = criteria.createCriteria(DataEntity.PROPERTY_DATASET) .add(Restrictions.eq(DatasetEntity.PROPERTY_ID, series.getId())) .add(Restrictions.eq(DatasetEntity.PROPERTY_PUBLISHED, true)); if (CollectionHelper.isNotEmpty(offerings)) { seriesCriteria.createCriteria(DatasetEntity.PROPERTY_OFFERING).add(Restrictions.in(OfferingEntity.IDENTIFIER, offerings)); } criteria.setProjection(Projections.projectionList() .add(Projections.min(DataEntity.PROPERTY_SAMPLING_TIME_START)) .add(Projections.max(DataEntity.PROPERTY_SAMPLING_TIME_END))); return criteria; }
/** * Create criteria to query min/max time for series from series observation * * @param series * Series to get values for * @param offerings * @param session * Hibernate session * @return Criteria to get min/max time values for series */ public Criteria getMinMaxTimeCriteriaForSeriesObservation(DatasetEntity series, Collection<String> offerings, Session session) { final Criteria criteria = getDefaultObservationCriteria(session); Criteria seriesCriteria = criteria.createCriteria(DataEntity.PROPERTY_DATASET) .add(Restrictions.eq(DatasetEntity.PROPERTY_ID, series.getId())) .add(Restrictions.eq(DatasetEntity.PROPERTY_PUBLISHED, true)); if (CollectionHelper.isNotEmpty(offerings)) { seriesCriteria.createCriteria(DatasetEntity.PROPERTY_OFFERING).add(Restrictions.in(OfferingEntity.IDENTIFIER, offerings)); } criteria.setProjection(Projections.projectionList() .add(Projections.min(DataEntity.PROPERTY_SAMPLING_TIME_START)) .add(Projections.max(DataEntity.PROPERTY_SAMPLING_TIME_END))); return criteria; }
private List<ReferenceValueOutput<QuantityValue>> createReferenceValueOutputs(QuantityDatasetEntity series, DbQuery query, QuantityDataRepository repository, Session session) throws DataAccessException { List<ReferenceValueOutput<QuantityValue>> outputs = new ArrayList<>(); List<QuantityDatasetEntity> referenceValues = series.getReferenceValues(); DataDao<QuantityDataEntity> dataDao = createDataDao(session); for (DatasetEntity referenceSeriesEntity : referenceValues) { if (referenceSeriesEntity.isPublished() && referenceSeriesEntity instanceof QuantityDatasetEntity) { ReferenceValueOutput<QuantityValue> refenceValueOutput = new ReferenceValueOutput<>(); ProcedureEntity procedure = referenceSeriesEntity.getProcedure(); refenceValueOutput.setLabel(procedure.getNameI18n(query.getLocale())); refenceValueOutput.setReferenceValueId(referenceSeriesEntity.getId() .toString()); QuantityDatasetEntity quantityDatasetEntity = (QuantityDatasetEntity) referenceSeriesEntity; QuantityDataEntity lastValue = dataDao.getDataValueViaTimeend(series, query); refenceValueOutput.setLastValue(repository.createSeriesValueFor(lastValue, quantityDatasetEntity, query)); outputs.add(refenceValueOutput); } } return outputs; }
public void addValueSpecificDataToObservation(DataEntity<?> o, OmObservation observation, Session session, Extensions extensions) throws OwsExceptionReport { if (o instanceof EReportingData) { if (ReportObligations.hasFlow(extensions)) { ReportObligationType flow = ReportObligations.getFlow(extensions); if (ReportObligationType.E1A.equals(flow) || ReportObligationType.E1B.equals(flow)) { int year = DateTimeHelper.makeDateTime(o.getPhenomenonTimeStart()).getYear(); EReportingQualityEntity eReportingQuality = new EReportingQualityDAO().getEReportingQuality(o.getDataset().getId(), year, ((EReportingData)o).getPrimaryObservation(), session); if (eReportingQuality != null) { observation.setResultQuality(helper.getGmdDomainConsistency(eReportingQuality, true)); } else { observation.setResultQuality(helper.getGmdDomainConsistency(new EReportingQualityEntity(), true)); } } } } }
public void addValueSpecificDataToObservation(DataEntity<?> o, OmObservation observation, Session session, Extensions extensions) throws OwsExceptionReport { if (o instanceof EReportingData) { if (ReportObligations.hasFlow(extensions)) { ReportObligationType flow = ReportObligations.getFlow(extensions); if (ReportObligationType.E1A.equals(flow) || ReportObligationType.E1B.equals(flow)) { int year = DateTimeHelper.makeDateTime(o.getPhenomenonTimeStart()).getYear(); EReportingQualityEntity eReportingQuality = new EReportingQualityDAO().getEReportingQuality(o.getDataset().getId(), year, ((EReportingData)o).getPrimaryObservation(), session); if (eReportingQuality != null) { observation.setResultQuality(helper.getGmdDomainConsistency(eReportingQuality, true)); } else { observation.setResultQuality(helper.getGmdDomainConsistency(new EReportingQualityEntity(), true)); } } } } }