Mercurial > lada > lada-server
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 } |