Example 8.16 Implementing Session Facade - Remote Interface package corepatterns.apps.psa.ejb; import java.rmi.RemoteException; import javax.ejb.*; import corepatterns.apps.psa.core.*; // Note: all try/catch details not shown for brevity. public interface ProjectResourceManager extends EJBObject { public resetEntities(String resourceId, String projectId, ...) throws RemoteException, ResourceException ; public void assignResourceToProject(int numHours) throws RemoteException, ResourceException ; public void unassignResourceFromProject() throws RemoteException, ResourceException ; ... public ResourceVO getResourceData() throws RemoteException, ResourceException ; public void setResourceData(ResourceVO resource) throws RemoteException, ResourceException ; public ResourceVO createNewResource(ResourceVO resource) throws ResourceException ; public void addBlockoutTime(Collection blockoutTime) throws RemoteException,BlockoutTimeException ; public void updateBlockoutTime(Collection blockoutTime) throws RemoteException,BlockoutTimeException ; public Collection getResourceCommitments() throws RemoteException, ResourceException; public ProjectVO getProjectData() throws RemoteException, ProjectException ; public void setProjectData(ProjectVO project) throws RemoteException, ProjectException ; public ProjectVO createNewProject(ProjectVO project) throws RemoteException, ProjectException ; ... public ProjectCVO getProjectDetailsData() throws RemoteException, PSAException ; public Collection getProjectsList(Date start, Date end) throws RemoteException, PSAException ; ... }