~ubuntu-branches/ubuntu/quantal/netbeans/quantal

« back to all changes in this revision

Viewing changes to usersguide/tutorials/j2ee-tut/examples/ejb/cmporder/Order/src/java/request/RequestBean.java

  • Committer: Bazaar Package Importer
  • Author(s): Marek Slama
  • Date: 2008-01-29 14:11:22 UTC
  • Revision ID: james.westby@ubuntu.com-20080129141122-fnzjbo11ntghxfu7
Tags: upstream-6.0.1
ImportĀ upstreamĀ versionĀ 6.0.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
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
 
6
 * to license terms.
 
7
 *
 
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
 
11
 * other countries.
 
12
 *
 
13
 * Copyright (c) 2005 Sun Microsystems, Inc. Tous droits reserves.
 
14
 *
 
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.
 
21
 *
 
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.
 
26
 */
 
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
/**
 
54
 * This is the bean class for the RequestBean enterprise bean.
 
55
 */
 
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
    // <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
 
67
    /**
 
68
     * @see SessionBean#setSessionContext(SessionContext)
 
69
     */
 
70
    public void setSessionContext(SessionContext aContext) {
 
71
        context = aContext;
 
72
    }
 
73
    
 
74
    /**
 
75
     * @see SessionBean#ejbActivate()
 
76
     */
 
77
    public void ejbActivate() {
 
78
        
 
79
    }
 
80
    
 
81
    /**
 
82
     * @see SessionBean#ejbPassivate()
 
83
     */
 
84
    public void ejbPassivate() {
 
85
        
 
86
    }
 
87
    
 
88
    /**
 
89
     * @see SessionBean#ejbRemove()
 
90
     */
 
91
    public void ejbRemove() {
 
92
        
 
93
    }
 
94
    // </editor-fold>
 
95
    
 
96
    /**
 
97
     * See section 7.10.3 of the EJB 2.0 specification
 
98
     * See section 7.11.3 of the EJB 2.1 specification
 
99
     */
 
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
}