refactor: Made Task::id nullable/Optional for semantic reasons

better use of builder semantics in task and crop creation
This commit is contained in:
David Guler
2022-11-21 09:45:58 +01:00
parent 2312149256
commit 95b0f7e13d
5 changed files with 32 additions and 33 deletions
@@ -103,10 +103,9 @@ public class JsonTaskList implements TaskList {
if(taskMap.isEmpty()) {
loadTaskListFromFile();
}
if(task.getId() == 0) {
task.withId(idProvider.incrementAndGet());
}
taskMap.put(task.getId(), task);
long id = task.getId().orElse(idProvider.incrementAndGet());
taskMap.put(id, task.withId(id));
writeTaskListToFile();
}
@@ -122,8 +121,9 @@ public class JsonTaskList implements TaskList {
if(taskMap.isEmpty()) {
loadTaskListFromFile();
}
if(taskMap.containsKey(task.getId())){
taskMap.remove(task.getId());
Long taskId = task.getId().orElseThrow(IOException::new);
if(taskMap.containsKey(taskId)){
taskMap.remove(taskId);
writeTaskListToFile();
}
}
@@ -163,7 +163,7 @@ public class JsonTaskList implements TaskList {
taskMap = result.stream()
.collect(HashMap::new,
(res, task) -> res.put(task.getId(), task),
(res, task) -> res.put(task.getId().orElse(0L), task),
(existing, replacement) -> {});
}