annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/services/RiverService.java @ 1025:02c327ffbad7

Datacage: Extended schema for artifacts and collections to have creation times, too. flys-artifacts/trunk@2484 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 10 Aug 2011 14:57:12 +0000
parents a63d79107289
children 26e19cdaed5e
rev   line source
118
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.artifacts.services;
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
2
133
d6197a05a87c The 'rivers' service retrieves the rivers from backend now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 118
diff changeset
3 import java.util.List;
d6197a05a87c The 'rivers' service retrieves the rivers from backend now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 118
diff changeset
4
118
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
5 import org.apache.log4j.Logger;
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
6
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
7 import org.w3c.dom.Document;
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
8 import org.w3c.dom.Element;
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
9
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
10 import de.intevation.artifacts.CallMeta;
966
a63d79107289 Adjusted services to implement changed signature.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 316
diff changeset
11 import de.intevation.artifacts.GlobalContext;
118
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
12
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
13 import de.intevation.artifacts.common.ArtifactNamespaceContext;
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
14 import de.intevation.artifacts.common.utils.XMLUtils;
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
15
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
16 import de.intevation.artifactdatabase.DefaultService;
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
17
316
4aa078e28cfd Bugfix: repaired broken imports of the session holder.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 314
diff changeset
18 import de.intevation.flys.backend.SessionHolder;
133
d6197a05a87c The 'rivers' service retrieves the rivers from backend now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 118
diff changeset
19 import de.intevation.flys.model.River;
d6197a05a87c The 'rivers' service retrieves the rivers from backend now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 118
diff changeset
20
d6197a05a87c The 'rivers' service retrieves the rivers from backend now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 118
diff changeset
21 import de.intevation.flys.artifacts.model.RiverFactory;
d6197a05a87c The 'rivers' service retrieves the rivers from backend now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 118
diff changeset
22
314
aeeb9054b7cf Acquire/release sessions in services to avoid db connection leaks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
23 import org.hibernate.Session;
118
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
24
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
25 /**
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
26 * This service provides information about the supported rivers by this
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
27 * application.
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
28 *
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
29 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
30 */
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
31 public class RiverService extends DefaultService {
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
32
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
33 /** The logger used in this service.*/
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
34 private static Logger logger = Logger.getLogger(RiverService.class);
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
35
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
36
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
37 /**
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
38 * The default constructor.
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
39 */
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
40 public RiverService() {
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
41 }
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
42
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
43
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
44 public Document process(
966
a63d79107289 Adjusted services to implement changed signature.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 316
diff changeset
45 Document data,
a63d79107289 Adjusted services to implement changed signature.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 316
diff changeset
46 GlobalContext globalContext,
a63d79107289 Adjusted services to implement changed signature.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 316
diff changeset
47 CallMeta callMeta
a63d79107289 Adjusted services to implement changed signature.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 316
diff changeset
48 ) {
118
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
49 logger.debug("RiverService.process");
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
50
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
51 Document result = XMLUtils.newDocument();
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
52
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
53 XMLUtils.ElementCreator ec = new XMLUtils.ElementCreator(
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
54 result,
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
55 ArtifactNamespaceContext.NAMESPACE_URI,
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
56 ArtifactNamespaceContext.NAMESPACE_PREFIX);
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
57
314
aeeb9054b7cf Acquire/release sessions in services to avoid db connection leaks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
58 Session session = SessionHolder.acquire();
aeeb9054b7cf Acquire/release sessions in services to avoid db connection leaks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
59 try {
aeeb9054b7cf Acquire/release sessions in services to avoid db connection leaks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
60 List<River> allRivers = RiverFactory.getRivers();
118
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
61
314
aeeb9054b7cf Acquire/release sessions in services to avoid db connection leaks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
62 Element rivers = ec.create("rivers");
118
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
63
314
aeeb9054b7cf Acquire/release sessions in services to avoid db connection leaks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
64 for (River river: allRivers) {
aeeb9054b7cf Acquire/release sessions in services to avoid db connection leaks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
65 Element r = ec.create("river");
aeeb9054b7cf Acquire/release sessions in services to avoid db connection leaks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
66 ec.addAttr(r, "name", river.getName(), true);
aeeb9054b7cf Acquire/release sessions in services to avoid db connection leaks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
67
aeeb9054b7cf Acquire/release sessions in services to avoid db connection leaks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
68 rivers.appendChild(r);
aeeb9054b7cf Acquire/release sessions in services to avoid db connection leaks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
69 }
aeeb9054b7cf Acquire/release sessions in services to avoid db connection leaks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
70
aeeb9054b7cf Acquire/release sessions in services to avoid db connection leaks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
71 result.appendChild(rivers);
133
d6197a05a87c The 'rivers' service retrieves the rivers from backend now.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 118
diff changeset
72 }
314
aeeb9054b7cf Acquire/release sessions in services to avoid db connection leaks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
73 finally {
aeeb9054b7cf Acquire/release sessions in services to avoid db connection leaks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
74 session.close();
aeeb9054b7cf Acquire/release sessions in services to avoid db connection leaks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
75 SessionHolder.release();
aeeb9054b7cf Acquire/release sessions in services to avoid db connection leaks.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 133
diff changeset
76 }
118
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
77
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
78 return result;
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
79 }
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
80 }
888e3b1dcdd9 Added a RiverService (/service/rivers) that retrieves a list of provided rivers.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents:
diff changeset
81 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org