annotate src/main/java/de/intevation/lada/rest/SProbenartService.java @ 366:567ce7697fc7 0.5

Code documentation.
author Raimund Renkert <rrenkert@intevation.de>
date Tue, 10 Sep 2013 15:55:54 +0200
parents d8a3d188046f
children 183f8116d9a6
rev   line source
48
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
1 package de.intevation.lada.rest;
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
2
208
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
3 import java.util.ArrayList;
48
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
4 import java.util.logging.Logger;
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
5
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
6 import javax.enterprise.context.RequestScoped;
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
7 import javax.inject.Inject;
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
8 import javax.inject.Named;
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
9 import javax.ws.rs.GET;
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
10 import javax.ws.rs.Path;
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
11 import javax.ws.rs.PathParam;
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
12 import javax.ws.rs.Produces;
208
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
13 import javax.ws.rs.core.Context;
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
14 import javax.ws.rs.core.HttpHeaders;
48
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
15
232
d8a3d188046f Renamed package authentication to auth.
Raimund Renkert <rrenkert@intevation.de>
parents: 210
diff changeset
16 import de.intevation.lada.auth.Authentication;
d8a3d188046f Renamed package authentication to auth.
Raimund Renkert <rrenkert@intevation.de>
parents: 210
diff changeset
17 import de.intevation.lada.auth.AuthenticationException;
48
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
18 import de.intevation.lada.data.Repository;
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
19 import de.intevation.lada.model.SProbenart;
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
20
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
21 /**
210
a305412206a3 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 208
diff changeset
22 * This class produces a RESTful service to read SProbenart objects.
48
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
23 *
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
24 * @author <a href="mailto:rrenkert@intevation.de">Raimund Renkert</a>
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
25 */
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
26 @Path("/probenart")
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
27 @RequestScoped
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
28 public class SProbenartService
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
29 {
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
30 /**
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
31 * The Repository for SProbenart.
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
32 */
133
750585244083 Use named injection points in stammdaten repositories.
Raimund Renkert <rrenkert@intevation.de>
parents: 107
diff changeset
33 @Inject
157
42e0085692df Fixed typo in named injection point.
Raimund Renkert <rrenkert@intevation.de>
parents: 134
diff changeset
34 @Named("readonlyrepository")
48
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
35 private Repository repository;
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
36
210
a305412206a3 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 208
diff changeset
37 /**
a305412206a3 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 208
diff changeset
38 * The authorization module.
a305412206a3 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 208
diff changeset
39 */
208
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
40 @Inject
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
41 @Named("ldapauth")
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
42 private Authentication authentication;
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
43
48
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
44 /**
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
45 * The logger for this class
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
46 */
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
47 @Inject
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
48 private Logger logger;
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
49
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
50 /**
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
51 * Request all SProbenart objects.
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
52 *
210
a305412206a3 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 208
diff changeset
53 * @return Response object.
48
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
54 */
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
55 @GET
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
56 @Produces("text/json")
208
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
57 public Response findAll(@Context HttpHeaders headers) {
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
58 try {
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
59 if (authentication.isAuthorizedUser(headers)) {
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
60 return repository.findAll(SProbenart.class);
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
61 }
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
62 return new Response(false, 699, new ArrayList<SProbenart>());
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
63 }
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
64 catch(AuthenticationException ae) {
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
65 return new Response(false, 699, new ArrayList<SProbenart>());
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
66 }
48
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
67 }
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
68
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
69 /**
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
70 * Request a single SProbenart via its id.
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
71 *
210
a305412206a3 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 208
diff changeset
72 * @param id The object id.
366
567ce7697fc7 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 232
diff changeset
73 * @param headers The HTTP header containing authorization information.
210
a305412206a3 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 208
diff changeset
74 * @return Response object.
48
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
75 */
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
76 @GET
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
77 @Path("/{id}")
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
78 @Produces("text/json")
208
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
79 public Response findById(
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
80 @PathParam("id") String id,
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
81 @Context HttpHeaders headers
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
82 ) {
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
83 try {
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
84 if (authentication.isAuthorizedUser(headers)) {
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
85 return repository.findById(SProbenart.class, id);
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
86 }
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
87 return new Response(false, 699, new ArrayList<SProbenart>());
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
88 }
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
89 catch(AuthenticationException ae) {
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
90 return new Response(false, 699, new ArrayList<SProbenart>());
832e67663fd9 Added authorization to all services.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
91 }
48
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
92 }
afc3ef3dc3c3 New REST service for 'Probenart Stammdaten'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
93 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)