summaryrefslogtreecommitdiff
path: root/src/main/java/com/keuin/kbackupfabric/operation/backup/feedback
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/keuin/kbackupfabric/operation/backup/feedback')
-rw-r--r--src/main/java/com/keuin/kbackupfabric/operation/backup/feedback/IncrementalBackupFeedback.java20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/main/java/com/keuin/kbackupfabric/operation/backup/feedback/IncrementalBackupFeedback.java b/src/main/java/com/keuin/kbackupfabric/operation/backup/feedback/IncrementalBackupFeedback.java
index bdd6d88..696ee02 100644
--- a/src/main/java/com/keuin/kbackupfabric/operation/backup/feedback/IncrementalBackupFeedback.java
+++ b/src/main/java/com/keuin/kbackupfabric/operation/backup/feedback/IncrementalBackupFeedback.java
@@ -3,13 +3,31 @@ package com.keuin.kbackupfabric.operation.backup.feedback;
import com.keuin.kbackupfabric.backup.incremental.manager.IncCopyResult;
import org.jetbrains.annotations.Nullable;
+import java.util.Objects;
+
public class IncrementalBackupFeedback implements BackupFeedback {
private final boolean success;
private final IncCopyResult copyResult;
+ // if the backup failed because of an exception, set this.
+ // Otherwise, this should be null.
+ private final Throwable throwable;
public IncrementalBackupFeedback(boolean success, @Nullable IncCopyResult copyResult) {
this.success = success;
this.copyResult = copyResult;
+ this.throwable = null;
+ }
+
+ /**
+ * Create a failed backup feedback caused by an exception.
+ *
+ * @param t the exception.
+ */
+ public IncrementalBackupFeedback(Throwable t) {
+ Objects.requireNonNull(t);
+ this.success = false;
+ this.copyResult = null;
+ this.throwable = t;
}
@Override
@@ -26,6 +44,6 @@ public class IncrementalBackupFeedback implements BackupFeedback {
if (success && copyResult != null)
return copyResult.toString();
else
- return "Backup failed.";
+ return (throwable == null) ? "No further information." : (throwable.getLocalizedMessage());
}
}