Mercurial > lada > lada-server
annotate src/main/java/de/intevation/lada/rest/LProbeRESTService.java @ 39:e0a5477f657e
Documentation.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Thu, 23 May 2013 15:29:13 +0200 |
parents | c20674399ad7 |
children |
rev | line source |
---|---|
29
c5930d01e0ab
Package renaming and code cosmetics.
Raimund Renkert <rrenkert@intevation.de>
parents:
24
diff
changeset
|
1 package de.intevation.lada.rest; |
8
1016bcc08bb3
Added stub for REST service for Proben
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
2 |
15
624611a29348
Provide GET method to load a list of proben.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
8
diff
changeset
|
3 import java.util.List; |
17
4ed66a87c0c4
Added missing import.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
15
diff
changeset
|
4 import java.util.logging.Logger; |
15
624611a29348
Provide GET method to load a list of proben.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
8
diff
changeset
|
5 |
8
1016bcc08bb3
Added stub for REST service for Proben
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
6 import javax.enterprise.context.RequestScoped; |
1016bcc08bb3
Added stub for REST service for Proben
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
7 import javax.inject.Inject; |
35
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
8 import javax.ws.rs.DefaultValue; |
8
1016bcc08bb3
Added stub for REST service for Proben
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
9 import javax.ws.rs.GET; |
1016bcc08bb3
Added stub for REST service for Proben
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
10 import javax.ws.rs.Path; |
35
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
11 import javax.ws.rs.PathParam; |
8
1016bcc08bb3
Added stub for REST service for Proben
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
12 import javax.ws.rs.Produces; |
35
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
13 import javax.ws.rs.QueryParam; |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
14 import javax.ws.rs.core.Context; |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
15 import javax.ws.rs.core.MultivaluedMap; |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
16 import javax.ws.rs.core.UriInfo; |
8
1016bcc08bb3
Added stub for REST service for Proben
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
17 |
29
c5930d01e0ab
Package renaming and code cosmetics.
Raimund Renkert <rrenkert@intevation.de>
parents:
24
diff
changeset
|
18 import de.intevation.lada.data.LProbeRepository; |
c5930d01e0ab
Package renaming and code cosmetics.
Raimund Renkert <rrenkert@intevation.de>
parents:
24
diff
changeset
|
19 import de.intevation.lada.model.LProbe; |
c5930d01e0ab
Package renaming and code cosmetics.
Raimund Renkert <rrenkert@intevation.de>
parents:
24
diff
changeset
|
20 import de.intevation.lada.service.LProbeService; |
15
624611a29348
Provide GET method to load a list of proben.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
8
diff
changeset
|
21 |
8
1016bcc08bb3
Added stub for REST service for Proben
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
22 /** |
39 | 23 * This class produces a RESTful service to read the contents of LProbe table. |
24 * | |
25 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a> | |
26 */ | |
8
1016bcc08bb3
Added stub for REST service for Proben
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
27 @Path("/proben") |
1016bcc08bb3
Added stub for REST service for Proben
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
28 @RequestScoped |
1016bcc08bb3
Added stub for REST service for Proben
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
29 public class LProbeRESTService { |
1016bcc08bb3
Added stub for REST service for Proben
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
30 |
39 | 31 /** |
32 * The Repository for LProbe. | |
33 */ | |
29
c5930d01e0ab
Package renaming and code cosmetics.
Raimund Renkert <rrenkert@intevation.de>
parents:
24
diff
changeset
|
34 @Inject |
c5930d01e0ab
Package renaming and code cosmetics.
Raimund Renkert <rrenkert@intevation.de>
parents:
24
diff
changeset
|
35 private LProbeRepository repository; |
8
1016bcc08bb3
Added stub for REST service for Proben
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
36 |
39 | 37 /** |
38 * The logger for this class. | |
39 */ | |
29
c5930d01e0ab
Package renaming and code cosmetics.
Raimund Renkert <rrenkert@intevation.de>
parents:
24
diff
changeset
|
40 @Inject |
c5930d01e0ab
Package renaming and code cosmetics.
Raimund Renkert <rrenkert@intevation.de>
parents:
24
diff
changeset
|
41 private Logger log; |
8
1016bcc08bb3
Added stub for REST service for Proben
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
42 |
39 | 43 /** |
44 * Request a LProbe via its id. | |
45 * | |
46 * @param id The LProbe id | |
47 * @return JSON Object via REST service. | |
48 */ | |
29
c5930d01e0ab
Package renaming and code cosmetics.
Raimund Renkert <rrenkert@intevation.de>
parents:
24
diff
changeset
|
49 @GET |
36
8155d2ed5cb8
Use String for lprobe id.
Raimund Renkert <rrenkert@intevation.de>
parents:
35
diff
changeset
|
50 @Path("/{id}") |
8155d2ed5cb8
Use String for lprobe id.
Raimund Renkert <rrenkert@intevation.de>
parents:
35
diff
changeset
|
51 @Produces("text/json") |
8155d2ed5cb8
Use String for lprobe id.
Raimund Renkert <rrenkert@intevation.de>
parents:
35
diff
changeset
|
52 public LProbe loadById(@PathParam("id") String id) { |
35
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
53 return repository.findById(id); |
29
c5930d01e0ab
Package renaming and code cosmetics.
Raimund Renkert <rrenkert@intevation.de>
parents:
24
diff
changeset
|
54 } |
c5930d01e0ab
Package renaming and code cosmetics.
Raimund Renkert <rrenkert@intevation.de>
parents:
24
diff
changeset
|
55 |
39 | 56 /** |
57 * Request LProbe via a filter. | |
58 * | |
59 * Query parameters are used for the filter in form of key-value pairs. | |
60 * This filter can take the three parameters | |
61 * mst=$MSTID (String) | |
62 * uwb=$UWBID (String) | |
63 * begin=$PROBEENTNAHMEBEGIN (Timestamp) | |
64 * | |
65 * @param info The URL query parameters. | |
66 * @return JSON Object via Rest service. | |
67 */ | |
29
c5930d01e0ab
Package renaming and code cosmetics.
Raimund Renkert <rrenkert@intevation.de>
parents:
24
diff
changeset
|
68 @GET |
35
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
69 @Produces("text/json") |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
70 public List<LProbe> filter(@Context UriInfo info) { |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
71 MultivaluedMap<String, String> params = info.getQueryParameters(); |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
72 if (params.isEmpty()) { |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
73 return repository.findAll(); |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
74 } |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
75 String mstId = ""; |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
76 String uwbId = ""; |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
77 Long begin = null; |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
78 if (params.containsKey("mst")) { |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
79 mstId = params.getFirst("mst"); |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
80 } |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
81 if (params.containsKey("uwb")) { |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
82 uwbId = params.getFirst("uwb"); |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
83 } |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
84 if (params.containsKey("begin")) { |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
85 String tmp = params.getFirst("begin"); |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
86 try { |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
87 begin = Long.valueOf(tmp); |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
88 } |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
89 catch (NumberFormatException nfe) { |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
90 begin = null; |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
91 } |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
92 } |
f425150ea2b5
New filter option in LProbe GET request.
Raimund Renkert <rrenkert@intevation.de>
parents:
29
diff
changeset
|
93 return repository.filter(mstId, uwbId, begin); |
29
c5930d01e0ab
Package renaming and code cosmetics.
Raimund Renkert <rrenkert@intevation.de>
parents:
24
diff
changeset
|
94 } |
8
1016bcc08bb3
Added stub for REST service for Proben
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff
changeset
|
95 } |