KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > xdoclet > CustomerBean


1 /**
2  * JOnAS: Java(TM) Open Application Server
3  * Copyright (C) 1999-2004 Bull S.A.
4  * Contact: jonas-team@objectweb.org
5  *
6  * This library is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public
8  * License as published by the Free Software Foundation; either
9  * version 2.1 of the License, or any later version.
10  *
11  * This library is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14  * Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public
17  * License along with this library; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
19  * USA
20  *
21  * --------------------------------------------------------------------------
22  * $Id: CustomerBean.java,v 1.9 2004/12/01 13:38:37 camillej Exp $
23  * --------------------------------------------------------------------------
24  */

25 package xdoclet;
26
27 import java.rmi.RemoteException;
28 import javax.ejb.EntityBean;
29 import javax.ejb.EntityContext;
30 import javax.ejb.ObjectNotFoundException;
31 import javax.ejb.RemoveException;
32 import javax.ejb.CreateException;
33 import javax.ejb.EJBException;
34 import java.util.Date;
35 import java.util.Collection;
36 import java.util.Iterator;
37 import java.util.Vector;
38 import javax.naming.InitialContext;
39 import javax.naming.NamingException;
40 /**
41  * CustomerBean is an entity bean with "container managed persistence version 2".
42  * The state of an instance is stored into a relational database.
43  *
44  * @ejb.bean
45  * name="CustomerBean"
46  * description="Deployment descriptor for the CustomerBean bean with CMP2 JOnAS example"
47  * type="CMP"
48  * view-type="both"
49  * primkey-field="id"
50  * jndi-name="CustomerBeanHome"
51  * cmp-version="2.x"
52  * reentrant="false"
53  * @ejb.home
54  * remote-class="xdoclet.CustomerHomeRemote"
55  * local-class="xdoclet.CustomerHomeLocal"
56  * @ejb.interface
57  * remote-class="xdoclet.CustomerRemote"
58  * local-class="xdoclet.CustomerLocal"
59  * @ejb:pk
60  * class="java.lang.Integer"
61  * @ejb.ejb-ref
62  * ejb-name="PhoneBean"
63  * view-type="local"
64  * ref-name="ejb/PhoneHomeLocal"
65  *
66  * @jonas.jdbc-mapping
67  * jdbc-table-name = "MyCustomer"
68  *
69  * @ejb:finder
70  * signature= "java.util.Collection findByName(java.lang.String lastName, java.lang.String firstName)"
71  * query ="SELECT OBJECT(c) FROM CustomerBean c WHERE c.lastName LIKE ?1 AND c.firstName LIKE ?2"
72  * @ejb:finder
73  * signature= "java.util.Collection findAllCustomers()"
74  * query ="SELECT OBJECT(c) FROM CustomerBean AS c"
75  *
76  * @jonas.session-timeout
77  * session-timeout="60"
78  * @ejb:transaction
79  * type="Required"
80  */

