@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);
   }
 }
Example #2
0
  @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);
   }
 }