@Override public GetResultTemplateResponse getResultTemplate(GetResultTemplateRequest request) throws OwsExceptionReport { Session session = null; try { session = sessionHolder.getSession(); ResultTemplate resultTemplate = new ResultTemplateDAO() .getResultTemplateObject( request.getOffering(), request.getObservedProperty(), session); if (resultTemplate != null) { GetResultTemplateResponse response = new GetResultTemplateResponse(); response.setService(request.getService()); response.setVersion(request.getVersion()); response.setResultEncoding( ResultHandlingHelper.createSosResultEncoding(resultTemplate.getResultEncoding())); response.setResultStructure( ResultHandlingHelper.createSosResultStructure(resultTemplate.getResultStructure())); return response; } throw new NoSweCommonEncodingForOfferingObservablePropertyCombination( request.getOffering(), request.getObservedProperty()); } catch (HibernateException he) { throw new NoApplicableCodeException() .causedBy(he) .withMessage("Error while querying data result template data!"); } finally { sessionHolder.returnSession(session); } }
@Override public GetObservationByIdResponse getObservationById(GetObservationByIdRequest request) throws OwsExceptionReport { Session session = null; try { session = sessionHolder.getSession(); List<AbstractObservation> observations = queryObservation(request, session); GetObservationByIdResponse response = new GetObservationByIdResponse(); response.setService(request.getService()); response.setVersion(request.getVersion()); response.setResponseFormat(request.getResponseFormat()); Map<Long, AbstractSpatialFilteringProfile> spatialFilteringProfile = Maps.newHashMap(); AbstractSpatialFilteringProfileDAO<?> spatialFilteringProfileDAO = DaoFactory.getInstance().getSpatialFilteringProfileDAO(session); if (spatialFilteringProfileDAO != null) { spatialFilteringProfile = spatialFilteringProfileDAO.getSpatialFilertingProfiles( HibernateObservationUtilities.getObservationIds(observations), session); } response.setObservationCollection( HibernateObservationUtilities.createSosObservationsFromObservations( observations, spatialFilteringProfile, request.getVersion(), request.getResultModel(), session)); return response; } catch (HibernateException he) { throw new NoApplicableCodeException() .causedBy(he) .withMessage("Error while querying observation data!"); } catch (ConverterException ce) { throw new NoApplicableCodeException() .causedBy(ce) .withMessage("Error while processing observation data!"); } finally { sessionHolder.returnSession(session); } }
@Override public GetDataAvailabilityResponse getDataAvailability(GetDataAvailabilityRequest req) throws OwsExceptionReport { Session session = sessionHolder.getSession(); try { List<?> dataAvailabilityValues = queryDataAvailabilityValues(req, session); GetDataAvailabilityResponse response = new GetDataAvailabilityResponse(); response.setService(req.getService()); response.setVersion(req.getVersion()); response.setNamespace(req.getNamespace()); for (Object o : dataAvailabilityValues) { if (o != null) { response.addDataAvailability((DataAvailability) o); } } return response; } catch (HibernateException he) { throw new NoApplicableCodeException() .causedBy(he) .withMessage("Error while querying data for GetDataAvailability!"); } finally { sessionHolder.returnSession(session); } }