+ Documentation
Signed-off-by: Johannes Theiner <j.theiner@live.de> #SPM-7: add work documentation 20m
This commit is contained in:
parent
b50a490cd4
commit
d5b4888d5d
|
@ -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,17 +25,44 @@ public class Data {
|
|||
private static ConcurrentLinkedQueue<SavedFile> 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) {
|
||||
//remove last and add new one
|
||||
SavedFile file = files.poll();
|
||||
if (!get(file.getUuid()).delete()) {
|
||||
System.out.println("failed");
|
||||
System.out.println("failed to delete file...");
|
||||
}
|
||||
path = Paths.get(getFileName(uuid));
|
||||
files.offer(new SavedFile(uuid, name));
|
||||
|
||||
|
||||
} else {
|
||||
files.add(new SavedFile(uuid, name));
|
||||
path = Paths.get(getFileName(uuid));
|
||||
|
@ -41,11 +70,24 @@ public class Data {
|
|||
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) {
|
||||
|
|
|
@ -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()));
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -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)) {
|
||||
Files.createFile(path);
|
||||
}
|
||||
|
||||
Files.copy(inputStream, path, StandardCopyOption.REPLACE_EXISTING);
|
||||
|
||||
resp.sendRedirect("files");
|
||||
resp.sendRedirect("index.jsf");
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue