annotate src/main/java/de/intevation/lada/rest/stamm/StatusWertService.java @ 1028:1c41c7b8f7c2 schema-update

Updated server application to new database model. THIS IS STILL WIP!!!
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 08 Jul 2016 15:32:36 +0200
parents 6bd149c352a9
children f92c96efa976
rev   line source
744
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2013 by Bundesamt fuer Strahlenschutz
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
3 *
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU GPL (v>=3)
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
6 * the documentation coming with IMIS-Labordaten-Application for details.
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7 */
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 package de.intevation.lada.rest.stamm;
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9
755
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
10 import java.util.ArrayList;
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
11 import java.util.List;
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
12
744
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13 import javax.enterprise.context.RequestScoped;
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14 import javax.inject.Inject;
755
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
15 import javax.servlet.http.HttpServletRequest;
744
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
16 import javax.ws.rs.GET;
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17 import javax.ws.rs.Path;
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 import javax.ws.rs.PathParam;
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19 import javax.ws.rs.Produces;
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 import javax.ws.rs.core.Context;
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 import javax.ws.rs.core.HttpHeaders;
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22 import javax.ws.rs.core.MediaType;
755
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
23 import javax.ws.rs.core.MultivaluedMap;
744
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 import javax.ws.rs.core.UriInfo;
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25
773
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
26 import org.apache.log4j.Logger;
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
27
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 879
diff changeset
28 import de.intevation.lada.model.land.Messung;
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 879
diff changeset
29 import de.intevation.lada.model.land.StatusProtokoll;
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 879
diff changeset
30 import de.intevation.lada.model.stammdaten.StatusErreichbar;
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 879
diff changeset
31 import de.intevation.lada.model.stammdaten.StatusKombi;
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 879
diff changeset
32 import de.intevation.lada.model.stammdaten.StatusWert;
755
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
33 import de.intevation.lada.util.annotation.AuthorizationConfig;
744
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34 import de.intevation.lada.util.annotation.RepositoryConfig;
755
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
35 import de.intevation.lada.util.auth.Authorization;
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
36 import de.intevation.lada.util.auth.AuthorizationType;
879
6bd149c352a9 Available status values need to be filtered by the users functions.
Tom Gottfried <tom@intevation.de>
parents: 865
diff changeset
37 import de.intevation.lada.util.auth.UserInfo;
773
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
38 import de.intevation.lada.util.data.QueryBuilder;
744
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 import de.intevation.lada.util.data.Repository;
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 import de.intevation.lada.util.data.RepositoryType;
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41 import de.intevation.lada.util.rest.Response;
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43 /**
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 * REST service for StatusWert objects.
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45 * <p>
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 * The services produce data in the application/json media type.
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 * A typical response holds information about the action performed and the data.
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 * <pre>
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 * <code>
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 * {
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 * "success": [boolean];
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52 * "message": [string],
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 * "data":[{
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54 * "id": [number],
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 * "wert": [string],
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 * }],
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 * "errors": [object],
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 * "warnings": [object],
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 * "readonly": [boolean],
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 * "totalCount": [number]
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61 * }
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 * </code>
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 * </pre>
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64 *
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a>
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 */
827
5bdd1631a451 !!!CAUTION!!! changed services path!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 778
diff changeset
67 @Path("rest/statuswert")
744
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 @RequestScoped
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69 public class StatusWertService {
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70
773
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
71 @Inject
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
72 private Logger logger = Logger.getLogger(StatusWertService.class);
744
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
73 /**
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
74 * The data repository granting read access.
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
75 */
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
76 @Inject
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
77 @RepositoryConfig(type=RepositoryType.RO)
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
78 private Repository defaultRepo;
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
79
755
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
80 @Inject
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
81 @AuthorizationConfig(type=AuthorizationType.HEADER)
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
82 private Authorization authorization;
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
83
744
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
84 /**
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
85 * Get all StatusWert objects.
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
86 * <p>
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
87 * Example: http://example.com/statuwert
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
88 *
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
89 * @return Response object containing all StatusWert objects.
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
90 */
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
91 @GET
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
92 @Path("/")
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
93 @Produces(MediaType.APPLICATION_JSON)
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
94 public Response get(
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
95 @Context HttpHeaders headers,
755
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
96 @Context HttpServletRequest request,
744
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
97 @Context UriInfo info
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
98 ) {
755
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
99 MultivaluedMap<String, String> params = info.getQueryParameters();
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
100 if (params.isEmpty() || !params.containsKey("messungsId")) {
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
101 return defaultRepo.getAll(StatusWert.class, "stamm");
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
102 }
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
103 int messungsId = Integer.valueOf(params.getFirst("messungsId"));
879
6bd149c352a9 Available status values need to be filtered by the users functions.
Tom Gottfried <tom@intevation.de>
parents: 865
diff changeset
104 UserInfo user = authorization.getInfo(request);
6bd149c352a9 Available status values need to be filtered by the users functions.
Tom Gottfried <tom@intevation.de>
parents: 865
diff changeset
105 List<StatusWert> werte = getReachable(messungsId, user);
755
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
106 Response response = new Response(true, 200, werte);
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
107 return response;
744
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
108 }
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
109
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
110 /**
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
111 * Get a single StatusWert object by id.
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
112 * <p>
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
113 * The id is appended to the URL as a path parameter.
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
114 * <p>
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
115 * Example: http://example.com/statuswert/{id}
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
116 *
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
117 * @return Response object containing a single StatusWert.
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
118 */
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
119 @GET
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
120 @Path("/{id}")
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
121 @Produces(MediaType.APPLICATION_JSON)
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
122 public Response getById(
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
123 @Context HttpHeaders headers,
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
124 @PathParam("id") String id
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
125 ) {
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
126 return defaultRepo.getById(
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
127 StatusWert.class,
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
128 Integer.valueOf(id),
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
129 "stamm");
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
130 }
755
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
131
879
6bd149c352a9 Available status values need to be filtered by the users functions.
Tom Gottfried <tom@intevation.de>
parents: 865
diff changeset
132 private List<StatusWert> getReachable(int messungsId, UserInfo user) {
755
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
133 List<StatusWert> list = new ArrayList<StatusWert>();
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 879
diff changeset
134 Messung messung =
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 879
diff changeset
135 defaultRepo.getByIdPlain(Messung.class, messungsId, "land");
778
574391f1d88f Fixed status and messung services.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 773
diff changeset
136 if (messung.getStatus() == null) {
574391f1d88f Fixed status and messung services.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 773
diff changeset
137 return defaultRepo.getAllPlain(StatusWert.class, "stamm");
574391f1d88f Fixed status and messung services.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 773
diff changeset
138 }
773
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
139 StatusProtokoll status = defaultRepo.getByIdPlain(
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
140 StatusProtokoll.class,
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
141 messung.getStatus(),
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
142 "land");
865
186d30e5b44a MessungAuthorizer decides about statusEdit.
Tom Gottfried <tom@intevation.de>
parents: 827
diff changeset
143
773
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
144 QueryBuilder<StatusErreichbar> errFilter =
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
145 new QueryBuilder<StatusErreichbar>(
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
146 defaultRepo.entityManager("stamm"),
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
147 StatusErreichbar.class);
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 879
diff changeset
148 StatusKombi kombi = defaultRepo.getByIdPlain(StatusKombi.class, status.getStatusKombi(), "stamm");
879
6bd149c352a9 Available status values need to be filtered by the users functions.
Tom Gottfried <tom@intevation.de>
parents: 865
diff changeset
149 errFilter.andIn("stufeId", user.getFunktionen());
1028
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 879
diff changeset
150 errFilter.and("curStufe", kombi.getStatusStufe().getId());
1c41c7b8f7c2 Updated server application to new database model. THIS IS STILL WIP!!!
Raimund Renkert <raimund.renkert@intevation.de>
parents: 879
diff changeset
151 errFilter.and("curWert", kombi.getStatusWert().getId());
865
186d30e5b44a MessungAuthorizer decides about statusEdit.
Tom Gottfried <tom@intevation.de>
parents: 827
diff changeset
152 List<StatusErreichbar> erreichbare = defaultRepo.filterPlain(
186d30e5b44a MessungAuthorizer decides about statusEdit.
Tom Gottfried <tom@intevation.de>
parents: 827
diff changeset
153 errFilter.getQuery(), "stamm");
773
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
154 QueryBuilder<StatusWert> werteFilter =
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
155 new QueryBuilder<StatusWert>(
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
156 defaultRepo.entityManager("stamm"),
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
157 StatusWert.class);
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
158 for (int i = 0; i < erreichbare.size(); i++) {
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
159 werteFilter.or("id", erreichbare.get(i).getWertId());
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
160 }
c151b09af33b Return only reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 755
diff changeset
161 list = defaultRepo.filterPlain(werteFilter.getQuery(), "stamm");
755
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
162 return list;
6b4764c19ced Added stub to filter reachable status values.
Raimund Renkert <raimund.renkert@intevation.de>
parents: 744
diff changeset
163 }
744
7e6a0227428d Added model and services for statusstufe and statuswert.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
164 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)