Mercurial > dive4elements > gnv-client
diff gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/cache/CacheFactory.java @ 99:bb45c5097cb6
ehcache Integration for storing the chartresultvalues
gnv-artifacts/trunk@146 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Mon, 28 Sep 2009 14:17:15 +0000 |
parents | |
children | 7fb9441dd8af |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gnv-artifacts/src/main/java/de/intevation/gnv/artifacts/cache/CacheFactory.java Mon Sep 28 14:17:15 2009 +0000 @@ -0,0 +1,82 @@ +/** + * + */ +package de.intevation.gnv.artifacts.cache; + +import net.sf.ehcache.Cache; +import net.sf.ehcache.CacheManager; + +import org.apache.log4j.Logger; + +/** + * @author Tim Englich <tim.englich@intevation.de> + * + */ +public class CacheFactory { + + /** + * the logger, used to log exceptions and additonaly information + */ + private static Logger log = Logger.getLogger(CacheFactory.class); + + private final static String CACHENAME = "artifactdata"; + + + /** + * The singleton Instance of this Factory. + */ + private static CacheFactory instance = null; + + /** + * + */ + private CacheManager cacheManager = null; + + /** + * Basic-Constructor of this Class + */ + private CacheFactory() { + super(); + } + + /** + * This Method provides an singleton Instance of this Class. + * @return an singleton Instance of this Class + */ + public static CacheFactory getInstance(){ + if (instance == null){ + instance = new CacheFactory(); + } + return instance; + } + + + /** + * Getting the ConnectionPool + * @return the ConnectionPool + */ + public Cache getCache(){ + return this.cacheManager.getCache(CACHENAME); + } + + /** + * Initializes the ConnectionPool. + * Should only be called once on system startup + * @param properties the Properties for the Individual Configuration of the ConnectionPool + */ + public void initializeCache(String configurationFileName){ + if (cacheManager == null){ + cacheManager = new CacheManager(configurationFileName); + cacheManager.addCache(CACHENAME); + } + } + + /** + * Checks if the ConnectionPool has already been initialized. + * @return true if the ConnectionPool is initialized. + */ + public boolean isInitialized(){ + return this.cacheManager != null; + } + +}