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

Annotation of /android/TrainInfoService/src/dk/thoerup/traininfoservice/banedk/CompareStations.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1692 - (hide annotations) (download)
Fri Feb 24 14:26:53 2012 UTC (12 years, 3 months ago) by torben
File size: 3396 byte(s)
make CompareStations display whether we actually know this station but it is currently disabled
1 torben 1449 package dk.thoerup.traininfoservice.banedk;
2    
3     import java.io.IOException;
4     import java.io.PrintWriter;
5     import java.net.URL;
6 torben 1451 import java.util.Map;
7 torben 1450 import java.util.Set;
8 torben 1451 import java.util.TreeMap;
9 torben 1450 import java.util.TreeSet;
10 torben 1449
11     import javax.servlet.ServletException;
12     import javax.servlet.annotation.WebServlet;
13     import javax.servlet.http.HttpServlet;
14     import javax.servlet.http.HttpServletRequest;
15     import javax.servlet.http.HttpServletResponse;
16    
17     import org.jsoup.nodes.Document;
18     import org.jsoup.nodes.Element;
19     import org.jsoup.select.Elements;
20    
21     import dk.thoerup.android.traininfo.common.StationBean;
22     import dk.thoerup.android.traininfo.common.StationEntry;
23     import dk.thoerup.circuitbreaker.CircuitBreaker;
24     import dk.thoerup.circuitbreaker.CircuitBreakerManager;
25     import dk.thoerup.traininfoservice.db.StationDAO;
26    
27    
28     @WebServlet(urlPatterns={"/CompareStations"})
29     public class CompareStations extends HttpServlet {
30     private static final long serialVersionUID = 1L;
31    
32    
33     protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
34     CircuitBreaker cb = CircuitBreakerManager.getManager().getCircuitBreaker("banedk");
35    
36     JsoupInvocation jsoup = new JsoupInvocation(new URL("http://trafikinfo.bane.dk/Trafikinformation/Stationsliste"), 5000);
37    
38 torben 1451 Map<String,String> banedkStations = new TreeMap<String,String>();
39 torben 1450 Set<String> dbStations = new TreeSet<String>();
40 torben 1449
41 torben 1692 StationDAO dao = new StationDAO();
42 torben 1451
43 torben 1449 try {
44     Document doc = (Document) cb.invoke(jsoup);
45    
46     Elements tables = doc.getElementsByClass("Oversigt");
47    
48     for(Element e : tables) {
49     if (e.tagName().equals("table") ){
50     Elements links = e.getElementsByTag("a");
51 torben 1451 for (Element link : links) {
52     banedkStations.put( link.text(), link.attr("href") );
53 torben 1449 }
54     }
55     }
56    
57     StationBean bean = dao.dumpAll();
58     for (StationEntry station : bean.entries) {
59     if (station.isRegional() || station.isStrain()) {
60     dbStations.add(station.getName());
61     }
62     }
63    
64     } catch (Exception e) {
65     throw new ServletException(e);
66     }
67    
68    
69    
70     StringBuilder sb = new StringBuilder();
71    
72     sb.append("<h2>stations on website not in db</h2>");
73     sb.append("<ul>");
74 torben 1450 Set<String> tmpDbStations = new TreeSet<String>( dbStations );
75 torben 1451 Set<String> tmpBanedkStations = new TreeSet<String>( banedkStations.keySet()) ;
76 torben 1449 tmpBanedkStations.removeAll(tmpDbStations);
77 torben 1692
78    
79    
80 torben 1449 for(String s : tmpBanedkStations) {
81 torben 1451 String uri = banedkStations.get(s);
82 torben 1692 String disabled = "";
83     try {
84     boolean tmpdisabled = dao.hasDisabledStation(s);
85     if (tmpdisabled == true)
86     disabled = "disabled";
87     } catch (Exception e) {
88     throw new ServletException(e);
89     }
90    
91     sb.append( "<li><a href='http://trafikinfo.bane.dk" + uri + "'>" + s + "</a>&nbsp;&nbsp;" + disabled + "</li>" );
92 torben 1449 }
93     sb.append("</ul>");
94    
95    
96     sb.append("<h2>stations in db not on website </h2>");
97     sb.append("<ul>");
98 torben 1450 tmpDbStations = new TreeSet<String>( dbStations );
99 torben 1451 tmpBanedkStations = new TreeSet<String>( banedkStations.keySet() ) ;
100 torben 1449 tmpDbStations.removeAll(tmpBanedkStations);
101     for(String s : tmpDbStations) {
102     sb.append( "<li>" + s + "</li>" );
103     }
104     sb.append("</ul>");
105    
106    
107     PrintWriter out = response.getWriter();
108     out.print(sb.toString());
109    
110    
111    
112     }
113    
114 torben 1692
115 torben 1449 }

  ViewVC Help
Powered by ViewVC 1.1.20