/[projects]/android/TrainInfoService/src/dk/thoerup/traininfoservice/RequestPlotter.java
ViewVC logotype

Diff of /android/TrainInfoService/src/dk/thoerup/traininfoservice/RequestPlotter.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1311 by torben, Tue Apr 19 16:31:11 2011 UTC revision 1426 by torben, Mon May 2 18:19:16 2011 UTC
# Line 17  import java.util.List; Line 17  import java.util.List;
17  import java.util.Map;  import java.util.Map;
18  import java.util.logging.Level;  import java.util.logging.Level;
19  import java.util.logging.Logger;  import java.util.logging.Logger;
 import java.util.zip.GZIPInputStream;  
20  import java.util.zip.ZipEntry;  import java.util.zip.ZipEntry;
21  import java.util.zip.ZipOutputStream;  import java.util.zip.ZipOutputStream;
22    
# Line 27  import javax.servlet.http.HttpServlet; Line 26  import javax.servlet.http.HttpServlet;
26  import javax.servlet.http.HttpServletRequest;  import javax.servlet.http.HttpServletRequest;
27  import javax.servlet.http.HttpServletResponse;  import javax.servlet.http.HttpServletResponse;
28    
29  import dk.thoerup.traininfoservice.banedk.TimeoutMap;  import dk.thoerup.genericjavautils.TimeoutMap;
30    
31  @WebServlet(urlPatterns={"/RequestPlotter"})  @WebServlet(urlPatterns={"/RequestPlotter"})
32  public class RequestPlotter extends HttpServlet {  public class RequestPlotter extends HttpServlet {
# Line 79  public class RequestPlotter extends Http Line 78  public class RequestPlotter extends Http
78                          return empty;                          return empty;
79                  }                  }
80                                    
81                  int from = logFiles.length - (count);                  int from = (count>logFiles.length) ? 0 : logFiles.length - (count);
82                  int to = logFiles.length;                  int to = logFiles.length;
83                                                                    
84                  return Arrays.copyOfRange(logFiles, from, to);                    return Arrays.copyOfRange(logFiles, from, to);  
85          }          }
86                    
87          protected PositionContainer getRequestsFromFileWorker(boolean multiple) throws IOException{          protected PositionContainer getRequestsFromFileWorker(int  count) throws IOException{
88                  PositionContainer positions = new PositionContainer();                  PositionContainer positions = new PositionContainer();
89    
90                  try {                  try {                  
                           
                         int count;  
                           
                         if (multiple == false) {  
                                 count = 1;  
                         } else {  
                                 count = 4;  
                         }  
91                                                    
92                          File files[] = getFiles(count);                          File files[] = getFiles(count);
93    
# Line 276  public class RequestPlotter extends Http Line 267  public class RequestPlotter extends Http
267                  for(RequestPosition current : list) {                  for(RequestPosition current : list) {
268                          String id = color + count++;                          String id = color + count++;
269                          sb.append( " <Placemark id=\"" + id + "\">\n" );                          sb.append( " <Placemark id=\"" + id + "\">\n" );
270                            sb.append( "  <name>").append(current.time).append("</name>\n" );
271                          sb.append( "  <styleUrl>#").append(color).append("</styleUrl>\n" );                          sb.append( "  <styleUrl>#").append(color).append("</styleUrl>\n" );
272                          sb.append( "  <description><![CDATA[IP=").append(current.ip).append("<br/>Time=").append(current.time).append("]]></description>\n" );                          sb.append( "  <description><![CDATA[IP=").append(current.ip).append("<br/> ]]></description>\n" );
273                          sb.append( "  <Point><coordinates>").append(current.lng).append(",").append(current.lat).append(",0</coordinates></Point>\n" );                          sb.append( "  <Point><coordinates>").append(current.lng).append(",").append(current.lat).append(",0</coordinates></Point>\n" );
274                          sb.append( " </Placemark>\n" );                                          sb.append( " </Placemark>\n" );                
275                  }                                }              
# Line 345  public class RequestPlotter extends Http Line 337  public class RequestPlotter extends Http
337                  return sb.toString();                  return sb.toString();
338          }          }
339                    
340          protected String getRequestsFromFile(boolean multiple) throws IOException {                      protected String getRequestsFromFile(int count) throws IOException {            
341                  String kmlData = null;                  String kmlData = null;
342                  String key;                  String key;
343                                    
344                  if (multiple == false)  {                  key = "kmldata-" + count;
                         key = "kmldata";  
                 } else {  
                         key = "kmldata-multi";  
                 }  
345                                                                                    
346                  kmlData = null;// = cache.get(key);                  kmlData = cache.get(key);
347                                                    
348                  if (kmlData == null) {                  if (kmlData == null) {
349                          kmlData = formatXml( getRequestsFromFileWorker(multiple) );                          kmlData = formatXml( getRequestsFromFileWorker(count) );
350                          cache.put(key, kmlData);                          cache.put(key, kmlData);
351                          kmlData += "<!-- from source -->";                                                kmlData += "<!-- from source -->";                      
352                  } else {                  } else {
# Line 381  public class RequestPlotter extends Http Line 369  public class RequestPlotter extends Http
369                  return (p != 0);                  return (p != 0);
370          }          }
371    
372            int getCount(String param) {
373                    if (param == null || param.equals("")) {
374                            return 1;
375                    }
376                                    
377                    return Integer.parseInt(param);
378            }
379    
380            
381          @Override          @Override
382          protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {          protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
383                                    
                 boolean multiple = enabled( req.getParameter("multi") );  
384                                    
385                  String kmlData = getRequestsFromFile(multiple);                  int count = getCount( req.getParameter("count") );
386                    
387                    if (count > 30) //limit to 30 days
388                            count = 30;
389                    if (count < 0) //negative count is not allowed
390                            count = 0;
391                    
392                    String kmlData = getRequestsFromFile(count);
393                                    
394                  if ( enabled(req.getParameter("zip")) ) {                  if ( enabled(req.getParameter("zip")) ) {
395    

Legend:
Removed from v.1311  
changed lines
  Added in v.1426

  ViewVC Help
Powered by ViewVC 1.1.20