Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/BedloadOverviewFactory.java @ 3786:4adc35aa655c
merged flys-artifacts/2.9.1
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Fri, 28 Sep 2012 12:14:47 +0200 |
parents | ae598cf50682 |
children |
comparison
equal
deleted
inserted
replaced
3719:e82acd5c86f7 | 3786:4adc35aa655c |
---|---|
1 package de.intevation.flys.artifacts.model.minfo; | |
2 | |
3 import net.sf.ehcache.Cache; | |
4 import net.sf.ehcache.Element; | |
5 | |
6 import org.apache.log4j.Logger; | |
7 import org.hibernate.Session; | |
8 | |
9 import de.intevation.flys.artifacts.cache.CacheFactory; | |
10 import de.intevation.flys.backend.SedDBSessionHolder; | |
11 | |
12 public class BedloadOverviewFactory { | |
13 | |
14 private static Logger log = Logger.getLogger(BedloadOverviewFactory.class); | |
15 | |
16 public static final String CACHE_NAME = "sq-overviews"; | |
17 | |
18 private BedloadOverviewFactory() { | |
19 } | |
20 | |
21 | |
22 public static BedloadOverview getOverview(String river) { | |
23 | |
24 boolean debug = log.isDebugEnabled(); | |
25 | |
26 if (debug) { | |
27 log.debug( | |
28 "Looking for bedload overview for river '" + river + "'"); | |
29 } | |
30 | |
31 Cache cache = CacheFactory.getCache(CACHE_NAME); | |
32 | |
33 if (cache == null) { | |
34 if (debug) { | |
35 log.debug("Cache not configured."); | |
36 } | |
37 return getUncached(river); | |
38 } | |
39 | |
40 String key = "bedload-over-" + river; | |
41 | |
42 Element element = cache.get(key); | |
43 | |
44 if (element != null) { | |
45 if (debug) { | |
46 log.debug("Overview found in cache"); | |
47 } | |
48 return (BedloadOverview)element.getValue(); | |
49 } | |
50 | |
51 BedloadOverview overview = getUncached(river); | |
52 | |
53 if (overview != null) { | |
54 if (debug) { | |
55 log.debug("Store overview in cache."); | |
56 } | |
57 cache.put(new Element(key, overview)); | |
58 } | |
59 | |
60 return overview; | |
61 } | |
62 | |
63 public static BedloadOverview getUncached(String river) { | |
64 BedloadOverview overview = new BedloadOverview(river); | |
65 | |
66 Session session = SedDBSessionHolder.HOLDER.get(); | |
67 | |
68 return overview.load(session) ? overview : null; | |
69 } | |
70 } |