From 1f3566b8a457e2ed8af825337a320a406c0bb32b Mon Sep 17 00:00:00 2001 From: Ayush Date: Thu, 7 Sep 2023 16:51:44 +0530 Subject: [PATCH 1/4] code refactor as per SOLID principal without changing functionality. --- java/pom.xml | 2 + .../training/actions/TaskActions.java | 19 +++ .../actions/impl/TaskActionsImpl.java | 94 +++++++++++++++ .../training/executioner/TaskExecutioner.java | 5 + .../executioner/impl/TaskExecutionerImpl.java | 32 +++++ .../training/main/TaskApplicationRunner.java | 20 ++++ .../codurance/training/tasks/TaskList.java | 112 +----------------- 7 files changed, 176 insertions(+), 108 deletions(-) create mode 100644 java/src/main/java/com/codurance/training/actions/TaskActions.java create mode 100644 java/src/main/java/com/codurance/training/actions/impl/TaskActionsImpl.java create mode 100644 java/src/main/java/com/codurance/training/executioner/TaskExecutioner.java create mode 100644 java/src/main/java/com/codurance/training/executioner/impl/TaskExecutionerImpl.java create mode 100644 java/src/main/java/com/codurance/training/main/TaskApplicationRunner.java diff --git a/java/pom.xml b/java/pom.xml index 6f4d7681..8f22ab22 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -5,8 +5,10 @@ tasks 0.1 + jar Task List + junit diff --git a/java/src/main/java/com/codurance/training/actions/TaskActions.java b/java/src/main/java/com/codurance/training/actions/TaskActions.java new file mode 100644 index 00000000..36fac88d --- /dev/null +++ b/java/src/main/java/com/codurance/training/actions/TaskActions.java @@ -0,0 +1,19 @@ +package com.codurance.training.actions; + + public interface TaskActions { + void show(); + + void add(String commnandLine); + + void addProject(String name); + + void setDone(String idString,boolean done); + + void check(String idString); + + void uncheck(String idString); + + void help(); + + void error(String command); +} diff --git a/java/src/main/java/com/codurance/training/actions/impl/TaskActionsImpl.java b/java/src/main/java/com/codurance/training/actions/impl/TaskActionsImpl.java new file mode 100644 index 00000000..6cd597c4 --- /dev/null +++ b/java/src/main/java/com/codurance/training/actions/impl/TaskActionsImpl.java @@ -0,0 +1,94 @@ +package com.codurance.training.actions.impl; + +import com.codurance.training.actions.TaskActions; +import com.codurance.training.tasks.Task; + +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +public class TaskActionsImpl implements TaskActions { + private final PrintWriter out = new PrintWriter(System.out); + + private static long lastId = 0; + + private static final Map> tasksMap= new LinkedHashMap<>(); + @Override + public void show() { + for (Map.Entry> project : tasksMap.entrySet()) { + out.println(project.getKey()); + for (Task task : project.getValue()) { + out.printf(" [%c] %d: %s%n", (task.isDone() ? 'x' : ' '), task.getId(), task.getDescription()); + } + out.println(); + } + } + @Override + public void add(String commandLine) { + String[] subcommandRest = commandLine.split(" ", 2); + String subcommand = subcommandRest[0]; + if (subcommand.equals("project")) { + addProject(subcommandRest[1]); + } else if (subcommand.equals("task")) { + String[] projectTask = subcommandRest[1].split(" ", 2); + addTask(projectTask[0], projectTask[1]); + } + } + @Override + public void addProject(String name) { + tasksMap.put(name, new ArrayList()); + } + + private void addTask(String project, String description) { + List projectTasks = tasksMap.get(project); + if (projectTasks == null) { + out.printf("Could not find a project with the name \"%s\".", project); + out.println(); + return; + } + projectTasks.add(new Task(nextId(), description, false)); + } + @Override + public void check(String idString) { + setDone(idString, true); + } + @Override + public void uncheck(String idString) { + setDone(idString, false); + } + @Override + public void setDone(String idString, boolean done) { + int id = Integer.parseInt(idString); + for (Map.Entry> project : tasksMap.entrySet()) { + for (Task task : project.getValue()) { + if (task.getId() == id) { + task.setDone(done); + return; + } + } + } + out.printf("Could not find a task with an ID of %d.", id); + out.println(); + } + @Override + public void help() { + out.println("Commands:"); + out.println(" show"); + out.println(" add project "); + out.println(" add task "); + out.println(" check "); + out.println(" uncheck "); + out.println(); + } + @Override + public void error(String command) { + out.printf("I don't know what the command \"%s\" is.", command); + out.println(); + } + + public long nextId() { + return ++lastId; + } +} diff --git a/java/src/main/java/com/codurance/training/executioner/TaskExecutioner.java b/java/src/main/java/com/codurance/training/executioner/TaskExecutioner.java new file mode 100644 index 00000000..9d174c79 --- /dev/null +++ b/java/src/main/java/com/codurance/training/executioner/TaskExecutioner.java @@ -0,0 +1,5 @@ +package com.codurance.training.executioner; + +public interface TaskExecutioner { + void execute(String commandLine); +} diff --git a/java/src/main/java/com/codurance/training/executioner/impl/TaskExecutionerImpl.java b/java/src/main/java/com/codurance/training/executioner/impl/TaskExecutionerImpl.java new file mode 100644 index 00000000..7cd1b440 --- /dev/null +++ b/java/src/main/java/com/codurance/training/executioner/impl/TaskExecutionerImpl.java @@ -0,0 +1,32 @@ +package com.codurance.training.executioner.impl; + +import com.codurance.training.actions.impl.TaskActionsImpl; +import com.codurance.training.executioner.TaskExecutioner; + +public class TaskExecutionerImpl implements TaskExecutioner { + TaskActionsImpl taskActions = new TaskActionsImpl(); + public void execute(String commandLine) { + String[] commandRest = commandLine.split(" ", 2); + String command = commandRest[0]; + switch (command) { + case "show": + taskActions.show(); + break; + case "add": + taskActions.add(commandRest[1]); + break; + case "check": + taskActions.check(commandRest[1]); + break; + case "uncheck": + taskActions.uncheck(commandRest[1]); + break; + case "help": + taskActions.help(); + break; + default: + taskActions.error(command); + break; + } + } +} diff --git a/java/src/main/java/com/codurance/training/main/TaskApplicationRunner.java b/java/src/main/java/com/codurance/training/main/TaskApplicationRunner.java new file mode 100644 index 00000000..1ae10ae6 --- /dev/null +++ b/java/src/main/java/com/codurance/training/main/TaskApplicationRunner.java @@ -0,0 +1,20 @@ +package com.codurance.training.main; + +import com.codurance.training.tasks.TaskList; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.io.PrintWriter; + +public class TaskApplicationRunner { + public static void main(String[] args) { + try{ + BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); + PrintWriter out = new PrintWriter(System.out); + new TaskList(in,out).run(); + }catch (Exception e){ + e.printStackTrace(); + } + + } +} \ No newline at end of file diff --git a/java/src/main/java/com/codurance/training/tasks/TaskList.java b/java/src/main/java/com/codurance/training/tasks/TaskList.java index 9a4a8202..5cf9a345 100644 --- a/java/src/main/java/com/codurance/training/tasks/TaskList.java +++ b/java/src/main/java/com/codurance/training/tasks/TaskList.java @@ -1,10 +1,10 @@ package com.codurance.training.tasks; +import com.codurance.training.executioner.impl.TaskExecutionerImpl; + import java.io.BufferedReader; import java.io.IOException; -import java.io.InputStreamReader; import java.io.PrintWriter; -import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -12,17 +12,10 @@ public final class TaskList implements Runnable { private static final String QUIT = "quit"; - private final Map> tasks = new LinkedHashMap<>(); private final BufferedReader in; private final PrintWriter out; - private long lastId = 0; - - public static void main(String[] args) throws Exception { - BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); - PrintWriter out = new PrintWriter(System.out); - new TaskList(in, out).run(); - } + private final TaskExecutionerImpl executioner = new TaskExecutionerImpl(); public TaskList(BufferedReader reader, PrintWriter writer) { this.in = reader; @@ -42,108 +35,11 @@ public void run() { if (command.equals(QUIT)) { break; } - execute(command); - } - } - - private void execute(String commandLine) { - String[] commandRest = commandLine.split(" ", 2); - String command = commandRest[0]; - switch (command) { - case "show": - show(); - break; - case "add": - add(commandRest[1]); - break; - case "check": - check(commandRest[1]); - break; - case "uncheck": - uncheck(commandRest[1]); - break; - case "help": - help(); - break; - default: - error(command); - break; - } - } - - private void show() { - for (Map.Entry> project : tasks.entrySet()) { - out.println(project.getKey()); - for (Task task : project.getValue()) { - out.printf(" [%c] %d: %s%n", (task.isDone() ? 'x' : ' '), task.getId(), task.getDescription()); - } - out.println(); - } - } - - private void add(String commandLine) { - String[] subcommandRest = commandLine.split(" ", 2); - String subcommand = subcommandRest[0]; - if (subcommand.equals("project")) { - addProject(subcommandRest[1]); - } else if (subcommand.equals("task")) { - String[] projectTask = subcommandRest[1].split(" ", 2); - addTask(projectTask[0], projectTask[1]); + executioner.execute(command); } } - private void addProject(String name) { - tasks.put(name, new ArrayList()); - } - private void addTask(String project, String description) { - List projectTasks = tasks.get(project); - if (projectTasks == null) { - out.printf("Could not find a project with the name \"%s\".", project); - out.println(); - return; - } - projectTasks.add(new Task(nextId(), description, false)); - } - private void check(String idString) { - setDone(idString, true); - } - - private void uncheck(String idString) { - setDone(idString, false); - } - private void setDone(String idString, boolean done) { - int id = Integer.parseInt(idString); - for (Map.Entry> project : tasks.entrySet()) { - for (Task task : project.getValue()) { - if (task.getId() == id) { - task.setDone(done); - return; - } - } - } - out.printf("Could not find a task with an ID of %d.", id); - out.println(); - } - - private void help() { - out.println("Commands:"); - out.println(" show"); - out.println(" add project "); - out.println(" add task "); - out.println(" check "); - out.println(" uncheck "); - out.println(); - } - - private void error(String command) { - out.printf("I don't know what the command \"%s\" is.", command); - out.println(); - } - - private long nextId() { - return ++lastId; - } } From 8edfb0ecdbedc658a6ca0eb0505c34e010a79615 Mon Sep 17 00:00:00 2001 From: Ayush Date: Thu, 7 Sep 2023 20:46:08 +0530 Subject: [PATCH 2/4] Deadline ,today and delete features working now. --- java/pom.xml | 9 +++ .../training/actions/TaskActions.java | 8 +- .../actions/impl/TaskActionsImpl.java | 76 ++++++++++++++++--- .../executioner/impl/TaskExecutionerImpl.java | 9 +++ .../training/main/TaskApplicationRunner.java | 4 +- .../com/codurance/training/tasks/Task.java | 12 +++ 6 files changed, 104 insertions(+), 14 deletions(-) diff --git a/java/pom.xml b/java/pom.xml index 8f22ab22..520c00b0 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -22,6 +22,15 @@ 2.0.0.0 test + + + + org.apache.commons + commons-lang3 + 3.0 + + + diff --git a/java/src/main/java/com/codurance/training/actions/TaskActions.java b/java/src/main/java/com/codurance/training/actions/TaskActions.java index 36fac88d..d3716794 100644 --- a/java/src/main/java/com/codurance/training/actions/TaskActions.java +++ b/java/src/main/java/com/codurance/training/actions/TaskActions.java @@ -16,4 +16,10 @@ public interface TaskActions { void help(); void error(String command); -} + + void deadline(String command); + + void today(); + + void delete(String command); + } diff --git a/java/src/main/java/com/codurance/training/actions/impl/TaskActionsImpl.java b/java/src/main/java/com/codurance/training/actions/impl/TaskActionsImpl.java index 6cd597c4..2c92e99f 100644 --- a/java/src/main/java/com/codurance/training/actions/impl/TaskActionsImpl.java +++ b/java/src/main/java/com/codurance/training/actions/impl/TaskActionsImpl.java @@ -2,12 +2,12 @@ import com.codurance.training.actions.TaskActions; import com.codurance.training.tasks.Task; +import org.apache.commons.lang3.time.DateUtils; import java.io.PrintWriter; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; public class TaskActionsImpl implements TaskActions { private final PrintWriter out = new PrintWriter(System.out); @@ -20,7 +20,9 @@ public void show() { for (Map.Entry> project : tasksMap.entrySet()) { out.println(project.getKey()); for (Task task : project.getValue()) { - out.printf(" [%c] %d: %s%n", (task.isDone() ? 'x' : ' '), task.getId(), task.getDescription()); + // out.printf(" [%c] %d: %s%n", (task.isDone() ? 'x' : ' '), task.getId(), task.getDescription()); + System.out.println(task.isDone()?'x':" "+task.getId()+" "+task.getDescription()+" "+task.getDeadline()); + } out.println(); } @@ -74,13 +76,20 @@ public void setDone(String idString, boolean done) { } @Override public void help() { - out.println("Commands:"); - out.println(" show"); - out.println(" add project "); - out.println(" add task "); - out.println(" check "); - out.println(" uncheck "); - out.println(); +// out.println("Commands:"); +// out.println(" show"); +// out.println(" add project "); +// out.println(" add task "); +// out.println(" check "); +// out.println(" uncheck "); +// out.println(" deadline "); +// out.println(" delete "); +// out.println(" today"); +// out.println(); + System.out.println("Commands:"); + System.out.println("show"); + System.out.println("add project "); + System.out.println("add task "); } @Override public void error(String command) { @@ -88,6 +97,49 @@ public void error(String command) { out.println(); } + @Override + public void deadline(String command) { + try { + String[] subCommand = command.split(" ", 2); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date deadlineDate = sdf.parse(subCommand[1]); + int id = Integer.parseInt(subCommand[0]); + for (Map.Entry> project : tasksMap.entrySet()) { + for (Task task : project.getValue()) { + if (task.getId() == id) { + task.setDeadline(deadlineDate); + return; + } + } + } + }catch (ParseException e) { + throw new RuntimeException(e); + } + } + + @Override + public void today() { + for (Map.Entry> project : tasksMap.entrySet()) { + for (Task task : project.getValue()) { + if (DateUtils.isSameDay(new Date(),task.getDeadline())) { +// out.printf(" [%c] %d: %s%n", (task.isDone() ? 'x' : ' '), task.getId(), task.getDescription()); + System.out.println(task.isDone()?'x':" "+task.getId()+" "+task.getDescription()+" "+task.getDeadline()); + } + } + out.println(); + } + } + + @Override + public void delete(String command) { + int id = Integer.parseInt(command); + for (Map.Entry> project : tasksMap.entrySet()) { + List taskList = project.getValue(); + taskList.removeIf(task -> task.getId()==id); + } + + } + public long nextId() { return ++lastId; } diff --git a/java/src/main/java/com/codurance/training/executioner/impl/TaskExecutionerImpl.java b/java/src/main/java/com/codurance/training/executioner/impl/TaskExecutionerImpl.java index 7cd1b440..85aac6a1 100644 --- a/java/src/main/java/com/codurance/training/executioner/impl/TaskExecutionerImpl.java +++ b/java/src/main/java/com/codurance/training/executioner/impl/TaskExecutionerImpl.java @@ -24,6 +24,15 @@ public void execute(String commandLine) { case "help": taskActions.help(); break; + case "deadline": + taskActions.deadline(commandRest[1]); + break; + case "today": + taskActions.today(); + break; + case "delete": + taskActions.delete(commandRest[1]); + break; default: taskActions.error(command); break; diff --git a/java/src/main/java/com/codurance/training/main/TaskApplicationRunner.java b/java/src/main/java/com/codurance/training/main/TaskApplicationRunner.java index 1ae10ae6..9e963b11 100644 --- a/java/src/main/java/com/codurance/training/main/TaskApplicationRunner.java +++ b/java/src/main/java/com/codurance/training/main/TaskApplicationRunner.java @@ -8,11 +8,13 @@ public class TaskApplicationRunner { public static void main(String[] args) { + PrintWriter out =null; try{ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); - PrintWriter out = new PrintWriter(System.out); + out = new PrintWriter(System.out); new TaskList(in,out).run(); }catch (Exception e){ + out.close(); e.printStackTrace(); } diff --git a/java/src/main/java/com/codurance/training/tasks/Task.java b/java/src/main/java/com/codurance/training/tasks/Task.java index 31b39c98..87122834 100644 --- a/java/src/main/java/com/codurance/training/tasks/Task.java +++ b/java/src/main/java/com/codurance/training/tasks/Task.java @@ -1,10 +1,14 @@ package com.codurance.training.tasks; +import java.util.Date; + public final class Task { private final long id; private final String description; private boolean done; + private Date deadline; + public Task(long id, String description, boolean done) { this.id = id; this.description = description; @@ -26,4 +30,12 @@ public boolean isDone() { public void setDone(boolean done) { this.done = done; } + + public Date getDeadline() { + return deadline; + } + + public void setDeadline(Date deadline) { + this.deadline = deadline; + } } From 96d9e60de21eea13c0d778ad91beb0a959dba664 Mon Sep 17 00:00:00 2001 From: Ayush Date: Thu, 7 Sep 2023 21:35:47 +0530 Subject: [PATCH 3/4] view by project,date and deadline working customizable Id field is working with special characters and space taken care of. --- .../training/actions/TaskActions.java | 8 +- .../actions/impl/TaskActionsImpl.java | 77 +++++++++++++++++-- .../executioner/impl/TaskExecutionerImpl.java | 7 +- .../com/codurance/training/tasks/Task.java | 9 +++ 4 files changed, 90 insertions(+), 11 deletions(-) diff --git a/java/src/main/java/com/codurance/training/actions/TaskActions.java b/java/src/main/java/com/codurance/training/actions/TaskActions.java index d3716794..774db9ce 100644 --- a/java/src/main/java/com/codurance/training/actions/TaskActions.java +++ b/java/src/main/java/com/codurance/training/actions/TaskActions.java @@ -1,7 +1,7 @@ package com.codurance.training.actions; public interface TaskActions { - void show(); + void show(String commandLine); void add(String commnandLine); @@ -22,4 +22,10 @@ public interface TaskActions { void today(); void delete(String command); + + void showByDeadline(); + + void showByDate(String s); + + void customize(String s); } diff --git a/java/src/main/java/com/codurance/training/actions/impl/TaskActionsImpl.java b/java/src/main/java/com/codurance/training/actions/impl/TaskActionsImpl.java index 2c92e99f..703c78d0 100644 --- a/java/src/main/java/com/codurance/training/actions/impl/TaskActionsImpl.java +++ b/java/src/main/java/com/codurance/training/actions/impl/TaskActionsImpl.java @@ -2,12 +2,14 @@ import com.codurance.training.actions.TaskActions; import com.codurance.training.tasks.Task; +import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.time.DateUtils; import java.io.PrintWriter; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; +import java.util.regex.Pattern; public class TaskActionsImpl implements TaskActions { private final PrintWriter out = new PrintWriter(System.out); @@ -16,15 +18,22 @@ public class TaskActionsImpl implements TaskActions { private static final Map> tasksMap= new LinkedHashMap<>(); @Override - public void show() { - for (Map.Entry> project : tasksMap.entrySet()) { - out.println(project.getKey()); - for (Task task : project.getValue()) { - // out.printf(" [%c] %d: %s%n", (task.isDone() ? 'x' : ' '), task.getId(), task.getDescription()); - System.out.println(task.isDone()?'x':" "+task.getId()+" "+task.getDescription()+" "+task.getDeadline()); + public void show(String commandLine) { + String[] subcommandRest = commandLine.split(" ", 3); + if(subcommandRest[1].equals("project")) { + for (Map.Entry> project : tasksMap.entrySet()) { + out.println(project.getKey()); + for (Task task : project.getValue()) { + // out.printf(" [%c] %d: %s%n", (task.isDone() ? 'x' : ' '), task.getId(), task.getDescription()); + System.out.println(task.isDone() ? 'x' : " " + task.getId() + " " + task.getDescription() + " " + task.getDeadline() + " " + task.getCustomizableId()); + } + out.println(); } - out.println(); + }else if(subcommandRest[1].equals("deadline")){ + showByDeadline(); + } else if (subcommandRest[1].equals("date")) { + showByDate(subcommandRest[2]); } } @Override @@ -123,7 +132,7 @@ public void today() { for (Task task : project.getValue()) { if (DateUtils.isSameDay(new Date(),task.getDeadline())) { // out.printf(" [%c] %d: %s%n", (task.isDone() ? 'x' : ' '), task.getId(), task.getDescription()); - System.out.println(task.isDone()?'x':" "+task.getId()+" "+task.getDescription()+" "+task.getDeadline()); + System.out.println(task.isDone()?'x':" "+task.getId()+" "+task.getDescription()+" "+task.getDeadline()+" "+task.getCustomizableId()); } } out.println(); @@ -140,6 +149,58 @@ public void delete(String command) { } + @Override + public void showByDeadline() { + for (Map.Entry> project : tasksMap.entrySet()) { + for (Task task : project.getValue()) { + if(task.getDeadline()!=null) { + if (DateUtils.isSameDay(new Date(), task.getDeadline())) { +// out.printf(" [%c] %d: %s%n", (task.isDone() ? 'x' : ' '), task.getId(), task.getDescription()); + System.out.println(task.isDone() ? 'x' : " " + task.getId() + " " + task.getDescription() + " " + task.getDeadline() + " " + task.getCustomizableId()); + } + } + } + out.println(); + } + } + + @Override + public void showByDate(String s) { + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date date = sdf.parse(s); + for (Map.Entry> project : tasksMap.entrySet()) { + for (Task task : project.getValue()) { + if (DateUtils.isSameDay(date, task.getDeadline())) { +// out.printf(" [%c] %d: %s%n", (task.isDone() ? 'x' : ' '), task.getId(), task.getDescription()); + System.out.println(task.isDone() ? 'x' : " " + task.getId() + " " + task.getDescription() + " " + task.getDeadline()+" "+task.getCustomizableId()); + } + } + out.println(); + } + }catch (ParseException e){ + throw new RuntimeException(e); + } + } + + @Override + public void customize(String command) { + String[] subCommand = command.split(" ", 2); + Pattern p = Pattern.compile( + "[^a-z0-9 ]", Pattern.CASE_INSENSITIVE); + int id = Integer.parseInt(subCommand[0]); + if((!p.matcher(subCommand[1]).find())&& !StringUtils.containsWhitespace(subCommand[1])) { + for (Map.Entry> project : tasksMap.entrySet()) { + for (Task task : project.getValue()) { + if (task.getId() == id) { + task.setCustomizableId(subCommand[1]); + return; + } + } + } + } + } + public long nextId() { return ++lastId; } diff --git a/java/src/main/java/com/codurance/training/executioner/impl/TaskExecutionerImpl.java b/java/src/main/java/com/codurance/training/executioner/impl/TaskExecutionerImpl.java index 85aac6a1..6c8da010 100644 --- a/java/src/main/java/com/codurance/training/executioner/impl/TaskExecutionerImpl.java +++ b/java/src/main/java/com/codurance/training/executioner/impl/TaskExecutionerImpl.java @@ -9,8 +9,8 @@ public void execute(String commandLine) { String[] commandRest = commandLine.split(" ", 2); String command = commandRest[0]; switch (command) { - case "show": - taskActions.show(); + case "view": + taskActions.show(commandRest[1]); break; case "add": taskActions.add(commandRest[1]); @@ -33,6 +33,9 @@ public void execute(String commandLine) { case "delete": taskActions.delete(commandRest[1]); break; + case "customize": + taskActions.customize(commandRest[1]); + break; default: taskActions.error(command); break; diff --git a/java/src/main/java/com/codurance/training/tasks/Task.java b/java/src/main/java/com/codurance/training/tasks/Task.java index 87122834..f85a0dcd 100644 --- a/java/src/main/java/com/codurance/training/tasks/Task.java +++ b/java/src/main/java/com/codurance/training/tasks/Task.java @@ -9,6 +9,8 @@ public final class Task { private Date deadline; + private String customizableId; + public Task(long id, String description, boolean done) { this.id = id; this.description = description; @@ -38,4 +40,11 @@ public Date getDeadline() { public void setDeadline(Date deadline) { this.deadline = deadline; } + public String getCustomizableId(){ + return customizableId; + } + + public void setCustomizableId(String customizableId){ + this.customizableId=customizableId; + } } From f7dfec5681d46d78f40b89c5a2e80997346cf9df Mon Sep 17 00:00:00 2001 From: Ayush Date: Fri, 8 Sep 2023 13:33:27 +0530 Subject: [PATCH 4/4] help menu correction --- .../actions/impl/TaskActionsImpl.java | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/java/src/main/java/com/codurance/training/actions/impl/TaskActionsImpl.java b/java/src/main/java/com/codurance/training/actions/impl/TaskActionsImpl.java index 703c78d0..770dd5bd 100644 --- a/java/src/main/java/com/codurance/training/actions/impl/TaskActionsImpl.java +++ b/java/src/main/java/com/codurance/training/actions/impl/TaskActionsImpl.java @@ -85,20 +85,19 @@ public void setDone(String idString, boolean done) { } @Override public void help() { -// out.println("Commands:"); -// out.println(" show"); -// out.println(" add project "); -// out.println(" add task "); -// out.println(" check "); -// out.println(" uncheck "); -// out.println(" deadline "); -// out.println(" delete "); -// out.println(" today"); -// out.println(); - System.out.println("Commands:"); - System.out.println("show"); - System.out.println("add project "); - System.out.println("add task "); + out.println("Commands:"); + out.println(" view by project"); + out.println(" view by date"); + out.println(" view by deadline"); + out.println(" add project "); + out.println(" add task "); + out.println(" check "); + out.println(" uncheck "); + out.println(" deadline "); + out.println(" delete "); + out.println(" customize "); + out.println(" today"); + out.println(); } @Override public void error(String command) {