From 04602b61743233915b2c97da335586d890494ff8 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Mon, 2 Dec 2024 18:04:11 -0500 Subject: responder client methods --- src/main/java/derms/client/ResponderClient.java | 8 +++ 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 ", "Add ad resource to the server")); + + commands.put("remove", new Remove()); + cmdDescriptions.add(new Description( + "remove ", + "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 ", + "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); } } -- cgit v1.2.3