@SuppressWarnings("unchecked") private T getInstance(T dataset) { return (T) getDefaultCriteria(ProxyDbQuery.createDefaults()) .add(Restrictions.eq(DatasetEntity.PROPERTY_VALUE_TYPE, dataset.getValueType())) .add(Restrictions.eq(DatasetEntity.PROPERTY_CATEGORY, dataset.getCategory())) .add(Restrictions.eq(DatasetEntity.PROPERTY_FEATURE, dataset.getFeature())) .add(Restrictions.eq(DatasetEntity.PROPERTY_PROCEDURE, dataset.getProcedure())) .add(Restrictions.eq(DatasetEntity.PROPERTY_PHENOMENON, dataset.getPhenomenon())) .add(Restrictions.eq(DatasetEntity.PROPERTY_OFFERING, dataset.getOffering())) .add(Restrictions.eq(DatasetEntity.PROPERTY_SERVICE, dataset.getService())) .uniqueResult(); }
private void addCondensedResults(DatasetDao<? extends DatasetEntity> dao, DbQuery query, List<DatasetOutput<AbstractValue<?>>> results, Session session) throws DataAccessException { for (DatasetEntity series : dao.getAllInstances(query)) { if (dataRepositoryFactory.isKnown(series.getValueType())) { results.add(createCondensed(series, query, session)); } } }
private void addExpandedResults(DatasetDao<? extends DatasetEntity> dao, DbQuery query, List<DatasetOutput<AbstractValue<?>>> results, Session session) throws DataAccessException { for (DatasetEntity series : dao.getAllInstances(query)) { if (dataRepositoryFactory.isKnown(series.getValueType())) { results.add(createExpanded(series, query, session)); } } }
/** * 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!"); // } }
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; }
switch (dataset.getValueType()) { case "measurement": final SweQuantity quantity = new SweQuantity(); break; default: logTypeNotSupported(dataset.getValueType()); break;
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; }
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; } }