From d5b4888d5d81d24409a943aee51acbb15f262d09 Mon Sep 17 00:00:00 2001 From: Johannes Theiner Date: Fri, 3 May 2019 16:52:20 +0200 Subject: [PATCH] + Documentation Signed-off-by: Johannes Theiner #SPM-7: add work documentation 20m --- .../java/de/hsel/spm/baudas/web/Data.java | 54 ++++++++++++++++--- .../java/de/hsel/spm/baudas/web/Files.java | 13 ++++- .../de/hsel/spm/baudas/web/SavedFile.java | 9 ++++ .../java/de/hsel/spm/baudas/web/Upload.java | 18 +++++-- 4 files changed, 82 insertions(+), 12 deletions(-) diff --git a/src/main/java/de/hsel/spm/baudas/web/Data.java b/src/main/java/de/hsel/spm/baudas/web/Data.java index 346e3ac..d5f47e2 100644 --- a/src/main/java/de/hsel/spm/baudas/web/Data.java +++ b/src/main/java/de/hsel/spm/baudas/web/Data.java @@ -5,13 +5,15 @@ import org.jetbrains.annotations.Contract; import org.jetbrains.annotations.NotNull; import java.io.File; +import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.UUID; import java.util.concurrent.ConcurrentLinkedQueue; /** - * + * manages data about .csv files. * * @author Johannes Theiner * @version 0.1 @@ -23,29 +25,69 @@ public class Data { private static ConcurrentLinkedQueue files = new ConcurrentLinkedQueue<>(); + /** + * adds file to list and generates a new filename. + * + * @param name File name + * @return path to save file to + */ @NotNull static Path add(@NotNull String name) { + //cleanup old files + if (files.isEmpty()) { + try { + Files.list(Paths.get("target/")).forEach(path -> { + if (path.toFile().getName().endsWith(".csv")) { + try { + Files.delete(path); + } catch (IOException e) { + e.printStackTrace(); + } + } + }); + } catch (IOException ex) { + ex.printStackTrace(); + } + } + Path path; UUID uuid = UUID.randomUUID(); - if(files.size() >= 5) { + + if (files.size() >= 5) { + //remove last and add new one SavedFile file = files.poll(); - if(!get(file.getUuid()).delete()) { - System.out.println("failed"); + if (!get(file.getUuid()).delete()) { + System.out.println("failed to delete file..."); } path = Paths.get(getFileName(uuid)); files.offer(new SavedFile(uuid, name)); - }else { + + + } else { files.add(new SavedFile(uuid, name)); path = Paths.get(getFileName(uuid)); } return path; } + /** + * generates File from uuid. + * + * @param uuid uuid + * @return file + */ @Contract - @NotNull public static File get(@NotNull UUID uuid) { + @NotNull + public static File get(@NotNull UUID uuid) { return new File(getFileName(uuid)); } + /** + * generates file name from uuid. + * + * @param uuid uuid + * @return file name + */ @Contract(pure = true) @NotNull private static String getFileName(@NotNull UUID uuid) { diff --git a/src/main/java/de/hsel/spm/baudas/web/Files.java b/src/main/java/de/hsel/spm/baudas/web/Files.java index e586c08..defc588 100644 --- a/src/main/java/de/hsel/spm/baudas/web/Files.java +++ b/src/main/java/de/hsel/spm/baudas/web/Files.java @@ -22,12 +22,21 @@ import java.nio.charset.StandardCharsets; @WebServlet("/files") public class Files extends HttpServlet { + private static final long serialVersionUID = 148451844848L; + + /** + * do get. + * @param req request + * @param resp response + * @throws IOException writer could not be retrieved + */ @Override - protected void doGet(@NotNull HttpServletRequest req, @NotNull HttpServletResponse resp) throws IOException { + protected void doGet(@NotNull HttpServletRequest req, @NotNull HttpServletResponse resp) + throws IOException { resp.setContentType("application/json"); resp.setCharacterEncoding(StandardCharsets.UTF_8.name()); PrintWriter out = resp.getWriter(); Gson gson = new Gson(); - out.println(gson.toJson(Data.getFiles())); + out.print(gson.toJson(Data.getFiles())); } } \ No newline at end of file diff --git a/src/main/java/de/hsel/spm/baudas/web/SavedFile.java b/src/main/java/de/hsel/spm/baudas/web/SavedFile.java index 3ed9901..a292925 100644 --- a/src/main/java/de/hsel/spm/baudas/web/SavedFile.java +++ b/src/main/java/de/hsel/spm/baudas/web/SavedFile.java @@ -2,11 +2,20 @@ package de.hsel.spm.baudas.web; import lombok.AllArgsConstructor; import lombok.Getter; +import lombok.ToString; import java.util.UUID; +/** + * meta data about file. + * + * @author Johannes Theiner + * @version 0.1 + * @since 0.1 + */ @Getter @AllArgsConstructor +@ToString public class SavedFile { private UUID uuid; 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 92c992b..f90f673 100644 --- a/src/main/java/de/hsel/spm/baudas/web/Upload.java +++ b/src/main/java/de/hsel/spm/baudas/web/Upload.java @@ -29,8 +29,19 @@ import java.nio.file.StandardCopyOption; @MultipartConfig public class Upload extends HttpServlet { + private static final long serialVersionUID = 14144111845151L; + + /** + * doPost. + * + * @param req request + * @param resp response + * @throws ServletException could not get file part + * @throws IOException writer could not be retrieved + */ @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"); @@ -39,13 +50,12 @@ public class Upload extends HttpServlet { Path path = Data.add(fileName); - System.out.println(path); - if(!Files.exists(path)) { + if (!Files.exists(path)) { Files.createFile(path); } Files.copy(inputStream, path, StandardCopyOption.REPLACE_EXISTING); - resp.sendRedirect("files"); + resp.sendRedirect("index.jsf"); } } \ No newline at end of file