/* * Copyright (c) JForum Team. All rights reserved. * * The software in this package is published under the terms of the LGPL * license a copy of which has been included with this distribution in the * license.txt file. * * The JForum Project * http://www.jforum.net */ package net.jforum.api; import javax.servlet.http.HttpServletRequest; import net.jforum.util.ConfigKeys; import org.springframework.context.ApplicationContext; /** * Base class to be used to run any JForum code in other environments. * @author Rafael Steil */ public abstract class JForumExecutionContext { private ApplicationContext context; private HttpServletRequest request; private boolean initialized; public JForumExecutionContext(HttpServletRequest request) { this.request = request; this.context = (ApplicationContext)request.getSession().getServletContext() .getAttribute(ConfigKeys.SPRING_CONTEXT); this.initialized = this.context != null; } protected HttpServletRequest getReques() { return this.request; } /** * Check if JForum is initialized and ready to use. * @return true if JForum is ready for use */ protected boolean isInitialized() { return this.initialized; } public abstract void execute(); @SuppressWarnings("unchecked") protected final <T> T getComponent(Class<T> k) { return (T)this.context.getBean(k.getName()); } }