annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/SQOverviewFactory.java @ 5838:5aa05a7a34b7

Rename modules to more fitting names.
author Sascha L. Teichmann <teichmann@intevation.de>
date Thu, 25 Apr 2013 15:23:37 +0200
parents flys-artifacts/src/main/java/org/dive4elements/river/artifacts/model/SQOverviewFactory.java@bd047b71ab37
children 4897a58c8746
rev   line source
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3289
diff changeset
1 package org.dive4elements.river.artifacts.model;
3274
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
2
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3289
diff changeset
3 import org.dive4elements.river.artifacts.cache.CacheFactory;
3274
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
4
5831
bd047b71ab37 Repaired internal references
Sascha L. Teichmann <teichmann@intevation.de>
parents: 3289
diff changeset
5 import org.dive4elements.river.backend.SedDBSessionHolder;
3274
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
6
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
7 import net.sf.ehcache.Cache;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
8 import net.sf.ehcache.Element;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
9
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
10 import org.apache.log4j.Logger;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
11
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
12 import org.hibernate.Session;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
13
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
14 public class SQOverviewFactory {
3289
ec9aab93f292 SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3287
diff changeset
15
ec9aab93f292 SQ: First peek into fetching relevant data from SedDB
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3287
diff changeset
16 private static Logger log = Logger.getLogger(SQOverviewFactory.class);
3274
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
17
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
18 public static final String CACHE_NAME = "sq-overviews";
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
19
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
20 private SQOverviewFactory() {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
21 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
22
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
23
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
24 public static SQOverview getOverview(String river) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
25
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
26 boolean debug = log.isDebugEnabled();
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
27
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
28 if (debug) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
29 log.debug(
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
30 "Looking for sq overview for river '" + river + "'");
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
31 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
32
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
33 Cache cache = CacheFactory.getCache(CACHE_NAME);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
34
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
35 if (cache == null) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
36 if (debug) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
37 log.debug("Cache not configured.");
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
38 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
39 return getUncached(river);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
40 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
41
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
42 String key = "sq-over-" + river;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
43
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
44 Element element = cache.get(key);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
45
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
46 if (element != null) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
47 if (debug) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
48 log.debug("Overview found in cache");
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
49 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
50 return (SQOverview)element.getValue();
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
51 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
52
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
53 SQOverview overview = getUncached(river);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
54
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
55 if (overview != null) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
56 if (debug) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
57 log.debug("Store overview in cache.");
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
58 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
59 cache.put(new Element(key, overview));
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
60 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
61
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
62 return overview;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
63 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
64
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
65 public static SQOverview getUncached(String river) {
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
66 SQOverview overview = new SQOverview(river);
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
67
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
68 Session session = SedDBSessionHolder.HOLDER.get();
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
69
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
70 return overview.load(session) ? overview : null;
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
71 }
43e42315ce22 Added service for an overview chart of measuring points in sq relation.
Raimund Renkert <raimund.renkert@intevation.de>
parents:
diff changeset
72 }
3287
30f157c7e466 SQ: Filter out meassures which don't have a 'Siebsatz'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 3274
diff changeset
73 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org