Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/FixingsOverviewFactory.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/FixingsOverviewFactory.java@bd047b71ab37 |
children | 4897a58c8746 |
comparison
equal
deleted
inserted
replaced
5837:d9901a08d0a6 | 5838:5aa05a7a34b7 |
---|---|
1 package org.dive4elements.river.artifacts.model; | |
2 | |
3 import org.dive4elements.river.artifacts.cache.CacheFactory; | |
4 | |
5 import org.dive4elements.river.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 boolean debug = log.isDebugEnabled(); | |
27 | |
28 if (debug) { | |
29 log.debug( | |
30 "Looking for fixings overview for river '" + river + "'"); | |
31 } | |
32 | |
33 Cache cache = CacheFactory.getCache(CACHE_NAME); | |
34 | |
35 if (cache == null) { | |
36 if (debug) { | |
37 log.debug("Cache not configured."); | |
38 } | |
39 return getUncached(river); | |
40 } | |
41 | |
42 String key = "fix-over-" + river; | |
43 | |
44 Element element = cache.get(key); | |
45 | |
46 if (element != null) { | |
47 if (debug) { | |
48 log.debug("Overview found in cache"); | |
49 } | |
50 return (FixingsOverview)element.getValue(); | |
51 } | |
52 | |
53 FixingsOverview overview = getUncached(river); | |
54 | |
55 if (overview != null) { | |
56 if (debug) { | |
57 log.debug("Store overview in cache."); | |
58 } | |
59 cache.put(new Element(key, overview)); | |
60 } | |
61 | |
62 return overview; | |
63 } | |
64 | |
65 public static FixingsOverview getUncached(String river) { | |
66 FixingsOverview overview = new FixingsOverview(river); | |
67 | |
68 Session session = SessionHolder.HOLDER.get(); | |
69 | |
70 return overview.load(session) ? overview : null; | |
71 } | |
72 } | |
73 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |