diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2024-12-02 18:04:11 -0500 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2024-12-02 18:04:11 -0500 |
| commit | 04602b61743233915b2c97da335586d890494ff8 (patch) | |
| tree | 5758b391ad94a2f0a94e4810d5ec24a94e43ee8b | |
| parent | e59e38ab6036b70ce307a5936b59aa239a7e7922 (diff) | |
| download | soen423-04602b61743233915b2c97da335586d890494ff8.zip | |
responder client methods
| -rw-r--r-- | src/main/java/derms/client/ResponderClient.java | 8 | ||||
| -rw-r--r-- | src/main/java/derms/client/ResponderClientCLI.java | 62 |
2 files changed, 63 insertions, 7 deletions
diff --git a/src/main/java/derms/client/ResponderClient.java b/src/main/java/derms/client/ResponderClient.java index 2c9cb1f..c96436a 100644 --- a/src/main/java/derms/client/ResponderClient.java +++ b/src/main/java/derms/client/ResponderClient.java @@ -10,4 +10,12 @@ class ResponderClient extends Client { public String addResource(String resourceID, String resourceName, int duration) { return server.addResource(resourceID, resourceName, duration); } + + public String removeResource(String resourceID, int duration) { + return server.removeResource(resourceID, duration); + } + + public String listResourceAvailability(String resourceName) { + return server.listResourceAvailability(resourceName); + } } diff --git a/src/main/java/derms/client/ResponderClientCLI.java b/src/main/java/derms/client/ResponderClientCLI.java index 3b41bf9..42541b4 100644 --- a/src/main/java/derms/client/ResponderClientCLI.java +++ b/src/main/java/derms/client/ResponderClientCLI.java @@ -14,6 +14,16 @@ public class ResponderClientCLI extends CLI { cmdDescriptions.add(new Description( "add <resource ID> <resource type> <duration>", "Add ad resource to the server")); + + commands.put("remove", new Remove()); + cmdDescriptions.add(new Description( + "remove <resource ID> <duration>", + "Decrease the duration of a resource. If duration is negative, the resource is removed entirely.")); + + commands.put("list", new List()); + cmdDescriptions.add(new Description( + "list <resource name>", + "List available resources")); } public static void main(String[] args) { @@ -34,19 +44,57 @@ public class ResponderClientCLI extends CLI { private class Add implements Command { @Override public void exec(String[] args) { - if (args.length < 3) { + if (args.length < 3) System.out.println("invalid arguments for 'add'"); - } else { + else add(args[0], args[1], args[2]); - } } private void add(String resourceID, String resourceName, String durationStr) { - int duration = Integer.parseInt(durationStr); - if (duration < 0) { - throw new NumberFormatException("duration less than 0"); + try { + int duration = Integer.parseInt(durationStr); + if (duration < 0) { + throw new NumberFormatException("duration less than 0"); + } + String response = client.addResource(resourceID, resourceName, duration); + System.out.println(response); + } catch (NumberFormatException e) { + System.out.println("invalid duration: " + durationStr); + } + } + } + + private class Remove implements Command { + @Override + public void exec(String[] args) { + if (args.length < 2) + System.out.println("invalid arguments for 'remove'"); + else + remove(args[0], args[1]); + } + + private void remove(String resourceID, String durationStr) { + try { + int duration = Integer.parseInt(durationStr); + String response = client.removeResource(resourceID, duration); + System.out.println(response); + } catch (NumberFormatException e) { + System.out.println("invalid duration: " + durationStr); } - String response = client.addResource(resourceID, resourceName, duration); + } + } + + private class List implements Command { + @Override + public void exec(String[] args) { + if (args.length < 1) + System.out.println("invalid arguments for 'list'"); + else + list(args[0]); + } + + private void list(String resourceName) { + String response = client.listResourceAvailability(resourceName); System.out.println(response); } } |