Mercurial > dive4elements > river
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 } |