aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/AbstractFileTransferService.java
diff options
context:
space:
mode:
authorsteckbrief <steckbrief@chefmail.de>2016-06-06 09:05:50 +0200
committersteckbrief <steckbrief@chefmail.de>2016-06-06 09:07:59 +0200
commitf45ad10b1baaf09fd4a40d6b63d1cd093623eedc (patch)
tree894e879ac98891879e9b97aa1df86b3b10c3d189 /src/main/java/de/thedevstack/conversationsplus/services/filetransfer/AbstractFileTransferService.java
parentb1ab7347b92329512bebe57f6624cae33c27036f (diff)
Related to FS#131, FS#129, FS#220:filetransfer
- FileTransferFailureReason including types introduced. A failure can be recoverable, non-recoverable or limited recoverable - in case file transfer with the highest weight factor fails, the next file transfer method is used - improved logging - javadoc comments added
Diffstat (limited to 'src/main/java/de/thedevstack/conversationsplus/services/filetransfer/AbstractFileTransferService.java')
-rw-r--r--src/main/java/de/thedevstack/conversationsplus/services/filetransfer/AbstractFileTransferService.java22
1 files changed, 7 insertions, 15 deletions
diff --git a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/AbstractFileTransferService.java b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/AbstractFileTransferService.java
index 02bd04b9..c24603b7 100644
--- a/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/AbstractFileTransferService.java
+++ b/src/main/java/de/thedevstack/conversationsplus/services/filetransfer/AbstractFileTransferService.java
@@ -1,31 +1,23 @@
package de.thedevstack.conversationsplus.services.filetransfer;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
-import de.thedevstack.conversationsplus.entities.Message;
import de.thedevstack.conversationsplus.services.FileTransferService;
/**
*
*/
-public abstract class AbstractFileTransferService implements FileTransferService, FileTransferStatusListener {
- protected List<Message> failedMessages = new ArrayList<>();
+public abstract class AbstractFileTransferService implements FileTransferService {
+ private List<FileTransferStatusListener> statusListeners = new ArrayList<>();
@Override
- public void onFailure(Message message, boolean delay) {
- this.failedMessages.add(message);
+ public void addFileTransferStatusListener(FileTransferStatusListener... listeners) {
+ this.statusListeners.addAll(Arrays.asList(listeners));
}
- @Override
- public void onSuccess(Message message, boolean delay) {
- if (this.failedMessages.contains(message)) {
- this.failedMessages.remove(message);
- }
- }
-
- @Override
- public boolean accept(Message message) {
- return !this.failedMessages.contains(message);
+ protected void addStatusListenerToEntity(FileTransferEntity entity) {
+ entity.addFileTransferStatusListener(this.statusListeners.toArray(new FileTransferStatusListener[0]));
}
}