|
InventoryEJB |
|
/*
* $Id: InventoryEJB.java,v 1.11.4.10 2001/04/14 00:39:24 lblair Exp $
* Copyright 2001 Sun Microsystems, Inc. All rights reserved.
* Copyright 2001 Sun Microsystems, Inc. Tous droits réservés.
*/
package com.sun.j2ee.blueprints.inventory.ejb;
import javax.ejb.EntityBean;
import javax.ejb.EntityContext;
import javax.ejb.EJBException;
import javax.ejb.FinderException;
import javax.ejb.CreateException;
import javax.ejb.RemoveException;
import javax.ejb.DuplicateKeyException;
import com.sun.j2ee.blueprints.inventory.dao.InventoryDAO;
import com.sun.j2ee.blueprints.inventory.dao.InventoryDAOFactory;
import com.sun.j2ee.blueprints.inventory.model.InventoryModel;
import com.sun.j2ee.blueprints.inventory.model.MutableInventoryModel;
import com.sun.j2ee.blueprints.inventory.exceptions.InventoryDAOAppException;
import com.sun.j2ee.blueprints.inventory.exceptions.InventoryDAOSysException;
import com.sun.j2ee.blueprints.inventory.exceptions.InventoryDAOFinderException;
import com.sun.j2ee.blueprints.inventory.exceptions.InventoryDAODBUpdateException;
/**
* Implementation of inventory as an Entity Bean
*/
public class InventoryEJB implements EntityBean {
private MutableInventoryModel itemDetails;
private transient InventoryDAO inventoryDao;
private EntityContext context;
public InventoryEJB() {}
public void ejbRemove() throws RemoveException {
try{
InventoryDAO dao = getDAO();
dao.remove((String)context.getPrimaryKey());
} catch (InventoryDAODBUpdateException se) {
context.setRollbackOnly();
throw new RemoveException(se.getMessage());
} catch (InventoryDAOSysException ss) {
throw new EJBException(ss.getMessage());
}
}
public void setEntityContext(EntityContext ec) {
context = ec;
}
public void ejbLoad() {
InventoryDAO dao;
try{
dao = getDAO();
this.itemDetails = dao.load((String)context.getPrimaryKey());
} catch (InventoryDAOSysException se) {
throw new EJBException (se.getMessage());
} catch (InventoryDAOFinderException ss) {
throw new EJBException (ss.getMessage());
}
}
public void ejbStore() {
try{
InventoryDAO dao = getDAO();
dao.store(this.itemDetails);
} catch (InventoryDAOSysException se) {
throw new EJBException (se.getMessage());
} catch (InventoryDAOAppException ss) {
throw new EJBException (ss.getMessage());
}
}
public String ejbFindByPrimaryKey (String key) throws FinderException {
try{
InventoryDAO dao = getDAO();
String item = dao.findByPrimaryKey(key);
this.itemDetails = dao.load(item);
return(item);
} catch (InventoryDAOFinderException se) {
throw new FinderException (se.getMessage());
} catch (InventoryDAOSysException ss) {
throw new EJBException (ss.getMessage());
}
}
public void unsetEntityContext() {}
public void ejbActivate() {
}
public void ejbPassivate() {
this.inventoryDao = null;
}
// business methods
/**
* @return the InventoryModel containing the
* inventory data details
*/
public InventoryModel getDetails() {
return(new InventoryModel(this.itemDetails.getItemId(),
this.itemDetails.getQuantity()));
}
/**
* reduce the current qty of an item in inventory.
*/
public void reduceQuantity( int qty) {
this.itemDetails.reduceQty(qty);
}
/**
* increase the current qty of an item in inventory.
*/
public void addQuantity(int qty) {
this.itemDetails.addQty(qty);
}
private InventoryDAO getDAO() throws InventoryDAOSysException {
if(inventoryDao == null) {
inventoryDao = InventoryDAOFactory.getDAO();
}
return inventoryDao;
}
}
|
InventoryEJB |
|