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 physician) throws 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 lastName) throws 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 }
|