PhysicianEJB.ejb
001 package com.bea.medrec.entities;
002 
003 import com.bea.medrec.utils.MedRecLog4jFactory;
004 import com.bea.medrec.value.Physician;
005 import java.util.Collection;
006 import javax.ejb.CreateException;
007 import javax.ejb.EntityContext;
008 import javax.naming.NamingException;
009 import org.apache.log4j.Logger;
010 import weblogic.ejb.GenericEntityBean;
011 import weblogic.ejbgen.*;
012 
013 /**
014  <p>PhysicianEJB is an Container Managed EntityBean that
015  * manipulates patient persisted data.</p>
016  *
017  @author Copyright (c) 2006 by BEA Systems. All Rights Reserved.
018  */
019 @AutomaticKeyGeneration(name = "PHYSICIAN_SEQ",
020                         type = AutomaticKeyGeneration.AutomaticKeyGenerationType.SEQUENCE_TABLE,
021                         cacheSize = "10")
022 @CreateDefaultDbmsTables(value = "Disabled")
023 @Entity(maxBeansInCache = "1000",
024         dataSourceName = "jdbc/MedRecTxDataSource",
025         transTimeoutSeconds = "0",
026         ejbName = "PhysicianEJB",
027         reentrant = Constants.Bool.FALSE,
028         concurrencyStrategy = Constants.ConcurrencyStrategy.DATABASE,
029         delayDatabaseInsertUntil = Entity.DelayDatabaseInsertUntil.EJB_POST_CREATE,
030         tableName = "physician",
031         readTimeoutSeconds = "600",
032         primKeyClass = "java.lang.Integer",
033         defaultTransaction = Constants.TransactionAttribute.MANDATORY,
034         abstractSchemaName = "PhysicianEJB")
035 @FileGeneration(localClass = Constants.Bool.TRUE,
036                 localHome = Constants.Bool.TRUE,
037                 valueClass = Constants.Bool.FALSE)
038 @Finders({
039     @Finder(signature = "com.bea.medrec.entities.PhysicianLocal findByLastName(java.lang.String n0)",
040             ejbQl = "SELECT OBJECT(o) FROM PhysicianEJB AS o WHERE o.lastName = ?1"),
041     @Finder(signature = "com.bea.medrec.entities.PhysicianLocal findByFirstLastName(java.lang.String n0, java.lang.String n1)",
042             ejbQl = "SELECT OBJECT(o) FROM PhysicianEJB AS o WHERE o.firstName = ?1 and o.lastName = ?2",
043             includeUpdates = Constants.Bool.FALSE)
044 })
045 @Relations({
046     @Relation(cascadeDelete = Constants.Bool.FALSE,
047               cmrField = "records",
048               name = "Record-Physician",
049               roleName = "Physician-Has-Records",
050               multiplicity = Relation.Multiplicity.ONE,
051               targetEjb = "RecordEJB")
052 })
053 public abstract class PhysicianEJB extends GenericEntityBean {
054   // Logger
055   private static Logger logger =
056       MedRecLog4jFactory.getLogger(PhysicianEJB.class.getName());
057 
058   // Attributes
059   private EntityContext ctx;
060 
061   // Local methods
062   // Container managed fields
063   @CmpField(column = "id",
064             orderingNumber = "1")
065   @LocalMethod()
066   @PrimkeyField()
067   public abstract Integer getId();
068 
069   @LocalMethod()
070   public abstract void setId(Integer id);
071 
072   @CmpField(column = "first_name",
073             orderingNumber = "2",
074       groupNames = "physician-group")
075   @LocalMethod()
076   public abstract String getFirstName();
077 
078   @LocalMethod()
079   public abstract void setFirstName(String firstName);
080 
081   @CmpField(column = "middle_name",
082             orderingNumber = "3",
083             groupNames = "physician-group")
084   @LocalMethod()
085   public abstract String getMiddleName();
086 
087   @LocalMethod()
088   public abstract void setMiddleName(String middleName);
089 
090   @CmpField(column = "last_name",
091             orderingNumber = "4",
092             groupNames = "physician-group")
093   @LocalMethod()
094   public abstract String getLastName();
095 
096   @LocalMethod()
097   public abstract void setLastName(String lastName);
098 
099   @CmpField(column = "phone",
100             orderingNumber = "5")
101   @LocalMethod()
102   public abstract String getPhone();
103 
104   @LocalMethod()
105   public abstract void setPhone(String phone);
106 
107   @CmpField(column = "email",
108             orderingNumber = "6")
109   @LocalMethod()
110   public abstract String getEmail();
111 
112   @LocalMethod()
113   public abstract void setEmail(String email);
114 
115   @CmrField(orderingNumber = "7")
116   @LocalMethod()
117   public abstract Collection getRecords();
118 
119   @LocalMethod()
120   public abstract void setRecords(Collection records);
121 
122   /**
123    <p>Returns a value object representation of the bean.</p>
124    *
125    @return Physician
126    */
127   @LocalMethod()
128   public Physician getPhysician() {
129     Physician physician = new Physician();
130     physician.setId(getId());
131     physician.setFirstName(getFirstName());
132     physician.setMiddleName(getMiddleName());
133     physician.setLastName(getLastName());
134     physician.setPhone(getPhone());
135     physician.setEmail(getEmail());
136     return physician;
137   }
138 
139   /**
140    <p>Returns an abbreviated value object representation of the bean.
141    * Fields returned are:<br>
142    * id<br>
143    * first name<br>
144    * middle name<br>
145    * last name</p>
146    *
147    @return Physician
148    */
149   @LocalMethod()
150   public Physician getPhysicianLite() {
151     Physician physician = new Physician();
152     physician.setId(getId());
153     physician.setFirstName(getFirstName());
154     physician.setMiddleName(getMiddleName());
155     physician.setLastName(getLastName());
156     return physician;
157   }
158 
159   // Home methods
160   /**
161    <p>Physician create.</p>
162    */
163   public Object ejbCreate(Physician physician)
164       throws NamingException, CreateException {
165     logger.debug("Creating physician: "+physician.toString());
166     setFirstName(physician.getFirstName());
167     setMiddleName(physician.getMiddleName());
168     setLastName(physician.getLastName());
169     setPhone(physician.getPhone());
170     setEmail(physician.getEmail());
171     return null;
172   }
173 
174   public void ejbPostCreate(Physician physicianthrows CreateException {
175     /* not implemented */
176   }
177 
178   public Object ejbCreate(String firstName, String middleName, String lastName)
179       throws NamingException, CreateException {
180     setFirstName(firstName);
181     setMiddleName(middleName);
182     setLastName(lastName);
183     return null;
184   }
185 
186   public void ejbPostCreate(String firstName,
187                             String middleName,
188                             String lastNamethrows CreateException {
189     /* not implemented */
190   }
191 
192   @LocalMethod()
193   public String toString() {
194     StringBuffer str = new StringBuffer();
195     str.append("PHYSICIAN [Id: "+getId());
196     str.append("| Name: "+getFirstName());
197     str.append(" "+getMiddleName());
198     str.append(" "+getLastName());
199     str.append("| Phone: "+getPhone());
200     str.append("| Email: "+getEmail());
201     str.append("]");
202     return str.toString();
203   }
204 }