package com.sun.j2ee.blueprints.adventure.web;
import javax.servlet.ServletContext;
import javax.servlet.http.*;
import java.beans.Beans;
import com.sun.j2ee.blueprints.util.tracer.Debug;
import com.sun.j2ee.blueprints.waf.controller.web.WebComponentManager;
import com.sun.j2ee.blueprints.customer.CustomerFacade;
import com.sun.j2ee.blueprints.signon.SignOnFacade;
import com.sun.j2ee.blueprints.catalog.CatalogFacade;
public class AdventureComponentManager extends WebComponentManager
implements HttpSessionListener {
public AdventureComponentManager () {
}
public void init(HttpSession session) {
session.setAttribute(AdventureKeys.COMPONENT_MANAGER, this);
getCart(session);
}
public void sessionCreated(HttpSessionEvent se) {
se.getSession().setAttribute(AdventureKeys.COMPONENT_MANAGER, this);
se.getSession().setAttribute(AdventureKeys.CART,
getCart(se.getSession()));
}
public void sessionDestroyed(HttpSessionEvent se) {
try {
getCart(se.getSession());
} catch (Exception e) {
}
}
public Cart getCart(HttpSession session) {
Cart cart = (Cart)session.getAttribute(AdventureKeys.CART);
if (cart == null) {
try {
cart = (Cart)Beans.instantiate(this.getClass().getClassLoader(),
"com.sun.j2ee.blueprints.adventure.web.Cart");
session.setAttribute(AdventureKeys.CART, cart);
} catch (Exception ex) {
ex.printStackTrace();
Debug.print("Error instanciating Cart object: " + ex);
}
}
return cart;
}
public CatalogFacade getCatalogFacade (HttpSession session) {
ServletContext context = session.getServletContext();
CatalogFacade catalogFacade = null;
if (context.getAttribute(AdventureKeys.CATALOG_FACADE) != null) {
catalogFacade = (CatalogFacade)context.getAttribute(AdventureKeys.CATALOG_FACADE);
} else {
catalogFacade = new CatalogFacade();
context.setAttribute(AdventureKeys.CATALOG_FACADE, catalogFacade);
}
return catalogFacade;
}
public SignOnFacade getSignOnFacade (HttpSession session) {
ServletContext context = session.getServletContext();
SignOnFacade signOnFacade = null;
if (context.getAttribute(AdventureKeys.SIGN_ON_FACADE) != null) {
signOnFacade = (SignOnFacade)context.getAttribute(AdventureKeys.SIGN_ON_FACADE);
} else {
signOnFacade = new SignOnFacade();
context.setAttribute(AdventureKeys.SIGN_ON_FACADE, signOnFacade);
}
return signOnFacade;
}
public CustomerFacade getCustomerFacade (HttpSession session) {
ServletContext context = session.getServletContext();
CustomerFacade CustomerFacade = null;
if (context.getAttribute(AdventureKeys.CUSTOMER_FACADE) != null) {
CustomerFacade = (CustomerFacade)context.getAttribute(AdventureKeys.CUSTOMER_FACADE);
} else {
CustomerFacade = new CustomerFacade();
context.setAttribute(AdventureKeys.CUSTOMER_FACADE, CustomerFacade);
}
return CustomerFacade;
}
}