private Collection<String> getFeatureTypes() { return datasets.stream().filter(d -> d.isSetFeature()).filter(d -> d.getFeature().isSetFeatureType()) .map(d -> d.getFeature().getFeatureType().getFormat()).collect(Collectors.toSet()); }
/** * Get featureOfInterest identifiers for requested parameters * * @param req * GetFeatureOfInterest request * @param session * Hibernate session * @return Resulting FeatureOfInterest identifiers list * @throws OwsExceptionReport * If an error occurs during processing */ private Collection<AbstractFeatureEntity> queryFeaturesForParameter(GetFeatureOfInterestRequest req, Session session) throws OwsExceptionReport { // try { Collection<DatasetEntity> datasets = new DatasetDao(session).get(createDbQuery(req)); if (datasets != null) { return datasets.stream() .filter(d -> d.isSetFeature() && (d.isPublished() || !d.isPublished() && d.getValueType().equalsIgnoreCase(NotInitializedDataset.DATASET_TYPE))) .map(d -> d.getFeature()).collect(Collectors.toSet()); } return Collections.emptySet(); // return new FeatureDao(session).getAllInstances(createDbQuery(req)); // } catch (DataAccessException dae) { // throw new NoApplicableCodeException().causedBy(dae) // .withMessage("Error while querying data for GetFeatureOfInterest!"); // } }
protected DatasetEntity getOrInsert(ObservationContext ctx, Data<?> observation, Session session) throws OwsExceptionReport { Criteria criteria = getDefaultAllSeriesCriteria(session); ctx.addIdentifierRestrictionsToCritera(criteria); criteria.setMaxResults(1); LOGGER.debug("QUERY getOrInsertSeries(feature, observableProperty, procedure, offering): {}", HibernateHelper.getSqlString(criteria)); DatasetEntity series = (DatasetEntity) criteria.uniqueResult(); if (series == null || series instanceof NotInitializedDataset) { series = preCheckDataset(ctx, observation, series, session); } if (series == null || (series.isSetFeature() && !series.getFeature().getIdentifier().equals(ctx.getFeatureOfInterest().getIdentifier()))) { series = (DatasetEntity) getDatasetFactory().visit(observation); ctx.addValuesToSeries(series); series.setDeleted(false); series.setPublished(ctx.isPublish()); } else if (!series.isSetFeature()) { ctx.addValuesToSeries(series); series.setDeleted(false); series.setPublished(ctx.isPublish()); } else if (ctx.isPublish() && !series.isPublished()) { series.setPublished(ctx.isPublish()); } else if (series.isDeleted()) { series.setDeleted(false); } else { return series; } session.saveOrUpdate(series); session.flush(); return series; }
protected DatasetEntity getOrInsert(ObservationContext ctx, Data<?> observation, Session session) throws OwsExceptionReport { Criteria criteria = getDefaultAllSeriesCriteria(session); ctx.addIdentifierRestrictionsToCritera(criteria); criteria.setMaxResults(1); LOGGER.debug("QUERY getOrInsertSeries(feature, observableProperty, procedure, offering): {}", HibernateHelper.getSqlString(criteria)); DatasetEntity series = (DatasetEntity) criteria.uniqueResult(); if (series == null || series instanceof NotInitializedDataset) { series = preCheckDataset(ctx, observation, series, session); } if (series == null || (series.isSetFeature() && !series.getFeature().getIdentifier().equals(ctx.getFeatureOfInterest().getIdentifier()))) { series = (DatasetEntity) getDatasetFactory().visit(observation); ctx.addValuesToSeries(series); series.setDeleted(false); series.setPublished(ctx.isPublish()); } else if (!series.isSetFeature()) { ctx.addValuesToSeries(series); series.setDeleted(false); series.setPublished(ctx.isPublish()); } else if (ctx.isPublish() && !series.isPublished()) { series.setPublished(ctx.isPublish()); } else if (series.isDeleted()) { series.setDeleted(false); } else { return series; } session.saveOrUpdate(series); session.flush(); return series; }
protected ReferencedEnvelope getEnvelopeForOffering(OfferingEntity offering) throws OwsExceptionReport { if (offering.isSetGeometry()) { return new ReferencedEnvelope(JTSConverter.convert(offering.getGeometry()).getEnvelopeInternal(), offering.getGeometry().getSRID()); } else if (datasets != null && !datasets.isEmpty()) { Envelope e = new Envelope(); int srid = -1; for (DatasetEntity de : datasets) { if (de.isSetFeature() && de.getFeature().isSetGeometry() && !de.getFeature().getGeometryEntity().isEmpty()) { if (srid < 0 ) { srid = de.getFeature().getGeometryEntity().getGeometry().getSRID(); } e.expandToInclude(JTSConverter.convert(de.getFeature().getGeometryEntity().getGeometry()).getEnvelopeInternal()); } } return new ReferencedEnvelope(e, srid); } return new ReferencedEnvelope(); }
offering.setGeometryEntity(observation.getGeometryEntity()); } else if (observation.getDataset().isSetFeature() && observation.getDataset().getFeature().isSetGeometry()) { if (offering.isSetGeometry()) { offering.getGeometryEntity().getGeometry()
offering.setGeometryEntity(observation.getGeometryEntity()); } else if (observation.getDataset().isSetFeature() && observation.getDataset().getFeature().isSetGeometry()) { if (offering.isSetGeometry()) { offering.getGeometryEntity().getGeometry()
public void addValuesToSeries(DatasetEntity contextual) { if (!contextual.isSetFeature() && isSetFeatureOfInterest()) { contextual.setFeature(getFeatureOfInterest()); } if (contextual.getPhenomenon() == null && isSetPhenomenon()) { contextual.setPhenomenon(getPhenomenon()); } if (contextual.getProcedure() == null && isSetProcedure()) { contextual.setProcedure(getProcedure()); } if (!contextual.isSetOffering() && isSetOffering()) { contextual.setOffering(getOffering()); } if (contextual.getCategory() == null && isSetCategory()) { contextual.setCategory(getCategory()); } if (!contextual.isSetObservationType() && isSetObservationType()) { contextual.setObservationType(getObservationType()); } if (!contextual.hasUnit() && isSetUnit()) { contextual.setUnit(getUnit()); } contextual.setHidden(isHiddenChild()); contextual.setMobile(isMobile()); contextual.setInsitu(isInsitu()); }
public void addValuesToSeries(DatasetEntity contextual) { if (!contextual.isSetFeature() && isSetFeatureOfInterest()) { contextual.setFeature(getFeatureOfInterest()); } if (contextual.getPhenomenon() == null && isSetPhenomenon()) { contextual.setPhenomenon(getPhenomenon()); } if (contextual.getProcedure() == null && isSetProcedure()) { contextual.setProcedure(getProcedure()); } if (!contextual.isSetOffering() && isSetOffering()) { contextual.setOffering(getOffering()); } if (contextual.getCategory() == null && isSetCategory()) { contextual.setCategory(getCategory()); } if (!contextual.isSetObservationType() && isSetObservationType()) { contextual.setObservationType(getObservationType()); } if (!contextual.hasUnit() && isSetUnit()) { contextual.setUnit(getUnit()); } contextual.setHidden(isHiddenChild()); contextual.setMobile(isMobile()); contextual.setInsitu(isInsitu()); }