comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/SQOverviewFactory.java @ 3274:43e42315ce22

Added service for an overview chart of measuring points in sq relation. flys-artifacts/trunk@4918 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Raimund Renkert <raimund.renkert@intevation.de>
date Tue, 10 Jul 2012 16:37:48 +0000
parents
children 30f157c7e466
comparison
equal deleted inserted replaced
3273:739aa90eb79e 3274:43e42315ce22
1 package de.intevation.flys.artifacts.model;
2
3 import de.intevation.flys.artifacts.cache.CacheFactory;
4
5 import de.intevation.flys.backend.SedDBSessionHolder;
6
7 import net.sf.ehcache.Cache;
8 import net.sf.ehcache.Element;
9
10 import org.apache.log4j.Logger;
11
12 import org.hibernate.Session;
13
14 public class SQOverviewFactory {
15 private static Logger log = Logger.getLogger(SQOverviewFactory.class);
16
17 public static final String CACHE_NAME = "sq-overviews";
18
19 private SQOverviewFactory() {
20 }
21
22
23 public static SQOverview getOverview(String river) {
24
25 boolean debug = log.isDebugEnabled();
26
27 if (debug) {
28 log.debug(
29 "Looking for sq overview for river '" + river + "'");
30 }
31
32 Cache cache = CacheFactory.getCache(CACHE_NAME);
33
34 if (cache == null) {
35 if (debug) {
36 log.debug("Cache not configured.");
37 }
38 return getUncached(river);
39 }
40
41 String key = "sq-over-" + river;
42
43 Element element = cache.get(key);
44
45 if (element != null) {
46 if (debug) {
47 log.debug("Overview found in cache");
48 }
49 return (SQOverview)element.getValue();
50 }
51
52 SQOverview overview = getUncached(river);
53
54 if (overview != null) {
55 if (debug) {
56 log.debug("Store overview in cache.");
57 }
58 cache.put(new Element(key, overview));
59 }
60
61 return overview;
62 }
63
64 public static SQOverview getUncached(String river) {
65 SQOverview overview = new SQOverview(river);
66
67 Session session = SedDBSessionHolder.HOLDER.get();
68
69 return overview.load(session) ? overview : null;
70 }
71 }

http://dive4elements.wald.intevation.org