2
* Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved. U.S.
3
* Government Rights - Commercial software. Government users are subject
4
* to the Sun Microsystems, Inc. standard license agreement and
5
* applicable provisions of the FAR and its supplements. Use is subject
8
* This distribution may include materials developed by third parties.
9
* Sun, Sun Microsystems, the Sun logo, Java and J2EE are trademarks
10
* or registered trademarks of Sun Microsystems, Inc. in the U.S. and
13
* Copyright (c) 2005 Sun Microsystems, Inc. Tous droits reserves.
15
* Droits du gouvernement americain, utilisateurs gouvernementaux - logiciel
16
* commercial. Les utilisateurs gouvernementaux sont soumis au contrat de
17
* licence standard de Sun Microsystems, Inc., ainsi qu'aux dispositions
18
* en vigueur de la FAR (Federal Acquisition Regulations) et des
19
* supplements a celles-ci. Distribue par des licences qui en
20
* restreignent l'utilisation.
22
* Cette distribution peut comprendre des composants developpes par des
23
* tierces parties. Sun, Sun Microsystems, le logo Sun, Java et J2EE
24
* sont des marques de fabrique ou des marques deposees de Sun
25
* Microsystems, Inc. aux Etats-Unis et dans d'autres pays.
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;
54
* This is the bean class for the RequestBean enterprise bean.
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;
64
// <editor-fold defaultstate="collapsed" desc="EJB infrastructure methods. Click the + sign on the left to edit the code.">
65
// TODO Add code to acquire and use other enterprise resources (DataSource, JMS, enterprise bean, Web services)
66
// TODO Add business methods or web service operations
68
* @see SessionBean#setSessionContext(SessionContext)
70
public void setSessionContext(SessionContext aContext) {
75
* @see SessionBean#ejbActivate()
77
public void ejbActivate() {
82
* @see SessionBean#ejbPassivate()
84
public void ejbPassivate() {
89
* @see SessionBean#ejbRemove()
91
public void ejbRemove() {
97
* See section 7.10.3 of the EJB 2.0 specification
98
* See section 7.11.3 of the EJB 2.1 specification
100
public void ejbCreate() {
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());
113
public void createPart(PartRequest partRequest) {
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());
124
public void addPartToBillOfMaterial(BomRequest bomRequest) {
126
PartPK bomkey = new PartPK();
127
bomkey.partNumber = bomRequest.bomPartNumber;
128
bomkey.revision = new BigDecimal(bomRequest.bomRevision);
130
PartLocal bom = partHome.findByPrimaryKey(bomkey);
132
PartPK pkey = new PartPK();
133
pkey.partNumber = bomRequest.partNumber;
134
pkey.revision = new BigDecimal(bomRequest.revision);
136
PartLocal part = partHome.findByPrimaryKey(pkey);
137
part.setBomPart(bom);
138
} catch (Exception e) {
139
throw new EJBException(e.getMessage());
144
public void createVendor(VendorRequest vendorRequest) {
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());
156
public void createVendorPart(VendorPartRequest vendorPartRequest) {
158
PartPK pkey = new PartPK();
159
pkey.partNumber = vendorPartRequest.partNumber;
160
pkey.revision = new BigDecimal(vendorPartRequest.revision);
162
PartLocal part = partHome.findByPrimaryKey(pkey);
163
VendorPartLocal vendorPart =
164
vendorPartHome.create(vendorPartRequest.description,
165
vendorPartRequest.price, part);
167
VendorKey vkey = new VendorKey();
168
vkey.vendorId = vendorPartRequest.vendorId;
170
VendorLocal vendor = vendorHome.findByPrimaryKey(vkey);
171
vendorPart.setVendor(vendor);
172
} catch (Exception e) {
173
throw new EJBException(e.getMessage());
177
public void createOrder(OrderRequest orderRequest) {
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());
188
public void addLineItem(LineItemRequest lineItemRequest) {
191
orderHome.findByPrimaryKey(lineItemRequest.orderId);
193
PartPK pkey = new PartPK();
194
pkey.partNumber = lineItemRequest.partNumber;
195
pkey.revision = new BigDecimal(lineItemRequest.revision);
197
PartLocal part = partHome.findByPrimaryKey(pkey);
199
LineItemLocal lineItem =
200
lineItemHome.create(order, new BigDecimal(lineItemRequest.quantity),
201
part.getVendorPartBean());
202
} catch (Exception e) {
203
throw new EJBException(e.getMessage());
207
public double getBillOfMaterialPrice(BomRequest bomRequest) {
211
PartPK bomkey = new PartPK();
212
bomkey.partNumber = bomRequest.bomPartNumber;
213
bomkey.revision = new BigDecimal(bomRequest.bomRevision);
215
PartLocal bom = partHome.findByPrimaryKey(bomkey);
216
Collection parts = bom.getPartBean1();
218
for (Iterator iterator = parts.iterator(); iterator.hasNext();) {
219
PartLocal part = (PartLocal) iterator.next();
220
VendorPartLocal vendorPart = part.getVendorPartBean();
221
price += vendorPart.getPrice().doubleValue();
223
} catch (Exception e) {
224
throw new EJBException(e.getMessage());
230
public double getOrderPrice(Integer orderId) {
233
OrderLocal order = orderHome.findByPrimaryKey(orderId);
234
price = order.calculateAmmount();
235
} catch (Exception e) {
236
throw new EJBException(e.getMessage());
241
public void adjustOrderDiscount(int adjustment) {
242
orderHome.adjustDiscount(adjustment);
245
public Double getAvgPrice() {
246
Double avgPrice = new Double(0);
248
avgPrice = vendorPartHome.getAvgPrice();
249
}catch(FinderException ex){
250
Logger.getLogger(getClass().getName()).log(Level.SEVERE,ex.getMessage());
251
throw new EJBException(ex.getMessage());
256
public Double getTotalPricePerVendor(VendorRequest vendorRequest) {
257
return vendorPartHome.getTotalPricePerVendor(vendorRequest.vendorId);
260
public Collection locateVendorsByPartialName(String name) {
261
Collection names = new ArrayList();
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());
269
} catch (FinderException e) {
275
public int countAllItems() {
278
count = lineItemHome.findAll().size();
279
} catch (Exception e) {
280
throw new EJBException(e.getMessage());
285
public void removeOrder(Integer orderId) {
287
orderHome.remove(orderId);
288
} catch (Exception e) {
289
throw new EJBException(e.getMessage());
293
public String reportVendorsByOrder(Integer orderId) {
294
StringBuffer report = new StringBuffer();
296
Collection vendors = vendorHome.findByOrder(orderId);
298
for (Iterator iterator = vendors.iterator(); iterator.hasNext();) {
299
VendorLocal vendor = (VendorLocal) iterator.next();
300
report.append(vendor.getVendorId())
302
.append(vendor.getName())
304
.append(vendor.getContact())
307
} catch (FinderException e) {
308
throw new EJBException(e.getMessage());
310
return report.toString();
314
private LineItemLocalHome lookupLineitem() {
316
Context c = new InitialContext();
317
LineItemLocalHome rv = (LineItemLocalHome) c.lookup("java:comp/env/ejb/Lineitem");
319
} catch(NamingException ne) {
320
Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne);
321
throw new RuntimeException(ne);
325
private dataregistry.OrderLocalHome lookupOrder() {
327
Context c = new InitialContext();
328
OrderLocalHome rv = (OrderLocalHome) c.lookup("java:comp/env/ejb/Order");
330
} catch(NamingException ne) {
331
Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne);
332
throw new RuntimeException(ne);
336
private PartLocalHome lookupPart() {
338
Context c = new InitialContext();
339
PartLocalHome rv = (PartLocalHome) c.lookup("java:comp/env/ejb/Part");
341
} catch(NamingException ne) {
342
Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne);
343
throw new RuntimeException(ne);
347
private VendorLocalHome lookupVendor() {
349
Context c = new InitialContext();
350
VendorLocalHome rv = (VendorLocalHome) c.lookup("java:comp/env/ejb/Vendor");
352
} catch(NamingException ne) {
353
Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne);
354
throw new RuntimeException(ne);
358
private VendorPartLocalHome lookupVendorPart() {
360
Context c = new InitialContext();
361
VendorPartLocalHome rv = (VendorPartLocalHome) c.lookup("java:comp/env/ejb/VendorPart");
363
} catch(NamingException ne) {
364
Logger.getLogger(getClass().getName()).log(java.util.logging.Level.SEVERE,"exception caught" ,ne);
365
throw new RuntimeException(ne);