# HG changeset patch # User Raimund Renkert # Date 1371140880 -7200 # Node ID fda177c59d1f51a2b15ea7b35c3aa8e8dcd60b81 # Parent b1846985da6cf20921a71c50f6ec592fb73dfb3d Updated service and repository to use the extended LProbeInfo object. diff -r b1846985da6c -r fda177c59d1f src/main/java/de/intevation/lada/data/LProbeRepository.java --- a/src/main/java/de/intevation/lada/data/LProbeRepository.java Thu Jun 13 18:27:24 2013 +0200 +++ b/src/main/java/de/intevation/lada/data/LProbeRepository.java Thu Jun 13 18:28:00 2013 +0200 @@ -47,6 +47,28 @@ @Named("lprobevalidator") private Validator validator; + @Override + public Response findAll(Class clazz) { + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery criteria = cb.createQuery(LProbeInfo.class); + Root member = criteria.from(LProbeInfo.class); + criteria.distinct(true); + List result = filter(criteria); + return new Response(true, 200, result); + } + + @Override + public Response findById(Class clazz, String id) { + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery criteria = cb.createQuery(LProbeInfo.class); + Root member = criteria.from(LProbeInfo.class); + Predicate pid = cb.equal(member.get("probeId"), id); + criteria.where(pid); + criteria.distinct(true); + List result = filter(criteria); + return new Response(true, 200, result); + } + /** * Filter for LProbe objects used for calls from a service. * @@ -76,6 +98,7 @@ //ignore filter parameter. } } + criteria.distinct(true); criteria.where(andFilter.toArray(new Predicate[andFilter.size()])); List result = filter(criteria); return new Response(true, 200, result); diff -r b1846985da6c -r fda177c59d1f src/main/java/de/intevation/lada/rest/LProbeService.java --- a/src/main/java/de/intevation/lada/rest/LProbeService.java Thu Jun 13 18:27:24 2013 +0200 +++ b/src/main/java/de/intevation/lada/rest/LProbeService.java Thu Jun 13 18:28:00 2013 +0200 @@ -20,6 +20,7 @@ import de.intevation.lada.data.Repository; import de.intevation.lada.model.LProbe; +import de.intevation.lada.model.LProbeInfo; /** * This class produces a RESTful service to read the contents of LProbe table. @@ -53,7 +54,7 @@ @Path("/{id}") @Produces("text/json") public Response findById(@PathParam("id") String id) { - return repository.findById(LProbe.class, id); + return repository.findById(LProbeInfo.class, id); } /** @@ -73,7 +74,7 @@ public Response filter(@Context UriInfo info) { MultivaluedMap params = info.getQueryParameters(); if (params.isEmpty()) { - return repository.findAll(LProbe.class); + return repository.findAll(LProbeInfo.class); } Map filter = new HashMap(); for (String key: params.keySet()) {