|
ModelManager |
|
/*
* $Id: ModelManager.java,v 1.23.4.7 2001/03/16 19:56:19 gmurray Exp $
* Copyright 2001 Sun Microsystems, Inc. All rights reserved.
* Copyright 2001 Sun Microsystems, Inc. Tous droits r?erv?.
*/
package com.sun.j2ee.blueprints.petstore.control.web;
import java.util.HashMap;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import javax.servlet.http.HttpSession;
import javax.servlet.ServletContext;
import com.sun.j2ee.blueprints.util.tracer.Debug;
import com.sun.j2ee.blueprints.petstore.util.WebKeys;
import com.sun.j2ee.blueprints.petstore.util.EJBUtil;
import com.sun.j2ee.blueprints.petstore.control.web.CatalogWebImpl;
import com.sun.j2ee.blueprints.petstore.control.web.ShoppingCartWebImpl;
import com.sun.j2ee.blueprints.shoppingcart.cart.model.ShoppingCartModel;
import com.sun.j2ee.blueprints.shoppingcart.cart.ejb.ShoppingCart;
import com.sun.j2ee.blueprints.customer.order.model.OrderModel;
import com.sun.j2ee.blueprints.customer.account.model.AccountModel;
import com.sun.j2ee.blueprints.customer.customer.ejb.Customer;
import com.sun.j2ee.blueprints.petstore.control.web.CustomerWebImpl;
import com.sun.j2ee.blueprints.personalization.profilemgr.model.ProfileMgrModel;
import com.sun.j2ee.blueprints.personalization.profilemgr.ejb.ProfileMgr;
import com.sun.j2ee.blueprints.petstore.control.web.ProfileMgrWebImpl;
import com.sun.j2ee.blueprints.petstore.control.ejb.ShoppingClientController;
import java.rmi.RemoteException;
import javax.ejb.CreateException;
import javax.ejb.FinderException;
import com.sun.j2ee.blueprints.petstore.control.exceptions.GeneralFailureException;
import com.sun.j2ee.blueprints.petstore.control.exceptions.EStoreAppException;
/**
* This interface provides a convenient set of methods for the
* web tier components to access all the model objects.
* This class also insures that only one copy of the model objects
* are created for web tier access by placing a reference to the
* model objects in the session.
*/
public class ModelManager extends ModelUpdateNotifier implements java.io.Serializable {
private ServletContext context;
private HttpSession session;
private ShoppingClientController sccEjb = null;
private ShoppingCart cartEjb = null;
private Customer custEjb = null;
private ProfileMgr proEjb = null;
private ShoppingClientControllerWebImpl scc = null;
public ModelManager() { }
public void init(ServletContext context, HttpSession session) {
this.session = session;
this.context = context;
getCustomerWebImpl();
getCartModel();
getCatalogModel();
getProfileMgrModel();
getInventoryModel();
}
public void setSCC(ShoppingClientControllerWebImpl scc) {
this.scc = scc;
}
public InventoryWebImpl getInventoryModel() {
InventoryWebImpl inventory = (InventoryWebImpl)
context.getAttribute(WebKeys.InventoryModelKey);
if (inventory == null) {
inventory = new InventoryWebImpl();
context.setAttribute(WebKeys.InventoryModelKey, inventory);
}
return inventory;
}
public CatalogWebImpl getCatalogModel() {
CatalogWebImpl catalog = (CatalogWebImpl)
context.getAttribute(WebKeys.CatalogModelKey);
if (catalog == null) {
catalog = new CatalogWebImpl();
context.setAttribute(WebKeys.CatalogModelKey, catalog);
}
return catalog;
}
public CustomerWebImpl getCustomerWebImpl() {
CustomerWebImpl customer = (CustomerWebImpl)
session.getAttribute(WebKeys.CustomerWebImplKey);
if (customer == null) {
customer = new CustomerWebImpl(this);
session.setAttribute(WebKeys.CustomerWebImplKey, customer);
}
return customer;
}
public ProfileMgrModel getProfileMgrModel() {
ProfileMgrModel pro = (ProfileMgrModel)
session.getAttribute(WebKeys.ProfileMgrModelKey);
if (pro == null) {
pro = new ProfileMgrWebImpl(this);
session.setAttribute(WebKeys.ProfileMgrModelKey, pro);
}
return pro;
}
public ShoppingCartModel getCartModel() {
ShoppingCartWebImpl cart = (ShoppingCartWebImpl)
session.getAttribute(WebKeys.ShoppingCartModelKey);
if (cart == null) {
cart = new ShoppingCartWebImpl();
cart.init(session);
session.setAttribute(WebKeys.ShoppingCartModelKey, cart);
}
return cart;
}
public ShoppingClientController getSCCEJB() {
if (sccEjb == null) {
try {
sccEjb = EJBUtil.getSCCHome().create();
} catch (CreateException ce) {
throw new GeneralFailureException(ce.getMessage());
} catch (RemoteException re) {
throw new GeneralFailureException(re.getMessage());
} catch (javax.naming.NamingException ne) {
throw new GeneralFailureException(ne.getMessage());
}
}
return sccEjb;
}
public ShoppingCart getShoppingCartEJB()throws EStoreAppException {
if (cartEjb == null) {
if (scc == null) {
throw new
GeneralFailureException("ModelManager: Can not get shopping cart EJB");
} else {
cartEjb = scc.getShoppingCartEJB();
}
}
return cartEjb;
}
public Customer getCustomerEJB() throws EStoreAppException {
if (custEjb == null) {
if (scc == null) {
throw new
GeneralFailureException("ModelManager: Can not get customer EJB");
} else {
custEjb = scc.getCustomerEJB();
}
}
return custEjb;
}
public ProfileMgr getProfileMgrEJB() throws EStoreAppException {
if (proEjb == null) {
if (scc == null) {
throw new
GeneralFailureException("ModelManager: Can not get profilemgr EJB");
} else {
proEjb = scc.getProfileMgrEJB();
}
}
return proEjb;
}
}
|
ModelManager |
|