comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/SQOverviewFactory.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/SQOverviewFactory.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.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
16 private static Logger log = Logger.getLogger(SQOverviewFactory.class);
17
18 public static final String CACHE_NAME = "sq-overviews";
19
20 private SQOverviewFactory() {
21 }
22
23
24 public static SQOverview getOverview(String river) {
25
26 boolean debug = log.isDebugEnabled();
27
28 if (debug) {
29 log.debug(
30 "Looking for sq 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 = "sq-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 (SQOverview)element.getValue();
51 }
52
53 SQOverview 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 SQOverview getUncached(String river) {
66 SQOverview overview = new SQOverview(river);
67
68 Session session = SedDBSessionHolder.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 :

http://dive4elements.wald.intevation.org