/[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 1451 - (hide annotations) (download)
Thu May 5 11:21:11 2011 UTC (13 years ago) by torben
File size: 3133 byte(s)
Add link to banedk
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 1451
42 torben 1449 try {
43     Document doc = (Document) cb.invoke(jsoup);
44    
45     Elements tables = doc.getElementsByClass("Oversigt");
46    
47     for(Element e : tables) {
48     if (e.tagName().equals("table") ){
49     Elements links = e.getElementsByTag("a");
50 torben 1451 for (Element link : links) {
51     banedkStations.put( link.text(), link.attr("href") );
52 torben 1449 }
53     }
54     }
55    
56     StationDAO dao = new StationDAO();
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     for(String s : tmpBanedkStations) {
78 torben 1451 String uri = banedkStations.get(s);
79     sb.append( "<li><a href='http://trafikinfo.bane.dk" + uri + "'>"+ s + "</a></li>" );
80 torben 1449 }
81     sb.append("</ul>");
82    
83    
84     sb.append("<h2>stations in db not on website </h2>");
85     sb.append("<ul>");
86 torben 1450 tmpDbStations = new TreeSet<String>( dbStations );
87 torben 1451 tmpBanedkStations = new TreeSet<String>( banedkStations.keySet() ) ;
88 torben 1449 tmpDbStations.removeAll(tmpBanedkStations);
89     for(String s : tmpDbStations) {
90     sb.append( "<li>" + s + "</li>" );
91     }
92     sb.append("</ul>");
93    
94    
95     PrintWriter out = response.getWriter();
96     out.print(sb.toString());
97    
98    
99    
100     }
101    
102     }

  ViewVC Help
Powered by ViewVC 1.1.20