@SuppressWarnings("unchecked") public List<T> getInstancesWith(FeatureEntity feature, DbQuery query) { LOGGER.debug("get instance for feature '{}'", feature); Criteria criteria = getDefaultCriteria(query); String path = QueryUtils.createAssociation(DatasetEntity.PROPERTY_FEATURE, DatasetEntity.PROPERTY_ID); return criteria.add(Restrictions.eq(path, feature.getId())) .list(); }
private PlatformEntity convertToPlatform(FeatureEntity entity, DbQuery query) { PlatformEntity result = new PlatformEntity(); result.setIdentifier(entity.getIdentifier()); result.setId(entity.getId()); result.setName(entity.getName()); result.setParameters(entity.getParameters()); result.setTranslations(entity.getTranslations()); result.setDescription(entity.getDescription()); result.setGeometry(getGeometry(entity.getGeometryEntity(), query)); return result; }
private DbQuery createProcedureDbQuery(FeatureEntity featureEntity) { Map<String, String> map = Maps.newHashMap(); map.put(IoParameters.FEATURES, Long.toString(featureEntity.getId())); return new DbQuery(IoParameters.createFromSingleValueMap(map)); }
private PlatformOutput getPlatfom(FeatureEntity entity, DbQuery parameters) throws DataAccessException { DbQuery platformQuery = getDbQuery(parameters.getParameters() .extendWith(Parameters.FEATURES, String.valueOf(entity.getId())) .extendWith(Parameters.FILTER_PLATFORM_TYPES, "all") .removeAllOf(Parameters.FILTER_FIELDS)); List<PlatformOutput> platforms = platformRepository.getAllCondensed(platformQuery); if (platforms.size() != 1) { LOGGER.warn("expected unique platform (but was: #{}) for feature {}", platforms.size(), entity.getId()); } return platforms.iterator() .next(); }
private DbQuery createDatasetDbQuery(FeatureEntity feature) { IoParameters parameters = IoParameters.createDefaults(); parameters.extendWith(IoParameters.FEATURES, Long.toString(feature.getId())); return new DbQuery(parameters); } }
private Geometry createTrajectory(FeatureEntity featureEntity, DbQuery dbQuery, Session session) { String srid = dbQuery.getDatabaseSridCode(); // track available as points from observation table final List<Coordinate> coordinates = new ArrayList<>(); if (DataModelUtil.isNamedQuerySupported(NAMED_QUERY_GET_SAMPLING_GEOMETRIES_FOR_FEATURE, session)) { Query query = session.getNamedQuery(NAMED_QUERY_GET_SAMPLING_GEOMETRIES_FOR_FEATURE); query.setLong(NAMED_QUERY_PARAMETER_FEATURE_ID, featureEntity.getId()); for (Object entity : query.list()) { Object[] row = (Object[]) entity; // phenomenonTime is needed for ordering only // Date phenomenonTime = (Date) row[0]; if (row.length > 2) { coordinates.add(new Coordinate((double) row[1], (double) row[2])); } else { Geometry geom = (Geometry) row[1]; coordinates.add(geom.getCoordinate()); } } Coordinate[] points = coordinates.toArray(new Coordinate[0]); return getCrsUtils().createLineString(points, srid); } else { // when named query not configured --> may be a performance issue final SamplingGeometryDao dao = new SamplingGeometryDao(session); IoParameters parameters = dbQuery.getParameters() .extendWith(Parameters.FEATURES, Long.toString(featureEntity.getId())); List<GeometryEntity> samplingGeometries = dao.getGeometriesOrderedByTimestamp(getDbQuery(parameters)); return createLineString(samplingGeometries, dbQuery); } }
private GeometryOutput createGeometryOutput(GeometryType type, FeatureEntity featureEntity, DbQuery query) throws DataAccessException { GeometryOutput GeometryOutput = new GeometryOutput(); IoParameters parameters = query.getParameters(); String hrefBase = query.getHrefBase(); PlatformOutput platform = getPlatfom(featureEntity, query); GeometryOutput.setId(Long.toString(featureEntity.getId())); GeometryOutput.setValue(GeometryOutput.PROPERTIES, type, parameters, GeometryOutput::setGeometryType); GeometryOutput.setValue(GeometryOutput.PROPERTIES, hrefBase, parameters, GeometryOutput::setHrefBase); GeometryOutput.setValue(GeometryOutput.PROPERTIES, platform, parameters, GeometryOutput::setPlatform); return GeometryOutput; }
private StationOutput createCondensed(FeatureEntity entity, DbQuery query) { StationOutput result = new StationOutput(); IoParameters parameters = query.getParameters(); String id = Long.toString(entity.getId()); String label = entity.getLabelFrom(query.getLocale()); Geometry geometry = createPoint(entity, query); result.setId(id); result.setValue(StationOutput.PROPERTIES, label, parameters, result::setLabel); result.setValue(StationOutput.GEOMETRY, geometry, parameters, result::setGeometry); return result; }