comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/FixingsOverviewFactory.java @ 2561:b3f6d49cdc80

Service to generate the data needed to build the "Fixerungen pro Fluss Uebersicht" flys-artifacts/trunk@4087 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sun, 19 Feb 2012 17:14:39 +0000
parents
children 8bc1e1cb7f7b
comparison
equal deleted inserted replaced
2560:0d8c97374dc9 2561:b3f6d49cdc80
1 package de.intevation.flys.artifacts.model;
2
3 import de.intevation.flys.artifacts.cache.CacheFactory;
4
5 import de.intevation.flys.backend.SessionHolder;
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 FixingsOverviewFactory
15 {
16 private static Logger log = Logger.getLogger(FixingsOverviewFactory.class);
17
18 public static final String CACHE_NAME = "fixings-overviews";
19
20 private FixingsOverviewFactory() {
21 }
22
23
24 public static FixingsOverview getOverview(String river) {
25
26 log.debug("Looking for fixings overview for river '" + river + "'");
27
28 Cache cache = CacheFactory.getCache(CACHE_NAME);
29
30 if (cache == null) {
31 return getUncached(river);
32 }
33
34 String key = "fix-over-" + river;
35
36 Element element = cache.get(key);
37
38 if (element != null) {
39 return (FixingsOverview)element.getValue();
40 }
41
42 FixingsOverview overview = getUncached(river);
43
44 if (overview != null) {
45 element = new Element(key, overview);
46 cache.put(element);
47 }
48
49 return overview;
50 }
51
52 public static FixingsOverview getUncached(String river) {
53 FixingsOverview overview = new FixingsOverview(river);
54
55 Session session = SessionHolder.HOLDER.get();
56
57 return overview.load(session) ? overview : null;
58 }
59 }
60 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org