KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > xpetstore > util > uidgen > ejb > UIDGeneratorBean


1 package xpetstore.util.uidgen.ejb;
2
3 import javax.ejb.EJBException JavaDoc;
4 import javax.ejb.TransactionAttribute JavaDoc;
5 import javax.ejb.TransactionAttributeType JavaDoc;
6
7 import javax.ejb.Local JavaDoc;
8 import javax.ejb.Stateless JavaDoc;
9
10 import javax.persistence.EntityManager;
11 import javax.persistence.PersistenceContext;
12
13 /**
14  *
15  * @ ejb.bean
16  * name="UIDGenerator"
17  * type="Stateless"
18  * view-type="local"
19  * @ ejb.transaction
20  * type="Required"
21  * @ ejb.ejb-ref
22  * ejb-name="Counter"
23  * view-type="local"
24  * ref-name="ejb/CounterLocal"
25  */

26
27 @Stateless JavaDoc(name = "UIDGenerator")
28 @Local JavaDoc(UIDGenerator.class)
29 @TransactionAttribute JavaDoc(TransactionAttributeType.REQUIRED)
30 public class UIDGeneratorBean
31 {
32    @PersistenceContext
33    private EntityManager manager;
34
35    /**
36     * @ ejb.interface-method
37     */

38    public int getUniqueId(String JavaDoc idPrefix)
39    {
40       return getCounter(idPrefix).nextValue();
41    }
42
43    private Counter getCounter(String JavaDoc name)
44    {
45       Counter counter = null;
46       try
47       {
48          counter = manager.find(Counter.class, name);
49          if (counter == null)
50          {
51             counter = new Counter(name);
52             manager.persist(counter);
53          }
54       } catch (Exception JavaDoc e)
55       {
56          e.printStackTrace();
57          throw new EJBException JavaDoc(e);
58       }
59
60       return counter;
61    }
62 }
63
Popular Tags