view 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
line wrap: on
line source
package de.intevation.flys.artifacts.model;

import de.intevation.flys.artifacts.cache.CacheFactory;

import de.intevation.flys.backend.SessionHolder;

import net.sf.ehcache.Cache;
import net.sf.ehcache.Element;

import org.apache.log4j.Logger;

import org.hibernate.Session;

public class FixingsOverviewFactory
{
    private static Logger log = Logger.getLogger(FixingsOverviewFactory.class);

    public static final String CACHE_NAME = "fixings-overviews";

    private FixingsOverviewFactory() {
    }


    public static FixingsOverview getOverview(String river) {

        log.debug("Looking for fixings overview for river '" + river + "'");

        Cache cache = CacheFactory.getCache(CACHE_NAME);

        if (cache == null) {
            return getUncached(river);
        }

        String key = "fix-over-" + river;

        Element element = cache.get(key);

        if (element != null) {
            return (FixingsOverview)element.getValue();
        }

        FixingsOverview overview = getUncached(river);

        if (overview != null) {
            element = new Element(key, overview);
            cache.put(element);
        }

        return overview;
    }

    public static FixingsOverview getUncached(String river) {
        FixingsOverview overview = new FixingsOverview(river);

        Session session = SessionHolder.HOLDER.get();

        return overview.load(session) ? overview : null;
    }
}
// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org