diff options
| author | sowgro <tpoke.ferrari@gmail.com> | 2025-10-02 17:36:01 -0400 |
|---|---|---|
| committer | sowgro <tpoke.ferrari@gmail.com> | 2025-10-02 17:36:01 -0400 |
| commit | 5f8bc7b2e35cf005b44e22e56f8be3f95127fd1b (patch) | |
| tree | 6b5c1911dba6d6771637d26826a4f1ebf53f942f /src | |
| parent | e085ca1bf0b5dd58d8a10d27b009a9f1dd384846 (diff) | |
| download | designproject-design-6-5f8bc7b2e35cf005b44e22e56f8be3f95127fd1b.tar.gz designproject-design-6-5f8bc7b2e35cf005b44e22e56f8be3f95127fd1b.tar.bz2 designproject-design-6-5f8bc7b2e35cf005b44e22e56f8be3f95127fd1b.zip | |
Begin impl of user input subsystem
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/design/HelloWorld.java | 7 | ||||
| -rw-r--r-- | src/main/java/design/Main.java | 10 | ||||
| -rw-r--r-- | src/main/java/design/controller/userinput/Action.java | 5 | ||||
| -rw-r--r-- | src/main/java/design/controller/userinput/CommandOption.java | 19 | ||||
| -rw-r--r-- | src/main/java/design/controller/userinput/ParPalCLI.java | 28 |
5 files changed, 62 insertions, 7 deletions
diff --git a/src/main/java/design/HelloWorld.java b/src/main/java/design/HelloWorld.java deleted file mode 100644 index ea552f9..0000000 --- a/src/main/java/design/HelloWorld.java +++ /dev/null @@ -1,7 +0,0 @@ -package design; - -public class HelloWorld { - public static void main(String[] args) { - System.out.println("Hello, World!"); - } -} diff --git a/src/main/java/design/Main.java b/src/main/java/design/Main.java new file mode 100644 index 0000000..43a8eb6 --- /dev/null +++ b/src/main/java/design/Main.java @@ -0,0 +1,10 @@ +package design; + +import design.controller.userinput.ParPalCLI; + +public class Main { + public static void main(String[] args) { + var cli = new ParPalCLI(); + cli.start(args); + } +} diff --git a/src/main/java/design/controller/userinput/Action.java b/src/main/java/design/controller/userinput/Action.java new file mode 100644 index 0000000..0569c48 --- /dev/null +++ b/src/main/java/design/controller/userinput/Action.java @@ -0,0 +1,5 @@ +package design.controller.userinput; + +public interface Action { + void onCommand(String[] args); +} diff --git a/src/main/java/design/controller/userinput/CommandOption.java b/src/main/java/design/controller/userinput/CommandOption.java new file mode 100644 index 0000000..31b63d4 --- /dev/null +++ b/src/main/java/design/controller/userinput/CommandOption.java @@ -0,0 +1,19 @@ +package design.controller.userinput; + +public class CommandOption { + Action action; + String name; + + public CommandOption(Action action, String name) { + this.action = action; + this.name = name; + } + + public String getName() { + return name; + } + + public void onCommand(String[] args) { + action.onCommand(args); + } +} diff --git a/src/main/java/design/controller/userinput/ParPalCLI.java b/src/main/java/design/controller/userinput/ParPalCLI.java new file mode 100644 index 0000000..7707754 --- /dev/null +++ b/src/main/java/design/controller/userinput/ParPalCLI.java @@ -0,0 +1,28 @@ +package design.controller.userinput; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Scanner; + +public class ParPalCLI { + + public void start(String[] args) { + + } + + public void promptUser(List<CommandOption> commandOptions) { + for (int i = 0; i < commandOptions.size(); i++) { + CommandOption commandOption = commandOptions.get(i); + System.out.printf("%s: %s\n", i, commandOption.getName()); + } + Scanner sc = new Scanner(System.in); + var line = sc.nextLine().split(" "); + + if (line.length > 0) { + int i = Integer.parseInt(line[0]); + + commandOptions.get(i).onCommand(Arrays.copyOfRange(line, 1, line.length)); + } + } +} |
