summaryrefslogtreecommitdiff
path: root/oop/10-task-tracker/src/main
diff options
context:
space:
mode:
authorKamal Wickramanayake <kamal@inbox.lk>2026-03-22 15:53:39 +0530
committerKamal Wickramanayake <kamal@inbox.lk>2026-03-22 15:53:39 +0530
commit3ffd9370c8c7ebf34232ef59568981cdc3856a05 (patch)
treee3f27b333ee55e1d7e82fc345252a4c4f942940c /oop/10-task-tracker/src/main
parent8f875db252cfead19b029ff443f81d087c3cf097 (diff)
Added InMemoryTaskManager
Diffstat (limited to 'oop/10-task-tracker/src/main')
-rw-r--r--oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/App.java4
-rw-r--r--oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/InMemoryTaskManager.java51
-rw-r--r--oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/ui/TextUI.java2
3 files changed, 55 insertions, 2 deletions
diff --git a/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/App.java b/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/App.java
index bb0ab24..8707f19 100644
--- a/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/App.java
+++ b/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/App.java
@@ -7,8 +7,10 @@ import lk.ac.pdn.ceit.tasks.ui.TextUI;
*/
public class App {
public static void main(String[] args) {
+ TaskManager taskManager = new InMemoryTaskManager();
+
TextUI ui = new TextUI();
- // ui.setTaskManager();
+ ui.setTaskManager(taskManager);
ui.start();
}
diff --git a/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/InMemoryTaskManager.java b/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/InMemoryTaskManager.java
new file mode 100644
index 0000000..93988a3
--- /dev/null
+++ b/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/InMemoryTaskManager.java
@@ -0,0 +1,51 @@
+package lk.ac.pdn.ceit.tasks;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import lk.ac.pdn.ceit.tasks.entities.Task;
+
+public class InMemoryTaskManager implements TaskManager {
+ private List<Task> tasks = new ArrayList<>();
+
+ private int lastId = 0;
+
+ @Override
+ public Task createNewTask(String title, String description) {
+ lastId++;
+
+ Task task = new Task(lastId, title, description);
+
+ // Add to the internally maintained task list
+ tasks.add(task);
+
+ return task;
+ }
+
+ @Override
+ public Task findById(int id) {
+ for (Task task : tasks) {
+ if (task.getId() == id) {
+ return task;
+ }
+ }
+
+ return null;
+ }
+
+ @Override
+ public void updateTask(Task task) {
+ // Find the internal position of the task in the tasks list
+ int index = 0;
+
+ for(; index < tasks.size(); index++) {
+ if (tasks.get(index).getId() == task.getId()) {
+ break;
+ }
+ }
+
+ // Replace the task object (related to that internal position)
+ tasks.set(index, task);
+ }
+
+}
diff --git a/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/ui/TextUI.java b/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/ui/TextUI.java
index 6bce661..d839da8 100644
--- a/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/ui/TextUI.java
+++ b/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/ui/TextUI.java
@@ -41,7 +41,7 @@ public class TextUI {
Task newTask = taskManager.createNewTask(title, description);
- IO.print("New task created: " + newTask);
+ IO.println("New task created: " + newTask);
}
private void updateTask() {