summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2024-12-02 18:11:49 -0500
committerSam Anthony <sam@samanthony.xyz>2024-12-02 18:11:49 -0500
commit0214c5d6960c3a1c80dd1657b7800d118f97f9b7 (patch)
tree5037c162fdc898455065191b3f829c295df944d5
parent04602b61743233915b2c97da335586d890494ff8 (diff)
downloadsoen423-0214c5d6960c3a1c80dd1657b7800d118f97f9b7.zip
simplify client
-rw-r--r--src/main/java/derms/client/Client.java8
-rw-r--r--src/main/java/derms/client/ResponderClient.java100
-rw-r--r--src/main/java/derms/client/ResponderClientCLI.java101
3 files changed, 94 insertions, 115 deletions
diff --git a/src/main/java/derms/client/Client.java b/src/main/java/derms/client/Client.java
index 11e863f..7069f54 100644
--- a/src/main/java/derms/client/Client.java
+++ b/src/main/java/derms/client/Client.java
@@ -9,14 +9,12 @@ import javax.xml.ws.Service;
import java.net.MalformedURLException;
import java.net.URL;
-public abstract class Client {
+class Client {
public static final String namespace = "frontend.derms";
public static final QName qname = new QName("http://"+namespace+"/", DERMSServerImpl.class.getSimpleName()+"Service");
- protected final DERMSInterface server;
-
- protected Client(String FEhost) throws MalformedURLException {
+ static DERMSInterface connectToServer(String FEhost) throws MalformedURLException {
URL url = new URL(FE.endpointURL(FEhost) + "?wsdl");
- this.server = Service.create(url, qname).getPort(DERMSInterface.class);
+ return Service.create(url, qname).getPort(DERMSInterface.class);
}
}
diff --git a/src/main/java/derms/client/ResponderClient.java b/src/main/java/derms/client/ResponderClient.java
index c96436a..57bb132 100644
--- a/src/main/java/derms/client/ResponderClient.java
+++ b/src/main/java/derms/client/ResponderClient.java
@@ -1,21 +1,103 @@
package derms.client;
+import derms.frontend.DERMSInterface;
+
import java.net.MalformedURLException;
-class ResponderClient extends Client {
- ResponderClient(String FEhost) throws MalformedURLException {
- super(FEhost);
+public class ResponderClient extends CLI {
+ public static final String usage = "Usage: java derms.client.ResponderClientCLI <FE host>";
+
+ private final DERMSInterface server;
+
+ private ResponderClient(String FEhost) throws MalformedURLException {
+ server = Client.connectToServer(FEhost);
+
+ commands.put("add", new Add());
+ 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 String addResource(String resourceID, String resourceName, int duration) {
- return server.addResource(resourceID, resourceName, duration);
+ public static void main(String[] args) {
+ if (args.length < 1) {
+ System.err.println(usage);
+ System.exit(1);
+ }
+
+ String FEhost = args[0];
+
+ try {
+ (new ResponderClient(FEhost)).run();
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private class Add implements Command {
+ @Override
+ 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 resourceID, String resourceName, String durationStr) {
+ try {
+ int duration = Integer.parseInt(durationStr);
+ if (duration < 0) {
+ throw new NumberFormatException("duration less than 0");
+ }
+ String response = server.addResource(resourceID, resourceName, duration);
+ System.out.println(response);
+ } catch (NumberFormatException e) {
+ System.out.println("invalid duration: " + durationStr);
+ }
+ }
}
- public String removeResource(String resourceID, int duration) {
- return server.removeResource(resourceID, duration);
+ 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 = server.removeResource(resourceID, duration);
+ System.out.println(response);
+ } catch (NumberFormatException e) {
+ System.out.println("invalid duration: " + durationStr);
+ }
+ }
}
- public String listResourceAvailability(String resourceName) {
- return server.listResourceAvailability(resourceName);
+ 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 = server.listResourceAvailability(resourceName);
+ System.out.println(response);
+ }
}
}
diff --git a/src/main/java/derms/client/ResponderClientCLI.java b/src/main/java/derms/client/ResponderClientCLI.java
deleted file mode 100644
index 42541b4..0000000
--- a/src/main/java/derms/client/ResponderClientCLI.java
+++ /dev/null
@@ -1,101 +0,0 @@
-package derms.client;
-
-import java.net.MalformedURLException;
-
-public class ResponderClientCLI extends CLI {
- public static final String usage = "Usage: java derms.client.ResponderClientCLI <FE host>";
-
- private final ResponderClient client;
-
- private ResponderClientCLI(String FEhost) throws MalformedURLException {
- client = new ResponderClient(FEhost);
-
- commands.put("add", new Add());
- 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) {
- if (args.length < 1) {
- System.err.println("Missing argument 'FE host'");
- System.exit(1);
- }
-
- String FEhost = args[0];
-
- try {
- (new ResponderClientCLI(FEhost)).run();
- } catch (MalformedURLException e) {
- e.printStackTrace();
- }
- }
-
- private class Add implements Command {
- @Override
- 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 resourceID, String resourceName, String durationStr) {
- 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);
- }
- }
- }
-
- 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);
- }
- }
-}