package com.uc.irp.server; import java.util.ArrayList; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import javax.jdo.JDOHelper; import javax.jdo.PersistenceManager; import javax.jdo.PersistenceManagerFactory; import javax.jdo.Query; import com.google.gwt.user.server.rpc.RemoteServiceServlet; import com.uc.irp.client.IncidentReportService; import com.uc.irp.client.ReportInfo; import com.google.appengine.api.datastore.Text; /** * The implemenation of the RPC service which runs on the server. */ public class IncidentReportServiceImpl extends RemoteServiceServlet implements IncidentReportService { private static final Logger LOG = Logger .getLogger(IncidentReportServiceImpl.class.getName()); public ReportInfo[] getIncidentReports() { PersistenceManager pm = PMF.get().getPersistenceManager(); ReportInfo[] result; int i = 0; try { Query q = pm.newQuery("select from " + IncidentReport.class.getName()); q.setOrdering("captureTime"); List<IncidentReport> incidentReports = (List<IncidentReport>) q .execute(); result = new ReportInfo[incidentReports.size()]; for (IncidentReport incidentReport : incidentReports) { ReportInfo info = new ReportInfo(); info.setSubscriberId(incidentReport.getSubscriberId()); info.setEvent((incidentReport.getEvent())); info.setLocation((incidentReport.getLocation())); info.setCaptureTime((incidentReport.getCaptureTime())); info.setContent(incidentReport.getContent().toString()); result[i++] = info; } } finally { pm.close(); } return result; } }