summaryrefslogtreecommitdiff
path: root/src/main/java/com/keuin/kbackupfabric/util/backup/builder
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/keuin/kbackupfabric/util/backup/builder')
-rw-r--r--src/main/java/com/keuin/kbackupfabric/util/backup/builder/BackupFileNameBuilder.java25
-rw-r--r--src/main/java/com/keuin/kbackupfabric/util/backup/builder/ObjectTreeBackupFileNameBuilder.java20
-rw-r--r--src/main/java/com/keuin/kbackupfabric/util/backup/builder/PrimitiveZipBackupFileNameBuilder.java22
3 files changed, 67 insertions, 0 deletions
diff --git a/src/main/java/com/keuin/kbackupfabric/util/backup/builder/BackupFileNameBuilder.java b/src/main/java/com/keuin/kbackupfabric/util/backup/builder/BackupFileNameBuilder.java
new file mode 100644
index 0000000..16c598b
--- /dev/null
+++ b/src/main/java/com/keuin/kbackupfabric/util/backup/builder/BackupFileNameBuilder.java
@@ -0,0 +1,25 @@
+package com.keuin.kbackupfabric.util.backup.builder;
+
+import com.sun.istack.internal.NotNull;
+
+import java.time.LocalDateTime;
+
+public interface BackupFileNameBuilder {
+
+ static BackupFileNameBuilder primitiveZipBackup() {
+ return PrimitiveZipBackupFileNameBuilder.getInstance();
+ }
+
+ static BackupFileNameBuilder objectTreeBackup() {
+ return ObjectTreeBackupFileNameBuilder.getInstance();
+ }
+
+ /**
+ * Build a backup file name based on given information.
+ * @param time when the backup was created.
+ * @param backupName the custom name of this backup. Note that this should be a valid file name in current file system.
+ * @return the backup file name string.
+ */
+ String build(@NotNull LocalDateTime time, @NotNull String backupName);
+
+}
diff --git a/src/main/java/com/keuin/kbackupfabric/util/backup/builder/ObjectTreeBackupFileNameBuilder.java b/src/main/java/com/keuin/kbackupfabric/util/backup/builder/ObjectTreeBackupFileNameBuilder.java
new file mode 100644
index 0000000..3c15741
--- /dev/null
+++ b/src/main/java/com/keuin/kbackupfabric/util/backup/builder/ObjectTreeBackupFileNameBuilder.java
@@ -0,0 +1,20 @@
+package com.keuin.kbackupfabric.util.backup.builder;
+
+import com.keuin.kbackupfabric.util.backup.BackupFilesystemUtil;
+import com.keuin.kbackupfabric.util.backup.BackupNameTimeFormatter;
+
+import java.time.LocalDateTime;
+
+public class ObjectTreeBackupFileNameBuilder implements BackupFileNameBuilder {
+ private static final ObjectTreeBackupFileNameBuilder instance = new ObjectTreeBackupFileNameBuilder();
+
+ public static ObjectTreeBackupFileNameBuilder getInstance() {
+ return instance;
+ }
+
+ @Override
+ public String build(LocalDateTime time, String backupName) {
+ String timeString = BackupNameTimeFormatter.localDateTimeToString(time);
+ return String.format("%s%s_%s%s", BackupFilesystemUtil.getBackupFileNamePrefix(),timeString,backupName,".json");
+ }
+}
diff --git a/src/main/java/com/keuin/kbackupfabric/util/backup/builder/PrimitiveZipBackupFileNameBuilder.java b/src/main/java/com/keuin/kbackupfabric/util/backup/builder/PrimitiveZipBackupFileNameBuilder.java
new file mode 100644
index 0000000..f910c37
--- /dev/null
+++ b/src/main/java/com/keuin/kbackupfabric/util/backup/builder/PrimitiveZipBackupFileNameBuilder.java
@@ -0,0 +1,22 @@
+package com.keuin.kbackupfabric.util.backup.builder;
+
+import com.keuin.kbackupfabric.util.backup.BackupFilesystemUtil;
+import com.keuin.kbackupfabric.util.backup.BackupNameTimeFormatter;
+
+import java.time.LocalDateTime;
+
+public class PrimitiveZipBackupFileNameBuilder implements BackupFileNameBuilder {
+
+ private static final PrimitiveZipBackupFileNameBuilder instance = new PrimitiveZipBackupFileNameBuilder();
+
+ public static PrimitiveZipBackupFileNameBuilder getInstance() {
+ return instance;
+ }
+
+ @Override
+ public String build(LocalDateTime time, String backupName) {
+ String timeString = BackupNameTimeFormatter.localDateTimeToString(time);
+ return String.format("%s%s_%s%s", BackupFilesystemUtil.getBackupFileNamePrefix(),timeString,backupName,".zip");
+ }
+
+}