annotate src/main/java/de/intevation/lada/rest/SNetzBetreiberService.java @ 263:2098db2e8fbd M1

Code documentation.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 17 Jul 2013 09:40:53 +0200
parents d8a3d188046f
children 183f8116d9a6
rev   line source
106
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
1 package de.intevation.lada.rest;
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
2
206
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
3 import java.util.ArrayList;
106
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
4 import java.util.logging.Logger;
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
5
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
6 import javax.faces.bean.RequestScoped;
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
7 import javax.inject.Inject;
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
8 import javax.inject.Named;
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
9 import javax.ws.rs.GET;
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
10 import javax.ws.rs.Path;
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
11 import javax.ws.rs.PathParam;
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
12 import javax.ws.rs.Produces;
206
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
13 import javax.ws.rs.core.Context;
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
14 import javax.ws.rs.core.HttpHeaders;
106
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@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;
d8a3d188046f Renamed package authentication to auth.
Raimund Renkert <rrenkert@intevation.de>
parents: 210
diff changeset
18 import de.intevation.lada.auth.AuthenticationResponse;
206
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
19 import de.intevation.lada.data.QueryBuilder;
106
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
20 import de.intevation.lada.data.Repository;
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
21 import de.intevation.lada.model.SNetzBetreiber;
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
22
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
23 /**
210
a305412206a3 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 206
diff changeset
24 * This class produces a RESTful service to read SNetzbetreiber objects.
106
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
25 *
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
26 * @author <a href="mailto:torsten.irlaender@intevation.de">Torsten Irländer</a>
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
27 */
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
28 @Path("/netzbetreiber")
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
29 @RequestScoped
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
30 public class SNetzBetreiberService
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
31 {
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
32 /**
263
2098db2e8fbd Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 232
diff changeset
33 * The Repository for SNetzBetreiber.
106
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
34 */
133
750585244083 Use named injection points in stammdaten repositories.
Raimund Renkert <rrenkert@intevation.de>
parents: 107
diff changeset
35 @Inject
157
42e0085692df Fixed typo in named injection point.
Raimund Renkert <rrenkert@intevation.de>
parents: 134
diff changeset
36 @Named("readonlyrepository")
106
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
37 private Repository repository;
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
38
210
a305412206a3 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 206
diff changeset
39 /**
a305412206a3 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 206
diff changeset
40 * The authorization module.
a305412206a3 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 206
diff changeset
41 */
206
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
42 @Inject
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
43 @Named("ldapauth")
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
44 private Authentication authentication;
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
45
106
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
46 /**
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
47 * The logger for this class
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
48 */
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
49 @Inject
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
50 private Logger logger;
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
51
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
52 /**
263
2098db2e8fbd Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 232
diff changeset
53 * Request all SNetzBetreiber objects.
106
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
54 *
210
a305412206a3 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 206
diff changeset
55 * @param headers The HTTP header containing authorization information.
a305412206a3 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 206
diff changeset
56 * @return Response object.
106
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
57 */
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
58 @GET
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
59 @Produces("text/json")
206
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
60 public Response findAll(@Context HttpHeaders headers) {
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
61 try {
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
62 AuthenticationResponse auth =
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
63 authentication.authorizedGroups(headers);
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
64 QueryBuilder<SNetzBetreiber> builder =
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
65 new QueryBuilder<SNetzBetreiber>(
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
66 repository.getEntityManager(), SNetzBetreiber.class);
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
67 builder.or("netzbetreiberId", auth.getNetzbetreiber());
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
68 return repository.filter(builder.getQuery());
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
69 }
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
70 catch(AuthenticationException ae) {
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
71 return new Response(false, 699, new ArrayList<SNetzBetreiber>());
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
72 }
106
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
73 }
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
74
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
75 /**
263
2098db2e8fbd Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 232
diff changeset
76 * Request a single SNetzBetreiber via its id.
106
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
77 *
210
a305412206a3 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 206
diff changeset
78 * @param id The object id.
a305412206a3 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 206
diff changeset
79 * @param headers The HTTP header containing authorization information.
a305412206a3 Code documentation.
Raimund Renkert <rrenkert@intevation.de>
parents: 206
diff changeset
80 * @return Response object.
106
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
81 */
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
82 @GET
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
83 @Path("/{id}")
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
84 @Produces("text/json")
206
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
85 public Response findById(
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
86 @PathParam("id") String id,
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
87 @Context HttpHeaders headers) {
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
88 try {
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
89 AuthenticationResponse auth =
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
90 authentication.authorizedGroups(headers);
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
91 if (auth.getNetzbetreiber().contains(id)) {
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
92 return repository.findById(SNetzBetreiber.class, id);
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
93 }
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
94 return new Response(false, 698, new ArrayList<SNetzBetreiber>());
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
95 }
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
96 catch(AuthenticationException ae) {
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
97 return new Response(false, 699, new ArrayList<SNetzBetreiber>());
ae56f0a326dc Added authorization to 'netzbetreiber' service.
Raimund Renkert <rrenkert@intevation.de>
parents: 157
diff changeset
98 }
106
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
99 }
069cec27c9c6 Added Interface to get Netzbetreiber.
Torsten Irländer <torsten.irlaender@intevation.de>
parents:
diff changeset
100 }
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)