diff --git a/todo/src/main/java/ru/kamask/pet/TodoApp.java b/todo/src/main/java/ru/kamask/pet/TodoApp.java deleted file mode 100644 index e7996ce..0000000 --- a/todo/src/main/java/ru/kamask/pet/TodoApp.java +++ /dev/null @@ -1,9 +0,0 @@ -package ru.kamask.pet; - -public class TodoApp { - - public static void main(String[] args) { - - } - -} diff --git a/todo/src/main/java/ru/kamask/pet/todo/TodoApp.java b/todo/src/main/java/ru/kamask/pet/todo/TodoApp.java new file mode 100644 index 0000000..79fb305 --- /dev/null +++ b/todo/src/main/java/ru/kamask/pet/todo/TodoApp.java @@ -0,0 +1,18 @@ +package ru.kamask.pet.todo; + +import ru.kamask.pet.todo.model.SimpleTask; + +public class TodoApp { + + @SuppressWarnings("unused") + public static void main(String[] args) { + var task = new SimpleTask("TodoApp"); + System.out.println(task); + + task.markAsCompleted(); + + var taskData = task.data(); + System.out.println(taskData); + } + +} diff --git a/todo/src/main/java/ru/kamask/pet/todo/model/DataBuilder.java b/todo/src/main/java/ru/kamask/pet/todo/model/DataBuilder.java new file mode 100644 index 0000000..c911131 --- /dev/null +++ b/todo/src/main/java/ru/kamask/pet/todo/model/DataBuilder.java @@ -0,0 +1,5 @@ +package ru.kamask.pet.todo.model; + +public interface DataBuilder { + T data(); +} diff --git a/todo/src/main/java/ru/kamask/pet/todo/model/SimpleTask.java b/todo/src/main/java/ru/kamask/pet/todo/model/SimpleTask.java new file mode 100644 index 0000000..a7206a4 --- /dev/null +++ b/todo/src/main/java/ru/kamask/pet/todo/model/SimpleTask.java @@ -0,0 +1,35 @@ +package ru.kamask.pet.todo.model; + +public class SimpleTask extends Task implements DataBuilder { + private boolean done = false; + + public SimpleTask(String title) { + super(title); + } + + @Override + public void markAsCompleted() { + done(); + } + + @Override + public boolean isCompleted() { + return isDone(); + } + + void done() { + done = true; + } + + boolean isDone() { + return done; + } + + @Override + public Data data() { + return new Data(id, title, done); + } + + record Data(int id, String title, boolean done) { + } +} 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 new file mode 100644 index 0000000..6b6678b --- /dev/null +++ b/todo/src/main/java/ru/kamask/pet/todo/model/Task.java @@ -0,0 +1,23 @@ +package ru.kamask.pet.todo.model; + +public abstract class Task { + private static int nextId = 1; + + protected int id; + protected String title; + + Task(String title) { + this.id = nextId++; + this.title = title; + } + + @Override + public String toString() { + return String.format("Задача: id - %d, title: \"%s\"", id, title); + } + + abstract public void markAsCompleted(); + + abstract public boolean isCompleted(); + +}