summaryrefslogtreecommitdiffstats
path: root/src/main/java/derms/replica/replica1/ResponderClientCLI.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/derms/replica/replica1/ResponderClientCLI.java')
-rw-r--r--src/main/java/derms/replica/replica1/ResponderClientCLI.java151
1 files changed, 0 insertions, 151 deletions
diff --git a/src/main/java/derms/replica/replica1/ResponderClientCLI.java b/src/main/java/derms/replica/replica1/ResponderClientCLI.java
deleted file mode 100644
index 5bfbb11..0000000
--- a/src/main/java/derms/replica/replica1/ResponderClientCLI.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package derms.replica.replica1;
-
-import java.net.MalformedURLException;
-import java.net.UnknownHostException;
-
-public class ResponderClientCLI extends CLI {
- public static final String usage = "Usage: java ResponderClientCLI <city> <id number>";
-
- private final ResponderClient client;
-
- private ResponderClientCLI(City city, short idNum) {
- client = new ResponderClient(city, idNum);
- System.out.println("ID: "+client.id);
-
- commands.put("add", new Add());
- cmdDescriptions.add(new Description(
- "add <resource ID> <resource name> <duration>",
- "Add a 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 tresource is removed entirely."));
-
- commands.put("list", new List());
- cmdDescriptions.add(new Description(
- "list <resource name>",
- "List available resources."));
-
- argDescriptions.add(new Description(
- "<resource ID>",
- "3-letter city code followed by 4-digit number."));
- argDescriptions.add(new Description(
- "<resource name>",
- "E.g., AMBULANCE."));
- argDescriptions.add(new Description(
- "<duration>",
- "A number representing a time period."));
- }
-
- public static void main(String[] cmdlineArgs) {
- Args args = null;
- try {
- args = new Args(cmdlineArgs);
- } catch (IllegalArgumentException e) {
- System.err.println(e);
- System.err.println(usage);
- System.exit(1);
- }
-
- (new ResponderClientCLI(args.city, args.idNum)).run();
- }
-
- private class Add implements Command {
- public void exec(String[] args) {
- if (args.length < 3) {
- System.out.println("invalid arguments for 'add'");
- } else {
- add(args[0], args[1], args[2]);
- }
- }
- }
-
- private void add(String resourceIDStr, String resourceNameStr, String durationStr) {
- ResourceID rid = ResourceID.parse(resourceIDStr);
- ResourceName name = ResourceName.parse(resourceNameStr);
- int duration = Integer.parseInt(durationStr);
- if (duration < 0) {
- throw new NumberFormatException("duration less than 0");
- }
- try {
- client.add(rid, name, duration);
- System.out.println("Successfully added resource to server.");
- } catch (Exception e) {
- System.out.println("Failed to add resource: "+e.getMessage());
- }
- }
-
- private class Remove implements Command {
- 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 resourceIDStr, String durationStr) {
- try {
- ResourceID resourceID = ResourceID.parse(resourceIDStr);
- int duration = Integer.parseInt(durationStr);
- client.remove(resourceID, duration);
- System.out.println("Successfully removed resource from server.");
- } catch (NumberFormatException e) {
- System.out.println("invalid duration: "+durationStr);
- } catch (IllegalArgumentException e) {
- System.out.println(e.getMessage());
- } catch (Exception e) {
- System.out.println("Failed to remove resource: "+e.getMessage());
- }
- }
-
- private class List implements Command {
- public void exec(String[] args) {
- if (args.length < 1) {
- System.out.println("invalid arguments for 'list'");
- } else {
- list(args[0]);
- }
- }
- }
-
- private void list(String resourceNameStr) {
- try {
- ResourceName name = ResourceName.parse(resourceNameStr);
- Resource[] resources = client.listResources(name);
- System.out.println("Available resources:");
- for (Resource resource : resources) {
- System.out.println(resource.toString());
- }
- } catch (IllegalArgumentException e) {
- System.out.println("invalid resource name: " + resourceNameStr);
- } catch (UnknownHostException | MalformedURLException e) {
- System.err.println(e.getMessage());
- } catch (ServerCommunicationError e) {
- System.err.println("Failed to retrieve resources from server: "+e.getMessage());
- }
- }
-
- private static class Args {
- private final City city;
- private final short idNum;
-
- private Args(String[] args) throws IllegalArgumentException {
- if (args.length < 1) {
- throw new IllegalArgumentException("Missing argument 'city'");
- }
- city = new City(args[0]);
-
- if (args.length < 2) {
- throw new IllegalArgumentException("Missing argument 'id number'");
- }
- try {
- idNum = Short.parseShort(args[1]);
- } catch (NumberFormatException e) {
- throw new IllegalArgumentException("Bad value of 'id number'");
- }
- }
- }
-}