package dk.daoas.daoadresseservice.admin; import java.io.IOException; import java.util.Map.Entry; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import dk.daoas.daoadresseservice.AddressSearch; import dk.daoas.daoadresseservice.DaekningsType; import dk.daoas.daoadresseservice.beans.Address; /** * Servlet implementation class DataInspectorServlet */ @WebServlet("/DataInspector") public class DataInspectorServlet extends HttpServlet { private static final long serialVersionUID = 1L; public DataInspectorServlet() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String type = request.getParameter("type"); if (type == null) { throw new ServletException("Missing type parameter"); } AddressSearch search = (AddressSearch) this.getServletContext().getAttribute("search"); if (search == null) { throw new ServletException("Data not ready yet"); } int gadeid; String res=""; switch ( type ) { case "postnr": res = getPostnumre(search); break; case "vejnavn": short postnr = Short.parseShort( request.getParameter("postnr") ); res = getVejnavne(search, postnr); break; case "husnr": gadeid = Integer.parseInt( request.getParameter("gadeid") ); res = getHusnumre(search, gadeid); break; case "adresse": gadeid = Integer.parseInt( request.getParameter("gadeid") ); String husnr = request.getParameter("husnr"); res = getAdresse(search, gadeid, husnr); break; default: res = ""; } response.setContentType("text/html; charset=ISO-8859-1"); response.getWriter().print(res); } protected String getPostnumre(AddressSearch search) { StringBuilder sb = new StringBuilder(); for (Short postnr : search.getPostnumre()) { sb.append("\n"); } return sb.toString(); } protected String getVejnavne(AddressSearch search, short postnr) { StringBuilder sb = new StringBuilder(); for (Entry vej : search.getVejnavne(postnr)) { sb.append("\n"); } return sb.toString(); } protected String getHusnumre(AddressSearch search, int gadeid) { StringBuilder sb = new StringBuilder(); for (String husnr : search.getHusnumre(gadeid)) { sb.append("\n"); } return sb.toString(); } protected String getAdresse(AddressSearch search, int gadeid, String husnr) { StringBuilder sb = new StringBuilder(); Address addresse = search.getAdresse(gadeid, husnr); sb.append("Vejnavn: ").append( addresse.vejnavn).append("
\n"); sb.append("Gadeid: ").append( addresse.gadeid).append("
\n"); sb.append("Kommunekode: ").append( addresse.kommunekode).append("
\n"); sb.append("Vejkode: ").append( addresse.vejkode).append("
\n"); sb.append("Postnr: ").append( addresse.postnr).append("
\n"); sb.append("Husnr: ").append( addresse.husnr).append("
\n"); sb.append("Litra: ").append( addresse.husnrbogstav).append("
\n"); sb.append("
\n"); sb.append("Distributør: ").append( addresse.distributor).append("
\n"); sb.append("Dækning: ").append( addresse.daekningsType).append("
\n"); sb.append("Rute: ").append( addresse.rute).append("
\n"); sb.append("Køreliste: ").append( addresse.koreliste).append("
\n"); sb.append("DBKBane: ").append( addresse.dbkBane).append("
\n"); sb.append("
\n"); sb.append("RuteLørdag: ").append( addresse.ruteLordag).append("
\n"); sb.append("KørelisteLørdag: ").append( addresse.korelisteLordag).append("
\n"); sb.append("RuteSøndag: ").append( addresse.ruteSondag).append("
\n"); sb.append("KørelisteSøndag: ").append( addresse.korelisteSondag).append("
\n"); sb.append("
\n"); sb.append("Latitude: ").append( addresse.latitude).append("
\n"); sb.append("Longitude: ").append( addresse.longitude).append("
\n"); if (addresse.daekningsType == DaekningsType.DAEKNING_UDVIDET) { sb.append("Udv.afstand: ").append( String.format("%.3f", addresse.extAfstand) ).append("
\n"); sb.append("Nærmeste: ") .append( addresse.extTarget.vejnavn) .append(" ") .append(addresse.extTarget.husnr) .append(addresse.extTarget.husnrbogstav) .append(", ") .append(addresse.extTarget.postnr). append("
\n"); } return sb.toString(); } }