Mercurial > dive4elements > river
view flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/BedOverviewFactory.java @ 5500:700ac898ab0b
Added Factory and model for static sq relations.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Thu, 28 Mar 2013 15:15:33 +0100 |
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; } }