From 9312b760c75736a067d2fc1577c7edf66f129be3 Mon Sep 17 00:00:00 2001 From: KamaSK Date: Mon, 26 May 2025 21:34:59 +0300 Subject: [PATCH 1/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20InMemoryTaskRepository=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D1=83=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B0=D0=BC=D0=B8.=20=D0=9E?= =?UTF-8?q?=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D1=91=D0=BD=20=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D0=BE=D0=B4=20main=20=D0=B2=20TodoApp=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F,?= =?UTF-8?q?=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=D0=B0,=20=D0=B7=D0=B0=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D1=88=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B8=20=D1=83?= =?UTF-8?q?=D0=B4=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B7=D0=B0=D0=B4?= =?UTF-8?q?=D0=B0=D1=87.=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20id()=20=D0=B2=20?= =?UTF-8?q?=D0=BA=D0=BB=D0=B0=D1=81=D1=81=20Task=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B8?= =?UTF-8?q?=D0=B4=D0=B5=D0=BD=D1=82=D0=B8=D1=84=D0=B8=D0=BA=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=D0=B0=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/ru/kamask/pet/todo/TodoApp.java | 23 +++++++++---- .../java/ru/kamask/pet/todo/model/Task.java | 4 +++ .../pet/todo/repo/InMemoryTaskRepository.java | 33 +++++++++++++++++++ .../kamask/pet/todo/repo/TaskRepository.java | 16 +++++++++ 4 files changed, 70 insertions(+), 6 deletions(-) create mode 100644 todo/src/main/java/ru/kamask/pet/todo/repo/InMemoryTaskRepository.java create mode 100644 todo/src/main/java/ru/kamask/pet/todo/repo/TaskRepository.java diff --git a/todo/src/main/java/ru/kamask/pet/todo/TodoApp.java b/todo/src/main/java/ru/kamask/pet/todo/TodoApp.java index 79fb305..e431d5f 100644 --- a/todo/src/main/java/ru/kamask/pet/todo/TodoApp.java +++ b/todo/src/main/java/ru/kamask/pet/todo/TodoApp.java @@ -1,18 +1,29 @@ package ru.kamask.pet.todo; import ru.kamask.pet.todo.model.SimpleTask; +import ru.kamask.pet.todo.repo.InMemoryTaskRepository; public class TodoApp { - @SuppressWarnings("unused") public static void main(String[] args) { - var task = new SimpleTask("TodoApp"); - System.out.println(task); + var repo = new InMemoryTaskRepository(); - task.markAsCompleted(); + repo.save(new SimpleTask("Задача номер один")); + repo.save(new SimpleTask("Задача номер два")); + repo.save(new SimpleTask("Задача номер три")); - var taskData = task.data(); - System.out.println(taskData); + System.out.println(repo.findAll()); + + var taskOption = repo.findById(2); + if (taskOption.isPresent()) { + SimpleTask task = (SimpleTask) taskOption.get(); + task.markAsCompleted(); + var data = task.data(); + System.out.println(data); + } + + repo.delete(1); + System.out.println(repo.findAll()); } } diff --git a/todo/src/main/java/ru/kamask/pet/todo/model/Task.java b/todo/src/main/java/ru/kamask/pet/todo/model/Task.java index 6b6678b..f160ca3 100644 --- a/todo/src/main/java/ru/kamask/pet/todo/model/Task.java +++ b/todo/src/main/java/ru/kamask/pet/todo/model/Task.java @@ -11,6 +11,10 @@ public abstract class Task { this.title = title; } + public int id() { + return id; + } + @Override public String toString() { return String.format("Задача: id - %d, title: \"%s\"", id, title); diff --git a/todo/src/main/java/ru/kamask/pet/todo/repo/InMemoryTaskRepository.java b/todo/src/main/java/ru/kamask/pet/todo/repo/InMemoryTaskRepository.java new file mode 100644 index 0000000..6c5d6e7 --- /dev/null +++ b/todo/src/main/java/ru/kamask/pet/todo/repo/InMemoryTaskRepository.java @@ -0,0 +1,33 @@ +package ru.kamask.pet.todo.repo; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import ru.kamask.pet.todo.model.Task; + +public class InMemoryTaskRepository implements TaskRepository { + private Map storage = new HashMap<>(); + + @Override + public void save(Task task) { + storage.put(task.id(), task); + } + + @Override + public Optional findById(int id) { + return Optional.ofNullable(storage.get(id)); + } + + @Override + public List findAll() { + return new ArrayList<>(storage.values()); + } + + @Override + public void delete(int id) { + storage.remove(id); + } +} diff --git a/todo/src/main/java/ru/kamask/pet/todo/repo/TaskRepository.java b/todo/src/main/java/ru/kamask/pet/todo/repo/TaskRepository.java new file mode 100644 index 0000000..af6aec0 --- /dev/null +++ b/todo/src/main/java/ru/kamask/pet/todo/repo/TaskRepository.java @@ -0,0 +1,16 @@ +package ru.kamask.pet.todo.repo; + +import java.util.List; +import java.util.Optional; + +import ru.kamask.pet.todo.model.Task; + +public interface TaskRepository { + void save(Task task); + + Optional findById(int id); + + List findAll(); + + void delete(int id); +} -- 2.47.2 From 5b4e94884663092cd86f644a9da34b7c8b8ccb2d Mon Sep 17 00:00:00 2001 From: KamaSK Date: Mon, 26 May 2025 21:40:02 +0300 Subject: [PATCH 2/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20InMemoryTaskRepository=20=D0=B4=D0=BB=D1=8F=20?= =?UTF-8?q?=D1=83=D0=BF=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B0=D0=BC=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- todo/src/main/java/ru/kamask/pet/todo/TodoApp.java | 1 + 1 file changed, 1 insertion(+) diff --git a/todo/src/main/java/ru/kamask/pet/todo/TodoApp.java b/todo/src/main/java/ru/kamask/pet/todo/TodoApp.java index e431d5f..e88ab4d 100644 --- a/todo/src/main/java/ru/kamask/pet/todo/TodoApp.java +++ b/todo/src/main/java/ru/kamask/pet/todo/TodoApp.java @@ -11,6 +11,7 @@ public class TodoApp { repo.save(new SimpleTask("Задача номер один")); repo.save(new SimpleTask("Задача номер два")); repo.save(new SimpleTask("Задача номер три")); + repo.save(new SimpleTask("Задача номер четыре")); System.out.println(repo.findAll()); -- 2.47.2