Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/jeteam/bean/project/ProjectBean.java


1   /*
2    * JETeam, Java Enterprise TeamWork
3    *
4    * Distributable under the GPL license.
5    * See terms of licence at http://www.gnu.org
6    *
7    * $Source: /cvsroot/jeteam/jeteam/jeteam-bcx/src/java/org/jeteam/bean/project/ProjectBean.java,v $
8    * $Date: 2003/05/28 22:07:48 $
9    * $Author: draftdog $
10   * $Revision: 1.14 $
11   */
12  package org.jeteam.bean.project;
13  
14  import javax.ejb.CreateException;
15  import javax.ejb.EntityBean;
16  import java.util.Collection;
17  
18  /**
19   *
20   * <p>
21   *  A project is one of the central entities in the system, in fact
22   *  everything is built around it.
23   * </p>
24   *
25   * <p>
26   *  Users can be assigned to work on a project, this gives them the
27   *  right to work on related tasks. However, it is only possible to
28   *  assign users that have a valid role. Users that do not have that
29   *  role are unable to work on the project.
30   * </p>
31   *
32   * <p>
33   *  Users create tasks for a project and can update the current
34   *  status of the project, depending on the individual statusses of
35   *  the different tasks it is possible to derive a general completion
36   *  percentage on the current project status.
37   * </p>
38   *
39   * <p>
40   *  The  <i> created </i>  and  <i> deleted </i> attributes indicate
41   *  the date of creation and (logical) removal respectively. By
42   *  verifying whether the optional <i> deleted </i>  attribute is
43   *  <b> null </b> one can know if the project is still alive or not,
44   *  in case the <i> deleted </i> attribute contains a date this means
45   *  the project has been removed and working on it should not be
46   *  possible anymore.
47   * </p>
48   *
49   * @ejb.bean
50   *     name="Project" type="CMP" cmp-version="2.x"
51   *     local-jndi-name="org.jeteam.bean.project/Project/LocalHome"
52   *     jndi-name="org.jeteam.bean.project/Project/Home"
53   *     view-type="local"
54   *     primkey-field="id"
55   * @ejb.interface
56   *     generate="local,remote"
57   *     remote-class="org.jeteam.bean.project.Project"
58   *     local-class="org.jeteam.bean.project.ProjectLocal"
59   * @ejb.home
60   *     generate="local"
61   *     local-class="org.jeteam.bean.project.ProjectLocalHome"
62   * @ejb.pk
63   *     generate="false"
64   *     class="java.lang.String"
65   * @ejb.finder
66   *     signature="org.jeteam.bean.project.ProjectLocal findByPrimaryKey(java.lang.String pk)"
67   *     unchecked="false"
68   *     role-name="Project,Project.findByPrimaryKey"
69   * @ejb.finder
70   *     signature="java.util.Collection findAll()"
71   *     unchecked="false"
72   *     role-name="Project,Project.findAll"
73   * @ejb.finder
74   *     signature="java.util.Collection findByName(java.lang.String name)"
75   *     query="SELECT OBJECT(o) FROM Project o WHERE o.name = ?1"
76   *     unchecked="false"
77   *     role-name="Project,Project.findByName"
78   * @ejb.finder
79   *     signature="java.util.Collection findByCreated(java.util.Date created)"
80   *     query="SELECT OBJECT(o) FROM Project o WHERE o.created = ?1"
81   *     unchecked="false"
82   *     role-name="Project,Project.findByCreated"
83   * @ejb.finder
84   *     signature="java.util.Collection findInRangeCreated(java.util.Date low, java.util.Date high)"
85   *     query="SELECT OBJECT(o) FROM Project o WHERE ((o.created > ?1) AND (o.created < ?2)) OR (o.created = ?1) OR (o.created = ?2)"
86   *     unchecked="false"
87   *     role-name="Project,Project.findInRangeByCreated"
88   * @ejb.finder
89   *     signature="java.util.Collection findByDeleted(java.util.Date deleted)"
90   *     query="SELECT OBJECT(o) FROM Project o WHERE o.deleted = ?1"
91   *     unchecked="false"
92   *     role-name="Project,Project.findByDeleted"
93   * @ejb.finder
94   *     signature="java.util.Collection findInRangeDeleted(java.util.Date low, java.util.Date high)"
95   *     query="SELECT OBJECT(o) FROM Project o WHERE ((o.deleted > ?1) AND (o.deleted < ?2)) OR (o.deleted = ?1) OR (o.deleted = ?2)"
96   *     unchecked="false"
97   *     role-name="Project,Project.findInRangeByDeleted"
98   * @ejb.util
99   *     generate="physical"
100  * @ejb.value-object
101  *     name="Project" match="*" instantiation="eager"
102  *
103  * @ejb.persistence
104  *     table-name="Project"
105  *
106  * @jboss.persistence
107  *     create-table="true"
108  *     remove-table="false"
109  *     tuned-updates="true"
110  *     read-only="false"
111  *
112  * @struts.form
113  *     name="Edit"
114  *     include-all="true"
115  *
116  * element.uuid    127-0-0-1-8a88a9:f38ae934f1:-7f19
117  *
118  *
119  */
120 public abstract class ProjectBean implements EntityBean
121 {
122 
123    // --------------- attributes ---------------------
124 
125    /**
126     *
127     * @ejb.pk-field
128     * @ejb.persistence
129     *     column-name="ID"
130     *       jdbc-type="VARCHAR"
131     *        sql-type="VARCHAR(255)"
132     *
133     * @ejb.interface-method view-type="local"
134     * @ejb.transaction      type="Required"
135     * @ejb.permission
136     *     unchecked = "false"
137     *     role-name = "InternalUser"
138     */
139    public abstract java.lang.String getId();
140 
141    /**
142     * @ejb.interface-method view-type="local"
143     * @ejb.transaction      type="Required"
144     * @ejb.permission
145     *     unchecked = "false"
146     *     role-name = "InternalUser"
147     */
148    public abstract void setId(java.lang.String newValue);
149 
150 
151    /**
152     *
153     * @ejb.persistence
154     *     column-name="NAME"
155     *       jdbc-type="VARCHAR"
156     *        sql-type="VARCHAR(255)"
157     *
158     * @ejb.interface-method view-type="local"
159     * @ejb.transaction      type="Required"
160     * @ejb.permission
161     *     unchecked = "false"
162     *     role-name = "InternalUser"
163     */
164    public abstract java.lang.String getName();
165 
166    /**
167     * @ejb.interface-method view-type="local"
168     * @ejb.transaction      type="Required"
169     * @ejb.permission
170     *     unchecked = "false"
171     *     role-name = "InternalUser"
172     */
173    public abstract void setName(java.lang.String newValue);
174 
175 
176    /**
177     *
178     * @ejb.persistence
179     *     column-name="DESCRIPTION"
180     *       jdbc-type="VARCHAR"
181     *        sql-type="VARCHAR(255)"
182     *
183     * @ejb.interface-method view-type="local"
184     * @ejb.transaction      type="Required"
185     * @ejb.permission
186     *     unchecked = "false"
187     *     role-name = "InternalUser"
188     */
189    public abstract java.lang.String getDescription();
190 
191    /**
192     * @ejb.interface-method view-type="local"
193     * @ejb.transaction      type="Required"
194     * @ejb.permission
195     *     unchecked = "false"
196     *     role-name = "InternalUser"
197     */
198    public abstract void setDescription(java.lang.String newValue);
199 
200 
201    /**
202     *
203     * @ejb.persistence
204     *     column-name="CREATED"
205     *       jdbc-type="TIMESTAMP"
206     *        sql-type="DATETIME"
207     *
208     * @ejb.interface-method view-type="local"
209     * @ejb.transaction      type="Required"
210     * @ejb.permission
211     *     unchecked = "false"
212     *     role-name = "InternalUser"
213     */
214    public abstract java.util.Date getCreated();
215 
216    /**
217     * @ejb.interface-method view-type="local"
218     * @ejb.transaction      type="Required"
219     * @ejb.permission
220     *     unchecked = "false"
221     *     role-name = "InternalUser"
222     */
223    public abstract void setCreated(java.util.Date newValue);
224 
225 
226    /**
227     *
228     * @ejb.persistence
229     *     column-name="DELETED"
230     *       jdbc-type="TIMESTAMP"
231     *        sql-type="DATETIME"
232     *
233     * @ejb.interface-method view-type="local"
234     * @ejb.transaction      type="Required"
235     * @ejb.permission
236     *     unchecked = "false"
237     *     role-name = "InternalUser"
238     */
239    public abstract java.util.Date getDeleted();
240 
241    /**
242     * @ejb.interface-method view-type="local"
243     * @ejb.transaction      type="Required"
244     * @ejb.permission
245     *     unchecked = "false"
246     *     role-name = "InternalUser"
247     */
248    public abstract void setDeleted(java.util.Date newValue);
249 
250 
251    /**
252     *
253     * @ejb.persistence
254     *     column-name="LAST_UPDATED"
255     *       jdbc-type="TIMESTAMP"
256     *        sql-type="DATETIME"
257     *
258     * @ejb.interface-method view-type="local"
259     * @ejb.transaction      type="Required"
260     * @ejb.permission
261     *     unchecked = "false"
262     *     role-name = "InternalUser"
263     */
264    public abstract java.util.Date getLastUpdated();
265 
266    /**
267     * @ejb.interface-method view-type="local"
268     * @ejb.transaction      type="Required"
269     * @ejb.permission
270     *     unchecked = "false"
271     *     role-name = "InternalUser"
272     */
273    public abstract void setLastUpdated(java.util.Date newValue);
274 
275 
276    // ------------- relations ------------------
277 
278    /**
279     *
280     * @ejb.interface-method view-type="local"
281     * @ejb.transaction      type="Required"
282     * @ejb.relation
283     *    name="projects-users"
284     *    role-name="projects"
285     *
286     * @jboss.relation
287     *    related-pk-field="id"
288     *    fk-column="USERS_FK"
289     * @jboss.relation-table
290     *    table-name="PROJECTS_USERS"
291     * @weblogic.relation
292     *       join-table-name = "PROJECTS_USERS"
293     *    foreign-key-column = "USERS_FK"
294     * @resin-ejb.relation
295     *     sql-table = "PROJECTS_USERS"
296     *    sql-column = "USERS_FK"
297     * @ejb.permission
298     *     unchecked = "false"
299     *     role-name = "InternalUser"
300     */
301    public abstract Collection getUsers();
302 
303    /**
304     * @ejb.interface-method view-type="local"
305     * @ejb.transaction      type="Required"
306     * @ejb.permission
307     *     unchecked = "false"
308     *     role-name = "InternalUser"
309     */
310    public abstract void setUsers(Collection users);
311 
312 
313    /**
314     *
315     * @ejb.interface-method view-type="local"
316     * @ejb.transaction      type="Required"
317     * @ejb.relation
318     *    name="project-tasks"
319     *    role-name="project"
320     *
321     * @jboss.target-relation
322     *     related-pk-field="id"
323     *            fk-column="PROJECT_FK"
324     * @ejb.permission
325     *     unchecked = "false"
326     *     role-name = "InternalUser"
327     */
328    public abstract Collection getTasks();
329 
330    /**
331     * @ejb.interface-method view-type="local"
332     * @ejb.transaction      type="Required"
333     * @ejb.permission
334     *     unchecked = "false"
335     *     role-name = "InternalUser"
336     */
337    public abstract void setTasks(Collection tasks);
338 
339 
340    /**
341     *
342     * @ejb.interface-method view-type="local"
343     * @ejb.transaction      type="Required"
344     * @ejb.relation
345     *    name="projects-roles"
346     *    role-name="projects"
347     *
348     * @jboss.relation
349     *    related-pk-field="id"
350     *    fk-column="ROLES_FK"
351     * @jboss.relation-table
352     *    table-name="PROJECTS_ROLES"
353     * @weblogic.relation
354     *       join-table-name = "PROJECTS_ROLES"
355     *    foreign-key-column = "ROLES_FK"
356     * @resin-ejb.relation
357     *     sql-table = "PROJECTS_ROLES"
358     *    sql-column = "ROLES_FK"
359     * @ejb.permission
360     *     unchecked = "false"
361     *     role-name = "InternalUser"
362     */
363    public abstract Collection getRoles();
364 
365    /**
366     * @ejb.interface-method view-type="local"
367     * @ejb.transaction      type="Required"
368     * @ejb.permission
369     *     unchecked = "false"
370     *     role-name = "InternalUser"
371     */
372    public abstract void setRoles(Collection roles);
373 
374 
375    /**
376     *
377     * @ejb.interface-method view-type="local"
378     * @ejb.transaction      type="Required"
379     * @ejb.relation
380     *    name="projects-status"
381     *    role-name="projects"
382     *    target-multiple="yes"
383     *    target-ejb="Status"
384     *    target-role-name="status"
385     *
386     * @jboss.relation  related-pk-field="id"
387     *                         fk-column="STATUS_FK"
388     * @ejb.permission
389     *     unchecked = "false"
390     *     role-name = "InternalUser"
391     */
392    public abstract org.jeteam.bean.config.StatusLocal getStatus();
393 
394    /**
395     * @ejb.interface-method view-type="local"
396     * @ejb.transaction      type="Required"
397     * @ejb.permission
398     *     unchecked = "false"
399     *     role-name = "InternalUser"
400     */
401    public abstract void setStatus(org.jeteam.bean.config.StatusLocal status);
402 
403 
404 
405    // --------------- getter/setter for value objects ------------
406 
407    /**
408     * @ejb.interface-method view-type="local"
409     * @ejb.transaction      type="Required"
410     * @ejb.permission
411     *     unchecked = "false"
412     *     role-name = "InternalUser"
413     */
414 
415    public org.jeteam.bean.project.ProjectData getProjectData()
416    {
417       org.jeteam.bean.project.ProjectData result = new org.jeteam.bean.project.ProjectData(getId(), getName(), getDescription(), getCreated(), getDeleted(), getLastUpdated());
418       return result;
419    }
420 
421    /**
422     * @ejb.interface-method view-type="local"
423     * @ejb.transaction      type="Required"
424     * @ejb.permission
425     *     unchecked = "false"
426     *     role-name = "InternalUser"
427     */
428    public void setProjectData(org.jeteam.bean.project.ProjectData value)
429    {
430       setName(value.getName());
431       setDescription(value.getDescription());
432       setCreated(value.getCreated());
433       setDeleted(value.getDeleted());
434       setLastUpdated(value.getLastUpdated());
435    }
436 
437    // ---------------- business methods  ----------------------
438 
439 
440    // ---------------- create methods with separate attributes --------------------
441 
442    /**
443     * @ejb.create-method
444     * @ejb.transaction type="Required"
445     * @ejb.permission
446     *     unchecked = "false"
447     *     role-name = "InternalUser"
448     */
449    public java.lang.String ejbCreate(java.lang.String name, java.lang.String description, java.util.Date created, java.util.Date deleted, java.util.Date lastUpdated)
450       throws CreateException
451    {
452       setName(name);
453       setDescription(description);
454       setCreated(created);
455       setDeleted(deleted);
456       setLastUpdated(lastUpdated);
457 
458       String primaryKey = ProjectUtil.generateGUID(this);
459       setId(primaryKey);
460       return null;  // should not return primaryKey for CMP: see EJB spec,
461       // chapter 10.5.2 "Bean Provider’s entity bean instance’s view"
462    }
463 
464    public void ejbPostCreate(java.lang.String name, java.lang.String description, java.util.Date created, java.util.Date deleted, java.util.Date lastUpdated)
465       throws CreateException
466    {
467    }
468 
469    // ---------------- create methods using value object --------------------
470 
471    /**
472     * @ejb.create-method
473     * @ejb.transaction type="Required"
474     * @ejb.permission
475     *     unchecked = "false"
476     *     role-name = "InternalUser"
477     */
478    public java.lang.String ejbCreate(org.jeteam.bean.project.ProjectData data)
479       throws CreateException
480    {
481       setName(data.getName());
482       setDescription(data.getDescription());
483       setCreated(data.getCreated());
484       setDeleted(data.getDeleted());
485       setLastUpdated(data.getLastUpdated());
486 
487       String primaryKey = ProjectUtil.generateGUID(this);
488       setId(primaryKey);
489       return null;  // should not return primaryKey for CMP: see EJB spec,
490       // chapter 10.5.2 "Bean Provider’s entity bean instance’s view"
491    }
492 
493    public void ejbPostCreate(org.jeteam.bean.project.ProjectData data)
494       throws CreateException
495    {
496    }
497 
498    // ------------------------- remove method -------------------------------
499 
500    /**
501     * @ejb.transaction           type="Required"
502     * @ejb.permission
503     *     unchecked = "false"
504     *     role-name = "InternalUser"
505     */
506    public void ejbRemove() throws javax.ejb.RemoveException
507    {
508    }
509 
510 }