--- android/TrainInfoService/src/dk/thoerup/traininfoservice/banedk/TimetableServlet.java 2010/09/16 09:11:23 1059 +++ android/TrainInfoService/src/dk/thoerup/traininfoservice/banedk/TimetableServlet.java 2010/09/16 13:32:10 1060 @@ -1,7 +1,8 @@ package dk.thoerup.traininfoservice.banedk; +import java.io.ByteArrayOutputStream; import java.io.IOException; -import java.util.List; + import java.util.logging.Level; import java.util.logging.Logger; @@ -11,6 +12,9 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.simpleframework.xml.Serializer; +import org.simpleframework.xml.core.Persister; + import dk.thoerup.circuitbreaker.CircuitBreakerException; import dk.thoerup.traininfoservice.Statistics; @@ -55,7 +59,7 @@ try { - List timetable = fetcher.cachedLookupTimetable(train, type); + TimetableBean timetable = fetcher.cachedLookupTimetable(train, type); String responseXML = formatTimetable(timetable); @@ -77,29 +81,18 @@ } - String formatTimetable(List timetable) { - StringBuffer sb = new StringBuffer(); - //sb.append("\n"); - - sb.append(""); - - for (TimetableBean bean : timetable) { - sb.append(""); - - sb.append("").append( bean.getStation() ).append(""); - sb.append("").append( bean.getArrival() ).append(""); - sb.append("").append( bean.getDeparture() ).append(""); - sb.append("").append( bean.getStationId() ).append(""); - //sb.append("").append( bean.isCancelled() ).append(""); - sb.append(""); + String formatTimetable(TimetableBean timetable) throws ServletException { + Serializer serializer = new Persister(); + + ByteArrayOutputStream out = new ByteArrayOutputStream(); + + try { + serializer.write(timetable, out); + } catch (Exception e) { + throw new ServletException(e); } - sb.append(""); - - return sb.toString(); + return out.toString(); } }