aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/java/de/romjaki/icndbwrapper/RestAction.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/java/de/romjaki/icndbwrapper/RestAction.java b/src/java/de/romjaki/icndbwrapper/RestAction.java
new file mode 100644
index 0000000..9d778af
--- /dev/null
+++ b/src/java/de/romjaki/icndbwrapper/RestAction.java
@@ -0,0 +1,42 @@
+package de.romjaki.icndbwrapper;
+
+public class RestAction<T, R extends GsonSchematic<T>> {
+
+ private final R emptySchematic;
+ private final String url;
+ private final Map<String, String> parameters;
+
+ public RestAction(R emptySchematic, String relativeUrl, Map<String, String> parameters) {
+ this.emptySchematic = emptySchematic;
+ this.url = relativeUrl;
+ this.parameters = parameters;
+ }
+
+ public void queue() {
+ queue(null);
+ }
+
+ public void queue(Consumer<T> success) {
+ queue(success, null);
+ }
+
+ public void queue(Consumer<T> success, Consumer<T> fail) {
+ Thread t = new Thread(new Runnable() {
+ @Override
+ public void run() {
+ Gson gson = new Gson();
+ R schematic = gson.fromJson(executeGet(this.url, this.parameters), emptySchematic.getClass());
+ //TODO
+ }
+ });
+ }
+
+ public T complete() {
+ // TODO
+ }
+
+ public static String executeGet(String url, Map<String, String> parameters) {
+ // TODO
+ }
+
+}