From 09974a66f6cfc07b52a1bec1e1ce9d7101f1de84 Mon Sep 17 00:00:00 2001 From: "Nelson R. Perez" Date: Tue, 31 Jan 2017 19:53:29 -0500 Subject: [PATCH] Adding the SubscriptionHub interface and making the SubcriptionMessageHub implement it --- .gitignore | 3 +- .../api/SubscriptionMessagesHub.java | 12 ++++++-- .../graphenej/interfaces/SubscriptionHub.java | 30 +++++++++++++++++++ 3 files changed, 42 insertions(+), 3 deletions(-) create mode 100644 src/main/java/de/bitsharesmunich/graphenej/interfaces/SubscriptionHub.java diff --git a/.gitignore b/.gitignore index 44eaed5..82d28ca 100644 --- a/.gitignore +++ b/.gitignore @@ -78,4 +78,5 @@ atlassian-ide-plugin.xml src/main/java/com/luminiasoft/bitshares/mycelium/* -bts_bilthon_20161218.bin +# Ignore bin backups +*.bin diff --git a/src/main/java/de/bitsharesmunich/graphenej/api/SubscriptionMessagesHub.java b/src/main/java/de/bitsharesmunich/graphenej/api/SubscriptionMessagesHub.java index 7180f28..f593a53 100644 --- a/src/main/java/de/bitsharesmunich/graphenej/api/SubscriptionMessagesHub.java +++ b/src/main/java/de/bitsharesmunich/graphenej/api/SubscriptionMessagesHub.java @@ -11,6 +11,7 @@ import de.bitsharesmunich.graphenej.AssetAmount; import de.bitsharesmunich.graphenej.RPC; import de.bitsharesmunich.graphenej.Transaction; import de.bitsharesmunich.graphenej.TransferOperation; +import de.bitsharesmunich.graphenej.interfaces.SubscriptionHub; import de.bitsharesmunich.graphenej.interfaces.SubscriptionListener; import de.bitsharesmunich.graphenej.models.ApiCall; import de.bitsharesmunich.graphenej.models.BaseResponse; @@ -28,7 +29,7 @@ import java.util.Map; * * Created by nelson on 1/26/17. */ -public class SubscriptionMessagesHub extends WebSocketAdapter { +public class SubscriptionMessagesHub extends WebSocketAdapter implements SubscriptionHub { // Sequence of message ids private final static int LOGIN_ID = 1; private final static int GET_DATABASE_ID = 2; @@ -56,12 +57,19 @@ public class SubscriptionMessagesHub extends WebSocketAdapter { this.gson = builder.create(); } + @Override public void addSubscriptionListener(SubscriptionListener listener){ this.mSubscriptionDeserializer.addSubscriptionListener(listener); } + @Override public void removeSubscriptionListener(SubscriptionListener listener){ - this.removeSubscriptionListener(listener); + this.mSubscriptionDeserializer.removeSubscriptionListener(listener); + } + + @Override + public List getSubscriptionListeners() { + return this.mSubscriptionDeserializer.getSubscriptionListeners(); } @Override diff --git a/src/main/java/de/bitsharesmunich/graphenej/interfaces/SubscriptionHub.java b/src/main/java/de/bitsharesmunich/graphenej/interfaces/SubscriptionHub.java new file mode 100644 index 0000000..bca0df0 --- /dev/null +++ b/src/main/java/de/bitsharesmunich/graphenej/interfaces/SubscriptionHub.java @@ -0,0 +1,30 @@ +package de.bitsharesmunich.graphenej.interfaces; + +import java.util.List; + +/** + * Interface to be implemented by any class that hosts a SubscriptionResponseDeserializer and wants to + * expose an interface for its management of its listeners. + * + * Created by nelson on 1/30/17. + */ +public interface SubscriptionHub { + + /** + * Adds a given listener to the list of subscription listeners. + * @param listener: The SubscriptionListener to add. + */ + void addSubscriptionListener(SubscriptionListener listener); + + /** + * Removes a given listener from the list. + * @param listener: The SubscriptionListener to remove. + */ + void removeSubscriptionListener(SubscriptionListener listener); + + /** + * Retrieves a list of all subscription listeners. + * @return + */ + List getSubscriptionListeners(); +} \ No newline at end of file