package citation.query;
import java.rmi.RemoteException;
import citation.comm.CitationCatcher_Stub;
import citation.data.*;
public class QueryMgr implements IServerQuery {
private GPSLocation gps = null;
public QueryMgr()
{
gps = new GPSLocation();
// initialize location listener
gps.startGPSListener();
}
public Object getGPSLocationObj()
{
return gps;
}
public Object findDMVRecord(String _license)
{
CPerson cp = null; // this is the return object
// get the request from the server
CitationCatcher_Stub serverObj = new CitationCatcher_Stub();
try {
String xml = serverObj.getDMVResultAsXML(_license);
// fill out a person object
cp = new CPerson();
XMLStringParser parser = new XMLStringParser(xml);
cp.setElement(CPerson.LAST, parser.getNamedElement("Lname"));
cp.setElement(CPerson.MIDDLE, parser.getNamedElement("Mname"));
cp.setElement(CPerson.FIRST, parser.getNamedElement("Fname"));
cp.setElement(CPerson.ADDRESS, parser.getNamedElement("Address"));
cp.setElement(CPerson.CITY, parser.getNamedElement("City"));
cp.setElement(CPerson.ZIP, parser.getNamedElement("Zip"));
cp.setElement(CPerson.DOB, parser.getNamedElement("DOB"));
cp.setElement(CPerson.SEX, parser.getNamedElement("Sex"));
cp.setElement(CPerson.HEIGHT, parser.getNamedElement("Height"));
cp.setElement(CPerson.WEIGHT, parser.getNamedElement("Weight"));
cp.setElement(CPerson.ENDORSEMENTS, parser.getNamedElement("Endorsements"));
cp.setElement(CPerson.RESTRICTIONS, parser.getNamedElement("Restrictions"));
}
catch (RemoteException e) {
// TODO Auto-generated catch block - need to add error recovery
e.printStackTrace();
}
return cp;
}
public Object getCourtInfo() {
CViolation cv = null; // this is the return object that has the necessary court information embedded
// unused (non-court info) members are left emtpy
// get the request from the server
CitationCatcher_Stub serverObj = new CitationCatcher_Stub();
try {
String xml = serverObj.getCourtInfoAsXML();
// fill out a person object
cv = new CViolation();
XMLStringParser parser = new XMLStringParser(xml);
cv.setElement(CViolation.COURT_DATE, parser.getNamedElement("COURT_DATE"));
cv.setElement(CViolation.COURT_NAME, parser.getNamedElement("COURT_NAME"));
cv.setElement(CViolation.COURT_ADDRESS, parser.getNamedElement("COURT_ADDRESS"));
cv.setElement(CViolation.COURT_CITY, parser.getNamedElement("COURT_CITY"));
cv.setElement(CViolation.COURT_STATE, parser.getNamedElement("COURT_STATE"));
cv.setElement(CViolation.COURT_ZIP, parser.getNamedElement("COURT_ZIP"));
cv.setElement(CViolation.COURT_PHONE, parser.getNamedElement("COURT_PHONE"));
}
catch (RemoteException e) {
// TODO Auto-generated catch block - need to add error recovery
e.printStackTrace();
}
return cv;
}
}