package com.oreilly.jent.people.ejb;
import java.rmi.RemoteException;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import javax.ejb.CreateException;
import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import com.oreilly.jent.people.InvalidSearchException;
import com.oreilly.jent.people.PersistenceException;
import com.oreilly.jent.people.Person;
import com.oreilly.jent.people.PersonDAO;
import com.oreilly.jent.people.SearchArg;
/**
* Implementation of our PeopleFinder EJB.
*
* @author jfarley
*/
public class PeopleFinderBean implements SessionBean {
/**
*
*/
public PeopleFinderBean() {
super();
}
/* (non-Javadoc)
* @see javax.ejb.SessionBean#ejbActivate()
*/
public void ejbActivate() throws EJBException, RemoteException {
}
/* (non-Javadoc)
* @see javax.ejb.SessionBean#ejbPassivate()
*/
public void ejbPassivate() throws EJBException, RemoteException {
}
/* (non-Javadoc)
* @see javax.ejb.SessionBean#ejbRemove()
*/
public void ejbRemove() throws EJBException, RemoteException {
}
/* (non-Javadoc)
* @see javax.ejb.SessionBean#setSessionContext(javax.ejb.SessionContext)
*/
public void setSessionContext(SessionContext arg0)
throws EJBException, RemoteException {
}
public void ejbCreate() throws CreateException {
}
// Perform the actual search, using the PersonDAO.
public Person[] findPeople(SearchArg[] args)
throws InvalidSearchException, PersistenceException {
Map searchArgsMap = new HashMap();
for (int i = 0; i < args.length; i++) {
searchArgsMap.put(args[i].getName(), args[i].getValue());
}
Collection people = PersonDAO.getInstance().findPeople(searchArgsMap);
Person[] peopleArray = new Person[people.size()];
Iterator pIter = people.iterator();
int i = 0;
while (pIter.hasNext()) {
peopleArray[i++] = (Person)pIter.next();
}
return peopleArray;
}
}
|