Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/BedOverviewFactory.java @ 3903:0623cdf32b38
Document issue880
flys-artifacts/trunk@5568 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Sat, 22 Sep 2012 09:55:01 +0000 |
parents | ae598cf50682 |
children |
line wrap: on
line source
package de.intevation.flys.artifacts.model.minfo; import net.sf.ehcache.Cache; import net.sf.ehcache.Element; import org.apache.log4j.Logger; import org.hibernate.Session; import de.intevation.flys.artifacts.cache.CacheFactory; import de.intevation.flys.backend.SedDBSessionHolder; public class BedOverviewFactory { private static Logger log = Logger.getLogger(BedOverviewFactory.class); public static final String CACHE_NAME = "sq-overviews"; private BedOverviewFactory() { } public static BedOverview getOverview(String river) { boolean debug = log.isDebugEnabled(); if (debug) { log.debug( "Looking for bed overview for river '" + river + "'"); } Cache cache = CacheFactory.getCache(CACHE_NAME); if (cache == null) { if (debug) { log.debug("Cache not configured."); } return getUncached(river); } String key = "bed-over-" + river; Element element = cache.get(key); if (element != null) { if (debug) { log.debug("Overview found in cache"); } return (BedOverview)element.getValue(); } BedOverview overview = getUncached(river); if (overview != null) { if (debug) { log.debug("Store overview in cache."); } cache.put(new Element(key, overview)); } return overview; } public static BedOverview getUncached(String river) { BedOverview overview = new BedOverview(river); Session session = SedDBSessionHolder.HOLDER.get(); return overview.load(session) ? overview : null; } }