1 27 28 package request; 29 30 import dataregistry.LineItemLocal; 31 import dataregistry.LineItemLocalHome; 32 import dataregistry.OrderLocal; 33 import dataregistry.OrderLocalHome; 34 import dataregistry.PartLocal; 35 import dataregistry.PartLocalHome; 36 import dataregistry.PartPK; 37 import dataregistry.VendorKey; 38 import dataregistry.VendorLocal; 39 import dataregistry.VendorLocalHome; 40 import dataregistry.VendorPartLocal; 41 import dataregistry.VendorPartLocalHome; 42 import java.math.BigDecimal ; 43 import java.util.ArrayList ; 44 import java.util.Collection ; 45 import java.util.Iterator ; 46 import java.util.logging.Level ; 47 import java.util.logging.Logger ; 48 import javax.naming.Context ; 49 import javax.naming.InitialContext ; 50 import javax.naming.NamingException ; 51 import javax.ejb.*; 52 53 56 public class RequestBean implements SessionBean, request.RequestRemoteBusiness { 57 private SessionContext context; 58 private LineItemLocalHome lineItemHome = null; 59 private OrderLocalHome orderHome = null; 60 private PartLocalHome partHome = null; 61 private VendorLocalHome vendorHome = null; 62 private VendorPartLocalHome vendorPartHome = null; 63 64 70 public void setSessionContext(SessionContext aContext) { 71 context = aContext; 72 } 73 74 77 public void ejbActivate() { 78 79 } 80 81 84 public void ejbPassivate() { 85 86 } 87 88 91 public void ejbRemove() { 92 93 } 94 96 100 public void ejbCreate() { 101 try { 102 lineItemHome = lookupLineitem(); 103 orderHome = lookupOrder(); 104 partHome = lookupPart(); 105 vendorHome = lookupVendor(); 106 vendorPartHome = lookupVendorPart(); 107 } catch (Exception e) { 108 throw new EJBException(e.getMessage()); 109 } 110 } 111 112 113 public void createPart(PartRequest partRequest) { 114 try { 115 PartLocal part = 116 partHome.create(partRequest.partNumber, partRequest.revision, 117 partRequest.description, partRequest.revisionDate, 118 partRequest.specification, partRequest.drawing); 119 } catch (Exception e) { 120 throw new EJBException(e.getMessage()); 121 } 122 } 123 124 public void addPartToBillOfMaterial(BomRequest bomRequest) { 125 try { 126 PartPK bomkey = new PartPK(); 127 bomkey.partNumber = bomRequest.bomPartNumber; 128 bomkey.revision = new BigDecimal (bomRequest.bomRevision); 129 130 PartLocal bom = partHome.findByPrimaryKey(bomkey); 131 132 PartPK pkey = new PartPK(); 133 pkey.partNumber = bomRequest.partNumber; 134 pkey.revision = new BigDecimal (bomRequest.revision); 135 136 PartLocal part = partHome.findByPrimaryKey(pkey); 137 part.setBomPart(bom); 138 } catch (Exception e) { 139 throw new EJBException(e.getMessage()); 140 } 141 142 } 143 144 public void createVendor(VendorRequest vendorRequest) { 145 try { 146 VendorLocal vendor = 147 vendorHome.create(vendorRequest.vendorId, vendorRequest.name, 148 vendorRequest.address, vendorRequest.contact, 149 vendorRequest.phone); 150 } catch (Exception e) { 151 throw new EJBException(e.getMessage()); 152 } 153 154 } 155 156 public void createVendorPart(VendorPartRequest vendorPartRequest) { 157 try { 158 PartPK pkey = new PartPK(); 159 pkey.partNumber = vendorPartRequest.partNumber; 160 pkey.revision = new BigDecimal (vendorPartRequest.revision); 161 162 PartLocal part = partHome.findByPrimaryKey(pkey); 163 VendorPartLocal vendorPart = 164 vendorPartHome.create(vendorPartRequest.description, 165 vendorPartRequest.price, part); 166 167 VendorKey vkey = new VendorKey(); 168 vkey.vendorId = vendorPartRequest.vendorId; 169 170 VendorLocal vendor = vendorHome.findByPrimaryKey(vkey); 171 vendorPart.setVendor(vendor); 172 } catch (Exception e) { 173 throw new EJBException(e.getMessage()); 174 } 175 } 176 177 public void createOrder(OrderRequest orderRequest) { 178 try { 179 OrderLocal order = 180 orderHome.create(orderRequest.orderId, String.valueOf(orderRequest.status), 181 new BigDecimal (orderRequest.discount), orderRequest.shipmentInfo); 182 } catch (Exception e) { 183 throw new EJBException(e.getMessage()); 184 } 185 186 } 187 188 public void addLineItem(LineItemRequest lineItemRequest) { 189 try { 190 OrderLocal order = 191 orderHome.findByPrimaryKey(lineItemRequest.orderId); 192 193 PartPK pkey = new PartPK(); 194 pkey.partNumber = lineItemRequest.partNumber; 195 pkey.revision = new BigDecimal (lineItemRequest.revision); 196 197 PartLocal part = partHome.findByPrimaryKey(pkey); 198 199 LineItemLocal lineItem = 200 lineItemHome.create(order, new BigDecimal (lineItemRequest.quantity), 201 part.getVendorPartBean()); 202 } catch (Exception e) { 203 throw new EJBException(e.getMessage()); 204 } 205 } 206 207 public double getBillOfMaterialPrice(BomRequest bomRequest) { 208 double price = 0.0; 209 210 try { 211 PartPK bomkey = new PartPK(); 212 bomkey.partNumber = bomRequest.bomPartNumber; 213 bomkey.revision = new BigDecimal (bomRequest.bomRevision); 214 215 PartLocal bom = partHome.findByPrimaryKey(bomkey); 216 Collection parts = bom.getPartBean1(); 217 218 for (Iterator iterator = parts.iterator(); iterator.hasNext();) { 219 PartLocal part = (PartLocal) iterator.next(); 220 VendorPartLocal vendorPart = part.getVendorPartBean(); 221 price += vendorPart.getPrice().doubleValue(); 222 } 223 } catch (Exception e) { 224 throw new EJBException(e.getMessage()); 225 } 226 227 return price; 228 } 229 230 public double getOrderPrice(Integer orderId) { 231 double price = 0.0; 232 try { 233 OrderLocal order = orderHome.findByPrimaryKey(orderId); 234 price = order.calculateAmmount(); 235 } catch (Exception e) { 236 throw new EJBException(e.getMessage()); 237 } 238 return price; 239 } 240 241 public void adjustOrderDiscount(int adjustment) { 242 orderHome.adjustDiscount(adjustment); 243 } 244 245 public Double getAvgPrice() { 246 Double avgPrice = new Double (0); 247 try{ 248 avgPrice = vendorPartHome.getAvgPrice(); 249 }catch(FinderException ex){ 250 Logger.getLogger(getClass().getName()).log(Level.SEVERE,ex.getMessage()); 251 throw new EJBException(ex.getMessage()); 252 } 253 return avgPrice; 254 } 255 256 public Double getTotalPricePerVendor(VendorRequest vendorRequest) { 257 return vendorPartHome.getTotalPricePerVendor(vendorRequest.vendorId); 258 } 259 260 public Collection locateVendorsByPartialName(String name) { 261 Collection names = new ArrayList (); 262 263 try { 264 Collection vendors = vendorHome.findByPartialName(name); 265 for (Iterator iterator = vendors.iterator(); iterator.hasNext();) { 266 VendorLocal vendor = (VendorLocal) iterator.next(); 267 names.add(vendor.getName()); 268 } 269 } catch (FinderException e) { 270 } 271 272 return names; 273 } 274 275 public int countAllItems() { 276 int count = 0; 277 try { 278 count = lineItemHome.findAll().size(); 279 } catch (Exception e) { 280 throw new EJBException(e.getMessage()); 281 } 282 return count; 283 } 284 285 public void removeOrder(Integer orderId) { 286 try { 287 orderHome.remove(orderId); 288 } catch (Exception e) { 289 throw new EJBException(e.getMessage()); 290 } 291 } 292 293 public String reportVendorsByOrder(Integer orderId) { 294 StringBuffer report = new StringBuffer (); 295 try { 296 Collection vendors = vendorHome.findByOrder(orderId); 297 298 for (Iterator iterator = vendors.iterator(); iterator.hasNext();) { 299 VendorLocal vendor = (VendorLocal) iterator.next(); 300 report.append(vendor.getVendorId()) 301 .append(' ') 302 .append(vendor.getName()) 303 .append(' ') 304 .append(vendor.getContact()) 305 .append('\n'); 306 } 307 } catch (FinderException e) { 308 throw new EJBException(e.getMessage()); 309 } 310 return report.toString(); 311 312 } 313 314 private LineItemLocalHome lookupLineitem() { 315 try { 316 Context c = new InitialContext (); 317 LineItemLocalHome rv = (LineItemLocalHome) c.lookup("java:comp/env/ejb/Lineitem"); 318 return rv; 319 } catch(NamingException ne) { 320 Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne); 321 throw new RuntimeException (ne); 322 } 323 } 324 325 private dataregistry.OrderLocalHome lookupOrder() { 326 try { 327 Context c = new InitialContext (); 328 OrderLocalHome rv = (OrderLocalHome) c.lookup("java:comp/env/ejb/Order"); 329 return rv; 330 } catch(NamingException ne) { 331 Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne); 332 throw new RuntimeException (ne); 333 } 334 } 335 336 private PartLocalHome lookupPart() { 337 try { 338 Context c = new InitialContext (); 339 PartLocalHome rv = (PartLocalHome) c.lookup("java:comp/env/ejb/Part"); 340 return rv; 341 } catch(NamingException ne) { 342 Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne); 343 throw new RuntimeException (ne); 344 } 345 } 346 347 private VendorLocalHome lookupVendor() { 348 try { 349 Context c = new InitialContext (); 350 VendorLocalHome rv = (VendorLocalHome) c.lookup("java:comp/env/ejb/Vendor"); 351 return rv; 352 } catch(NamingException ne) { 353 Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne); 354 throw new RuntimeException (ne); 355 } 356 } 357 358 private VendorPartLocalHome lookupVendorPart() { 359 try { 360 Context c = new InitialContext (); 361 VendorPartLocalHome rv = (VendorPartLocalHome) c.lookup("java:comp/env/ejb/VendorPart"); 362 return rv; 363 } catch(NamingException ne) { 364 Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne); 365 throw new RuntimeException (ne); 366 } 367 } 368 369 370 } 371 | Popular Tags |