tim@8: /** tim@8: * tim@8: */ tim@8: package de.intevation.gnv.action.sessionmodel; tim@8: tim@8: import javax.servlet.http.HttpServletRequest; tim@8: tim@8: import org.apache.log4j.Logger; tim@8: tim@8: /** tim@8: * @author Tim Englich sascha@681: * tim@8: */ tim@8: public class SessionModelFactory { tim@36: tim@8: public final static String SESSION_MODEL_ID = "de.intevation.gnv.action.sessionmodel.SessionModel.ID"; tim@8: /** tim@8: * the logger, used to log exceptions and additonaly information tim@8: */ tim@8: private static Logger log = Logger.getLogger(SessionModelFactory.class); tim@8: tim@8: /** tim@8: * The singleton Instance of this Factory. tim@8: */ tim@8: private static SessionModelFactory instance = null; tim@8: tim@8: /** tim@8: * Constructor tim@8: */ tim@8: private SessionModelFactory() { tim@8: super(); tim@8: } tim@8: tim@8: /** tim@8: * This Method provides an singleton Instance of this Class. sascha@681: * tim@8: * @return an singleton Instance of this Class tim@8: */ ingo@394: public synchronized static SessionModelFactory getInstance() { tim@36: if (instance == null) { tim@8: instance = new SessionModelFactory(); tim@8: } tim@8: return instance; tim@8: } tim@36: tim@8: /** tim@8: * Getting the ArtifactDatabaseClient sascha@681: * tim@8: * @return the ArtifactDatabaseClient tim@8: */ tim@36: public SessionModel getSessionModel(HttpServletRequest request) { ingo@394: synchronized (request) { tim@8: SessionModel sm = null; ingo@394: Object obj = request.getSession().getAttribute(SESSION_MODEL_ID); ingo@394: if (obj instanceof SessionModel) { ingo@394: sm = (SessionModel) obj; tim@36: } else { tim@8: sm = new DefaultSessionModel(); tim@8: request.getSession().setAttribute(SESSION_MODEL_ID, sm); tim@8: } tim@36: tim@8: return sm; tim@36: } tim@8: } tim@8: tim@8: }