blob: 9e3a97eeb77916f22790e2e0001db8c510ec63ce (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
package com.keuin.kbackupfabric.backup.name;
import com.keuin.kbackupfabric.util.DateUtil;
import java.time.LocalDateTime;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PrimitiveBackupFileNameEncoder implements BackupFileNameEncoder {
private static final String backupFileNamePrefix = "kbackup";
public static final PrimitiveBackupFileNameEncoder INSTANCE = new PrimitiveBackupFileNameEncoder();
private PrimitiveBackupFileNameEncoder() {
}
@Override
public String encode(String customName, LocalDateTime time) {
if (!isValidCustomName(customName))
throw new IllegalArgumentException("Invalid custom name");
String timeString = DateUtil.getString(time);
return backupFileNamePrefix + "-" + timeString + "_" + customName + ".zip";
}
@Override
public BackupBasicInformation decode(String fileName) {
Pattern pattern = Pattern.compile(
"^" + backupFileNamePrefix + "-" + "([0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}-[0-9]{2}-[0-9]{2})_(.+)\\.zip" + "$"
);
Matcher matcher = pattern.matcher(fileName);
if (matcher.find()) {
String timeString = matcher.group(1);
String customName = matcher.group(2);
return new BackupBasicInformation(customName, DateUtil.toLocalDateTime(timeString));
}
return null;
}
}
|