81 public abstract class CustomerBean implements EntityBean {
82
83     // Keep the reference on the EntityContext
84
protected EntityContext entityContext;
85
86      /**
87      * EJBCREATE
88      * @return pk primary key set to null
89      *
90      * @ejb.create-method
91      */

92     public Integer ejbCreate(Integer id, Name name)
93         throws CreateException {
94         setLastName(name.getLastName());
95         setFirstName(name.getFirstName());
96
97     // Init object state
98
this.setId(id);
99     return null;
100     }
101  
102     public void ejbPostCreate(Integer id, Name name) {}
103
104     // business methods
105
/**
106      * @ejb.interface-method
107      *
108      **/

109     public Name getName() {
110         Name name = new Name(getLastName(),getFirstName());
111         return name;
112     }
113     /**
114      * @ejb.interface-method
115      **/

116     public void setName(Name name) {
117         setLastName(name.getLastName());
118         setFirstName(name.getFirstName());
119     }
120     
121     
122     /**
123      * @ejb.interface-method
124      **/

125     public void addPhoneNumber(String number, byte type) throws NamingException, CreateException {
126         InitialContext jndiEnc = new InitialContext();
127         PhoneHomeLocal phoneHomeL = (PhoneHomeLocal) (jndiEnc.lookup("java:comp/env/ejb/PhoneHomeLocal"));
128
129         PhoneLocal phone = phoneHomeL.create(number, type);
130         Collection phoneNumbers = this.getPhoneNumber();
131         phoneNumbers.add(phone);
132     }
133
134     /**
135      * @ejb.interface-method
136      **/

137     public void removePhoneNumber(byte typeToRemove) {
138         Collection phoneNumbers = this.getPhoneNumber();
139         Iterator iterator = phoneNumbers.iterator();
140
141         while (iterator.hasNext()) {
142             PhoneLocal phone = (PhoneLocal) iterator.next();
143             if (phone.getType() == typeToRemove) {
144                 phoneNumbers.remove(phone);
145                 try {
146                     phone.remove();
147                 } catch (Exception e) {
148                     System.out.println("Problem during removing phone");
149                 }
150             }
151
152         }
153     }
154
155     /**
156      * @ejb.interface-method
157      **/

158     public void updatePhoneNumber(String number, byte typeToUpdate) {
159         Collection phoneNumbers = this.getPhoneNumber();
160         Iterator iterator = phoneNumbers.iterator();
161         while (iterator.hasNext()) {
162             PhoneLocal phone = (PhoneLocal) iterator.next();
163             if (phone.getType() == typeToUpdate) {
164                 phone.setNumber(number);
165                 break;
166             }
167         }
168     }
169
170     /**
171      * @ejb.interface-method
172      **/

173     public Vector getPhoneList() {
174
175         Vector vv = new Vector();
176         Collection phoneNumbers = this.getPhoneNumber();
177
178         Iterator iterator = phoneNumbers.iterator();
179         while (iterator.hasNext()) {
180             PhoneLocal phone = (PhoneLocal) iterator.next();
181             String ss = "Type=" + phone.getType() + " Number=" + phone.getNumber();
182             vv.add(ss);
183         }
184         return vv;
185     }
186
187    // persistent relationships
188
/**
189     * @ejb.relation
190     * name="CUSTOMER-PHONE"
191     * role-name="PHONE-has-CUSTOMER"
192     * target-ejb="PhoneBean"
193     * target-role-name="CUSTOMER-has-PHONE"
194     *
195     * @jonas.ejb-relation
196     * ejb-relation-name="CUSTOMER-PHONE"
197     * ejb-relationship-role-name1="CUSTOMER-has-PHONE"
198     * foreign-key-jdbc-name1="CUSTOMER_FK_PHONE"
199     **/

200     public abstract Collection getPhoneNumber( );
201     public abstract void setPhoneNumber(Collection phones);
202
203     // abstract accessor methods
204
/**
205      * @ejb.persistent-field
206      * @ejb.interface-method
207      * @jonas.cmp-field-jdbc-mapping
208      * field-name="id"
209      * jdbc-field-name="CustomerId"
210     */

211      public abstract Integer getId();
212      
213     /**
214      * @ejb.persistent-field
215      * @ejb.interface-method
216      */

217     public abstract void setId(Integer id);
218     /**
219      * @ejb.persistent-field
220      * @ejb.interface-method
221      */

222     public abstract String getLastName( );
223     /**
224      * @ejb.persistent-field
225      * @ejb.interface-method
226      */

227     public abstract void setLastName(String lname);
228
229     /**
230      * @ejb.persistence
231      * column-name="CustomerFirstName"
232      * jdbc-type="VARCHAR"
233      * @ejb.persistent-field
234      * @ejb.interface-method
235      */

236     public abstract String getFirstName( );
237     /**
238      * @ejb.persistent-field
239      * @ejb.interface-method
240      */

241     public abstract void setFirstName(String fname);
242     
243     // standard call back methods
244

245     public void ejbActivate() {}
246     public void ejbLoad() {}
247     public void ejbPassivate() {}
248     public void ejbRemove() throws RemoveException {}
249
250     public void ejbStore() {}
251   
252
253     public void setEntityContext(EntityContext ctx) {
254
255     // Keep the entity context in object
256
entityContext = ctx;
257     }
258
259     public void unsetEntityContext() {
260     entityContext = null;
261     }
262
263 }
264
Popular Tags