package dk.daoas.daoadresseservice.admin;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLEncoder;
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.beans.Address;
/**
* Servlet implementation class CsvUdtraek
*/
@WebServlet("/CsvUdtraek")
public class CsvUdtraek extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String type = request.getParameter("type");
String str = null;
if (type != null) {
switch( type ) {
case "ikkedaekket":
str = udtraekIkkeDaekket();
break;
case "100pct":
str = udtraek100Pct();
break;
default:
str = null;
break;
}
}
if (str != null) {
type = URLEncoder.encode(type, "UTF-8");
response.setContentType("text/csv");
response.setHeader("Content-Disposition", "filename=" + type + ".csv");
response.getWriter().print(str);
} else {
PrintWriter w = response.getWriter();
response.setContentType("text/html");
w.print("Type parameter is blank or invalid value
");
w.print("Type: ikkedaekket
");
w.print("Type: 100pct
");
}
}
/* *******************************************
*
*/
private String udtraekIkkeDaekket() {
AddressSearch search = (AddressSearch) getServletContext().getAttribute("search");
if (search == null) {
return "data struktur ikke indlæst";
}
StringBuilder sb = new StringBuilder();
sb.append("gadeid;postnr;vejnavn;husnr;husnrbogstav;distributor\r\n");
for (Address addr : search.getNonCoveredAddresses() ) {
sb.append( addr.gadeid ).append(";")
.append( addr.postnr ).append(";")
.append( addr.vejnavn ).append(";")
.append( addr.husnr ).append(";")
.append( addr.husnrbogstav ).append(";")
.append( addr.distributor != null ? addr.distributor : "" )
.append( "\n" );
}
return sb.toString();
}
private String udtraek100Pct() {
AddressSearch search = (AddressSearch) getServletContext().getAttribute("search");
if (search == null) {
return "data struktur ikke indlæst";
}
StringBuilder sb = new StringBuilder();
sb.append("gadeid;postnr;vejnavn;husnr;husnrbogstav;distributor\r\n");
for (Address addr : search.get100PctAddresses() ) {
sb.append( addr.gadeid ).append(";")
.append( addr.postnr ).append(";")
.append( addr.vejnavn ).append(";")
.append( addr.husnr ).append(";")
.append( addr.husnrbogstav ).append(";")
.append( addr.distributor != null ? addr.distributor : "" )
.append( "\n" );
}
return sb.toString();
}
}