/* * Copyright � 2003 Sun Microsystems, Inc. All rights reserved. U.S. * Government Rights - Commercial software. Government users are subject * to the Sun Microsystems, Inc. standard license agreement and * applicable provisions of the FAR and its supplements. Use is subject * to license terms. * * This distribution may include materials developed by third parties. * Sun, Sun Microsystems, the Sun logo, Java and J2EE are trademarks * or registered trademarks of Sun Microsystems, Inc. in the U.S. and * other countries. * * Copyright � 2003 Sun Microsystems, Inc. Tous droits r�serv�s. * * Droits du gouvernement am�ricain, utilisateurs gouvernementaux - logiciel * commercial. Les utilisateurs gouvernementaux sont soumis au contrat de * licence standard de Sun Microsystems, Inc., ainsi qu'aux dispositions * en vigueur de la FAR (Federal Acquisition Regulations) et des * suppl�ments � celles-ci. Distribu� par des licences qui en * restreignent l'utilisation. * * Cette distribution peut comprendre des composants d�velopp�s par des * tierces parties. Sun, Sun Microsystems, le logo Sun, Java et J2EE * sont des marques de fabrique ou des marques d�pos�es de Sun * Microsystems, Inc. aux Etats-Unis et dans d'autres pays. */ package request; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import javax.ejb.*; import javax.naming.*; import dataregistry.*; public class RequestBean implements SessionBean { private SessionContext context; private LocalLineItemHome lineItemHome = null; private LocalOrderHome orderHome = null; private LocalPartHome partHome = null; private LocalVendorHome vendorHome = null; private LocalVendorPartHome vendorPartHome = null; /** * @see SessionBean#setSessionContext(SessionContext) */ public void setSessionContext(SessionContext aContext) { context=aContext; } /** * @see SessionBean#ejbActivate() */ public void ejbActivate() { } /** * @see SessionBean#ejbPassivate() */ public void ejbPassivate() { } /** * @see SessionBean#ejbRemove() */ public void ejbRemove() { } /** * See section 7.10.3 of the EJB 2.0 specification */ public void ejbCreate() { try { lineItemHome = lookupLineItem(); orderHome = lookupOrder(); partHome = lookupPart(); vendorHome = lookupVendor(); vendorPartHome = lookupVendorPart(); } catch (Exception e) { throw new EJBException(e.getMessage()); } } public void createPart(PartRequest partRequest) { try { LocalPart part = partHome.create(partRequest.partNumber, partRequest.revision, partRequest.description, partRequest.revisionDate, partRequest.specification, partRequest.drawing); } catch (Exception e) { throw new EJBException(e.getMessage()); } } public void addPartToBillOfMaterial(BomRequest bomRequest) { try { PartKey bomkey = new PartKey(); bomkey.partNumber = bomRequest.bomPartNumber; bomkey.revision = bomRequest.bomRevision; LocalPart bom = partHome.findByPrimaryKey(bomkey); PartKey pkey = new PartKey(); pkey.partNumber = bomRequest.partNumber; pkey.revision = bomRequest.revision; LocalPart part = partHome.findByPrimaryKey(pkey); part.setBomPart(bom); } catch (Exception e) { throw new EJBException(e.getMessage()); } } public void createVendor(VendorRequest vendorRequest) { try { LocalVendor vendor = vendorHome.create(vendorRequest.vendorId, vendorRequest.name, vendorRequest.address, vendorRequest.contact, vendorRequest.phone); } catch (Exception e) { throw new EJBException(e.getMessage()); } } public void createVendorPart(VendorPartRequest vendorPartRequest) { try { PartKey pkey = new PartKey(); pkey.partNumber = vendorPartRequest.partNumber; pkey.revision = vendorPartRequest.revision; LocalPart part = partHome.findByPrimaryKey(pkey); LocalVendorPart vendorPart = vendorPartHome.create( vendorPartRequest.description, vendorPartRequest.price, part); VendorKey vkey = new VendorKey(); vkey.vendorId = vendorPartRequest.vendorId; LocalVendor vendor = vendorHome.findByPrimaryKey(vkey); vendor.addVendorPart(vendorPart); } catch (Exception e) { throw new EJBException(e.getMessage()); } } public void createOrder(OrderRequest orderRequest) { try { LocalOrder order = orderHome.create(orderRequest.orderId, orderRequest.status, orderRequest.discount, orderRequest.shipmentInfo); } catch (Exception e) { throw new EJBException(e.getMessage()); } } public void addLineItem(LineItemRequest lineItemRequest) { try { LocalOrder order = orderHome.findByPrimaryKey(lineItemRequest.orderId); PartKey pkey = new PartKey(); pkey.partNumber = lineItemRequest.partNumber; pkey.revision = lineItemRequest.revision; LocalPart part = partHome.findByPrimaryKey(pkey); LocalLineItem lineItem = lineItemHome.create(order, lineItemRequest.quantity, part.getVendorPart()); } catch (Exception e) { throw new EJBException(e.getMessage()); } } public double getBillOfMaterialPrice(BomRequest bomRequest) { double price = 0.0; try { PartKey bomkey = new PartKey(); bomkey.partNumber = bomRequest.bomPartNumber; bomkey.revision = bomRequest.bomRevision; LocalPart bom = partHome.findByPrimaryKey(bomkey); Collection parts = bom.getParts(); for (Iterator iterator = parts.iterator(); iterator.hasNext();) { LocalPart part = (LocalPart)iterator.next(); LocalVendorPart vendorPart = part.getVendorPart(); price += vendorPart.getPrice(); } } catch (Exception e) { throw new EJBException(e.getMessage()); } return price; } public double getOrderPrice(Integer orderId) { double price = 0.0; try { LocalOrder order = orderHome.findByPrimaryKey(orderId); price = order.calculateAmmount(); } catch (Exception e) { throw new EJBException(e.getMessage()); } return price; } public void adjustOrderDiscount(int adjustment) { orderHome.adjustDiscount(adjustment); } public Double getAvgPrice() { return vendorPartHome.getAvgPrice(); } public Double getTotalPricePerVendor(VendorRequest vendorRequest) { return vendorPartHome.getTotalPricePerVendor(vendorRequest.vendorId); } public Collection locateVendorsByPartialName(String name) { Collection names = new ArrayList(); try { Collection vendors = vendorHome.findByPartialName(name); for (Iterator iterator = vendors.iterator(); iterator.hasNext();) { LocalVendor vendor = (LocalVendor)iterator.next(); names.add(vendor.getName()); } } catch (FinderException e) { } return names; } public int countAllItems() { int count = 0; try { count = lineItemHome.findAll().size(); } catch (Exception e) { throw new EJBException(e.getMessage()); } return count; } public void removeOrder(Integer orderId) { try { orderHome.remove(orderId); } catch (Exception e) { throw new EJBException(e.getMessage()); } } public String reportVendorsByOrder(Integer orderId) { StringBuffer report = new StringBuffer(); try { Collection vendors = vendorHome.findByOrder(orderId); for (Iterator iterator = vendors.iterator(); iterator.hasNext();) { LocalVendor vendor = (LocalVendor)iterator.next(); report.append(vendor.getVendorId()).append(' ') .append(vendor.getName()).append(' ') .append(vendor.getContact()).append('\n'); } } catch (FinderException e) { throw new EJBException(e.getMessage()); } return report.toString(); } private LocalLineItemHome lookupLineItem() throws NamingException { Context initial = new InitialContext(); Object objref = initial.lookup("java:comp/env/ejb/SimpleLineItem"); return (LocalLineItemHome) objref; } private LocalOrderHome lookupOrder() throws NamingException { Context initial = new InitialContext(); Object objref = initial.lookup("java:comp/env/ejb/SimpleOrder"); return (LocalOrderHome) objref; } private LocalPartHome lookupPart() throws NamingException { Context initial = new InitialContext(); Object objref = initial.lookup("java:comp/env/ejb/SimplePart"); return (LocalPartHome) objref; } private LocalVendorHome lookupVendor() throws NamingException { Context initial = new InitialContext(); Object objref = initial.lookup("java:comp/env/ejb/SimpleVendor"); return (LocalVendorHome) objref; } private LocalVendorPartHome lookupVendorPart() throws NamingException { Context initial = new InitialContext(); Object objref = initial.lookup("java:comp/env/ejb/SimpleVendorPart"); return (LocalVendorPartHome) objref; } }