package com.idega.business; import javax.ejb.SessionBean; import javax.ejb.SessionContext; import javax.servlet.ServletContext; import javax.servlet.http.HttpSession; import com.idega.idegaweb.IWApplicationContext; import com.idega.idegaweb.IWUserContext; import com.idega.idegaweb.IWUserContextImpl; import com.idega.presentation.IWContext; import com.idega.user.data.User; /** * Title: idega Business Objects * Description: A class to be a base implementation for IBO Session (Stateful EJB Session) beans * Copyright: Copyright (c) 2002 * Company: idega * @author <a href="tryggvi@idega.is">Tryggvi Larusson</a> */ public class IBOSessionBean extends IBOServiceBean implements IBOSession,SessionBean{ private SessionContext sessionContext; private IWUserContext iwuc; private String sessionKey="IBO."+this.getClass().getName(); public IBOSessionBean() { } public void ejbCreate(IWUserContext iwuc){ this.setUserContext(iwuc); } public void ejbPostCreate(IWUserContext iwuc){ } public void setUserContext(IWUserContext _iwuc) { IWUserContext iwucToSet = _iwuc; if(_iwuc instanceof IWContext){ IWContext iwc = (IWContext)_iwuc; HttpSession session = iwc.getSession(); ServletContext sc = iwc.getServletContext(); iwucToSet = new IWUserContextImpl(session,sc); } this.iwuc=iwucToSet; } public IWUserContext getUserContext() { return this.iwuc; } public IWApplicationContext getIWApplicationContext(){ return this.getUserContext().getApplicationContext(); } public void remove(){ this.ejbRemove(); } public void ejbRemove(){ this.getUserContext().removeSessionAttribute(this.sessionKey); this.sessionContext=null; this.iwuc=null; } protected IBOSession getSessionInstance(Class beanClass)throws IBOLookupException{ return IBOLookup.getSessionInstance(this.getUserContext(),beanClass); } protected User getCurrentUser(){ return this.getUserContext().getCurrentUser(); } }