From 3fa8de6df4cd851a938b45f6d73806b47cc21b76 Mon Sep 17 00:00:00 2001 From: Johannes Theiner Date: Fri, 24 May 2019 08:13:30 +0200 Subject: [PATCH] ~ small fixes and code cleanup Signed-off-by: Johannes Theiner #SPM-31: add work 20m testing --- .../spm/baudas/analysis/ShoppingCart.java | 14 +++++----- .../de/hsel/spm/baudas/web/ErrorCode.java | 27 ++++++++++++++++-- .../java/de/hsel/spm/baudas/web/Upload.java | 28 +++++++++++-------- src/main/webapp/error.jsp | 16 ++++------- 4 files changed, 53 insertions(+), 32 deletions(-) diff --git a/src/main/java/de/hsel/spm/baudas/analysis/ShoppingCart.java b/src/main/java/de/hsel/spm/baudas/analysis/ShoppingCart.java index 3f01c76..6e5b443 100644 --- a/src/main/java/de/hsel/spm/baudas/analysis/ShoppingCart.java +++ b/src/main/java/de/hsel/spm/baudas/analysis/ShoppingCart.java @@ -27,14 +27,12 @@ public class ShoppingCart implements Analysis, List>> { @Override public Map, List> getResult() { - if(result != null) { + if (result != null) { return result; } result = new HashMap<>(); - Apriori model = new Apriori(); - for (int i = 0; i < 11; i++) { instances.deleteAttributeAt(0); } @@ -60,6 +58,8 @@ public class ShoppingCart implements Analysis, List>> { e.printStackTrace(); } + Apriori model = new Apriori(); + model.setTreatZeroAsMissing(true); try { model.buildAssociations(instances); @@ -67,19 +67,19 @@ public class ShoppingCart implements Analysis, List>> { e.printStackTrace(); } - for(int i = 0; i < model.getAssociationRules().getRules().size();i++){ + for (int i = 0; i < model.getAssociationRules().getRules().size(); i++) { AssociationRule rule = model.getAssociationRules().getRules().get(i); List l1 = new ArrayList<>(); - for(Item item : rule.getPremise()){ + for (Item item : rule.getPremise()) { l1.add(item.getAttribute().name()); } List l2 = new ArrayList<>(); - for(Item item : rule.getConsequence()){ + for (Item item : rule.getConsequence()) { l2.add(item.getAttribute().name()); } - result.put(l1,l2); + result.put(l1, l2); } diff --git a/src/main/java/de/hsel/spm/baudas/web/ErrorCode.java b/src/main/java/de/hsel/spm/baudas/web/ErrorCode.java index 906aef6..7fa1d53 100644 --- a/src/main/java/de/hsel/spm/baudas/web/ErrorCode.java +++ b/src/main/java/de/hsel/spm/baudas/web/ErrorCode.java @@ -3,12 +3,33 @@ package de.hsel.spm.baudas.web; import lombok.AllArgsConstructor; import lombok.Getter; +/** + * all possible error codes. + * + * @author Julian Hinxlage + * @version 0.1 + */ @Getter @AllArgsConstructor public enum ErrorCode { - FILE_NOT_FOUND ("Die Hochgeladene Datei konnte nicht gefunden werden"), - EMPTY_FILE ("Die Hochgeladene Datei ist leer"), - INVALID_FORMAT("Die Hochgeladene Datei hat ein falsches Format"); + FILE_NOT_FOUND("Die hochgeladene Datei konnte nicht gefunden werden"), + EMPTY_FILE("Die hochgeladene Datei ist leer"), + INVALID_FORMAT("Die hochgeladene Datei hat ein falsches Format"); private String message; + + /** + * is there a error code with this name ?. + * + * @param message string to search for + * @return error code exits ? + */ + public static boolean exists(String message) { + for (ErrorCode code : values()) { + System.out.println(message + " == " + code.name()); + if (code.name().equals(message)) + return true; + } + return false; + } } diff --git a/src/main/java/de/hsel/spm/baudas/web/Upload.java b/src/main/java/de/hsel/spm/baudas/web/Upload.java index c5adec8..fb09190 100644 --- a/src/main/java/de/hsel/spm/baudas/web/Upload.java +++ b/src/main/java/de/hsel/spm/baudas/web/Upload.java @@ -21,7 +21,7 @@ import java.nio.file.StandardCopyOption; /** * saves uploaded files. * - * @author Johannes Theiner + * @author Johannes Theiner, Julian Hinxlage * @version 0.1 * @since 0.1 **/ @@ -32,56 +32,60 @@ public class Upload extends HttpServlet { private static final long serialVersionUID = 14144111845151L; - + /** + * let weka check if the format is valid. + * + * @param stream input stream + * @return format valid + */ private boolean checkFormat(InputStream stream) { CSVLoader loader = new CSVLoader(); try { loader.setSource(stream); return loader.getDataSet() != null; - } catch (IOException e) { + } catch (Exception e) { return false; } } @Override - protected void doPost(@NotNull HttpServletRequest req, HttpServletResponse resp) - throws ServletException, IOException { + protected void doPost(@NotNull HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { req.setCharacterEncoding(StandardCharsets.UTF_8.name()); Part filePart = req.getPart("file"); - if(filePart == null){ + if (filePart == null) { resp.sendRedirect("error.jsp?code=" + ErrorCode.FILE_NOT_FOUND); return; } - if(filePart.getSubmittedFileName() == null){ + if (filePart.getSubmittedFileName() == null) { resp.sendRedirect("error.jsp?code=" + ErrorCode.FILE_NOT_FOUND); return; } String fileName = Paths.get(filePart.getSubmittedFileName()).getFileName().toString(); - if(fileName == null){ + if (fileName == null) { resp.sendRedirect("error.jsp?code=" + ErrorCode.FILE_NOT_FOUND); return; } InputStream inputStream = filePart.getInputStream(); - if(inputStream == null){ + if (inputStream == null) { resp.sendRedirect("error.jsp?code=" + ErrorCode.FILE_NOT_FOUND); return; } - if(inputStream.available() == 0) { + if (inputStream.available() == 0) { resp.sendRedirect("error.jsp?code=" + ErrorCode.EMPTY_FILE); return; } - if(!checkFormat(inputStream)){ + if (!checkFormat(inputStream)) { resp.sendRedirect("error.jsp?code=" + ErrorCode.INVALID_FORMAT); return; - }else{ + } else { inputStream = filePart.getInputStream(); } diff --git a/src/main/webapp/error.jsp b/src/main/webapp/error.jsp index c1cfc0f..a137dce 100644 --- a/src/main/webapp/error.jsp +++ b/src/main/webapp/error.jsp @@ -1,13 +1,8 @@ -<%-- - Created by IntelliJ IDEA. - User: julian - Date: 21.05.19 - Time: 14:21 - To change this template use File | Settings | File Templates. ---%> - -<%@ page import="java.nio.charset.StandardCharsets" %> <%@ page import="de.hsel.spm.baudas.web.ErrorCode" %> +<%@ page import="java.nio.charset.StandardCharsets" %> +<%@ page import="java.util.List" %> +<%@ page import="java.util.Arrays" %> +<%@ page import="java.util.ArrayList" %> <%@ page contentType="text/html;charset=UTF-8" %> <%@include file="emptyHeader.jsp"%> <% response.setCharacterEncoding(StandardCharsets.UTF_8.name()); %> @@ -15,7 +10,8 @@ <% String code = request.getParameter("code"); - if(code != null){ + + if(code != null && ErrorCode.exists(code)){ ErrorCode errorCode = ErrorCode.valueOf(code); %>