package com.wiley.compBooks.EJwithUML.TimeCardDomain; import java.util.*; import javax.ejb.*; /** * The Client bean holds descriptive information about a client.. package com.wiley.compB
Trang 1/** Create a ChargeCodeBean with the specified parameters This Æ
is never called directly */
public ChargeCodePK ejbCreate(long id, String name, String description,
ProjectLocal project) throws CreateException {
setId(id);
setName(name);
setDescription(description);
return null;
}
/** Actions performed after creation This is never called directly */ public void ejbPostCreate(long id, String name, String description,
ProjectLocal project) {
setProject(project);
} }
Trang 2ClientInt.java
ClientInt.java is the local Business interface for the Client entity bean It defines all of the locally accessible methods for the Client entity bean.
package com.wiley.compBooks.EJwithUML.TimeCardDomain;
import java.util.*;
import javax.ejb.*;
/**
* The ClientInt is the interface that ties the Bean with the Remote
* interface to provide compile time type checking
*/
public interface ClientInt {
/** Answers the name of this Client */
public String getName();
/** Answers the description of this Client */
public String getDescription();
/** Answers all the projects of this Client */
ClientEntityBean
Trang 3public Collection getProjects();
}
ClientLocal.java
ClientLocal.java is the local EJB interface for the Client entity bean that inherits from ClientInt.
package com.wiley.compBooks.EJwithUML.TimeCardDomain;
import java.util.*;
import javax.ejb.*;
/**
* The Client bean holds descriptive information about a client
* ClientLocal is the local interface through which local clients access
* the underlying entity bean
*/
public interface ClientLocal extends EJBLocalObject, ClientInt {
}
ClientLocalHome.java
ClientLocalHome.java is the Home interface for the Client entity bean It defines the methods for finding and creating Client entity beans.
package com.wiley.compBooks.EJwithUML.TimeCardDomain;
import java.util.*;
import javax.ejb.*;
/**
* The Client bean holds descriptive information about a client
* ClientLocalHome is the local interface through which local clients
* find and create the underlying entity beans
*/
public interface ClientLocalHome extends EJBLocalHome {
/** Answers a Collection that holds references to all of the Client Æ beans */
public Collection findAll() throws FinderException;
/**
* Answers a Collection that holds references to all of the Client
* beans that match the name parameter
*/
public Collection findByName(String name) throws FinderException;
12 ClientEntityBean
Trang 4public ClientLocal findByPrimaryKey(ClientPK key) throws FinderException;
/** Answers a local reference to the newly created Client bean */
public ClientLocal create(long id, String name, String description) Æ throws CreateException;
}
ClientBean.java
ClientBean.java is the implementation class for the Client entity bean It contains the data and logic for the bean.
package com.wiley.compBooks.EJwithUML.TimeCardDomain;
import com.wiley.compBooks.EJwithUML.Base.EjbUtil.*;
import java.util.*;
import java.rmi.*;
import javax.ejb.*;
import javax.naming.*;
/**
* The Client bean holds descriptive information about a client
* ClientBean is the actual entity bean implementation
*/
public abstract class ClientBean extends BasicEntityBean implements Æ ClientInt
{ /** CMP fields */
public abstract long getId();
public abstract void setId(long id);
public abstract String getName();
public abstract void setName(String name);
public abstract String getDescription();
public abstract void setDescription(String desc);
/** CMR fields */
public abstract Collection getProjects();
public abstract void setProjects(Collection projects);
public ClientBean() {
}
/** Create a ClientBean with the specified parameters This is Æ never called directly */
public ClientPK ejbCreate(long id, String name, String description) Æ throws CreateException
{ setId(id);
setName(name);
Trang 5return null;
}
/** Actions performed after creation This is never called directly */ public void ejbPostCreate(long id, String name, String description) {
} }
14 ClientEntityBean
Trang 6ProjectInt.java
ProjectInt.java is the local Business interface for the Project entity bean It defines the locally accessible methods for the Project entity bean.
package com.wiley.compBooks.EJwithUML.TimeCardDomain;
import java.util.*;
import javax.ejb.*;
/**
* The ProjectInt is the interface that ties the Bean with the Remote
* interface to provide compile time type checking
*/
public interface ProjectInt {
/** Answers the name of this Project */
public String getName();
/** Answers the description of this Project */
public String getDescription();
/** Answers the parent Client of this Project */
ProjectEntityBean
Trang 7public ClientLocal getClient();
/** Answers all the charge codes for this Project */
public Collection getChargeCodes();
}
ProjectLocal.java
ProjectLocal.java is the local EJB interface for the Project entity bean that inherits from ProjectInt.
package com.wiley.compBooks.EJwithUML.TimeCardDomain;
import java.util.*;
import javax.ejb.*;
/**
* The Project bean holds descriptive information about a project
* ProjectLocal is the local interface through which local clients
* access the underlying entity bean
*/
public interface ProjectLocal extends EJBLocalObject, ProjectInt {
}
ProjectLocalHome.java
ProjectLocalHome.java is the Home interface for the Project entity bean It defines the methods for finding and creating Project entity beans.
package com.wiley.compBooks.EJwithUML.TimeCardDomain;
import java.util.*;
import javax.ejb.*;
/**
* The Project bean holds descriptive information about a project
* ProjectLocalHome is the local interface through which local clients
* find and create the underlying entity beans
*/
public interface ProjectLocalHome extends EJBLocalHome {
/** Answers a Collection that contains references to all Projects associated with the specified client */
public Collection findByClientId(long clientId) throws FinderException;
/** Answers a Collection that contains references to all Project beans
16 ProjectEntityBean
Trang 8that have the specified name Should be unique */
public Collection findProject(long clientId, String name) throws Æ FinderException;
/** Answer a local reference to the Project if it exists */
public ProjectLocal findByPrimaryKey(ProjectPK key) throws FinderException;
/** Answer a local reference to the newly created Project */
public ProjectLocal create(long id, String name, String description,
ClientLocal client) throws CreateException; }
ProjectBean.java
ProjectBean.java is the implementation class for the Project entity bean It holds the data and logic for the bean.
package com.wiley.compBooks.EJwithUML.TimeCardDomain;
import com.wiley.compBooks.EJwithUML.Base.EjbUtil.*;
import java.util.*;
import java.rmi.*;
import javax.ejb.*;
import javax.naming.*;
/**
* The Project bean holds descriptive information about a project
* ProjectBean is the actual entity bean implementation
*/
public abstract class ProjectBean extends BasicEntityBean implements Æ ProjectInt
{ /** CMP fields */
public abstract long getId();
public abstract void setId(long id);
public abstract String getName();
public abstract void setName(String name);
public abstract String getDescription();
public abstract void setDescription(String desc);
/** CMR fields*/
public abstract ClientLocal getClient();
public abstract void setClient(ClientLocal client);
public abstract Collection getChargeCodes();
public abstract void setChargeCodes(Collection chargeCodes);
public ProjectBean() {
Trang 9/** Create a ProjectBean with the specified parameters This is Æ never called directly */
public ProjectPK ejbCreate(long id, String name, String description,
ClientLocal client) throws CreateException {
setId(id);
setName(name);
setDescription(description);
return null;
}
/** Actions performed after creation This is never called directly */ public void ejbPostCreate(long id, String name, String description,
ClientLocal client) throws CreateException {
setClient(client);
} }
18 ProjectEntityBean
Trang 10RecordTimeServlet.java
The RecordTimeServlet uses the RecordTimeWorkflow to retrieve and update time-cards If no entry or new charge code is specified, the RecordTimeServlet retrieves the current timecard and builds an entry form If an entry is submitted, the RecordTime-Servlet first updates the timecard through the RecordTimeWorkflow and then builds
an entry form If a new charge code is specified, then the RecordTimeServlet creates new zero hour entries for the charge code, updates the timecard, and then builds an entry form.
package com.wiley.compBooks.EJwithUML.TimecardUI;
import javax.servlet.http.*;
import javax.servlet.*;
import javax.naming.*;
import javax.ejb.*;
import java.rmi.*;
import javax.rmi.PortableRemoteObject;
import javax.servlet.http.*;
import javax.servlet.*;
import javax.naming.*;
RecordTimeServletjava