mirror of https://github.com/micromata/borgbackup-butler.git

Kai Reinhard
15.39.2021 d80a4b3ab35af575fd06d4e2fb9a3726418c6727
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
package de.micromata.borgbutler.data;
 
import de.micromata.borgbutler.json.borg.BorgArchiveLimits;
import de.micromata.borgbutler.json.borg.BorgArchiveStats;
import de.micromata.borgbutler.json.borg.BorgCache;
import de.micromata.borgbutler.json.borg.BorgEncryption;
import org.apache.commons.lang3.StringUtils;
 
import java.io.Serializable;
import java.util.List;
 
/**
 *
 */
public class Archive implements Serializable, Comparable<Archive> {
    /**
     * For convenience purposes for the client.
     */
    private String repoName;
    /**
     * For convenience purposes for the client.
     */
    private String repoDisplayName;
    /**
     * For convenience purposes for the client.
     */
    private String repoId;
    private String name;
    private String id;
    private BorgCache cache;
    private BorgEncryption encryption;
 
    private int[] chunkerParams;
    /**
     * The command line used for creating this archive: borg create --filter...
     */
    private String[] commandLine;
    private String comment;
    private String start;
    private String end;
    private String time;
    private String duration;
    private BorgArchiveStats stats;
    private BorgArchiveLimits limits;
    private String username;
    private String hostname;
    /**
     * For comparing functionality.
     */
    private List<ArchiveShortInfo> archiveShortInfoList;
    /**
     * Is the file list of this archive loaded and available in Butler's cache.
     */
    private boolean fileListAlreadyCached;
 
    /**
     *
     * @return repoName::archiveName
     */
    public String getBorgIdentifier() {
        return repoName + "::" + name;
    }
 
    /**
     * Is <tt>borg info repo::archive</tt> already called for this archive?
     *
     * @return true, if borg info was called, otherwise false.
     */
    public boolean hasInfoData() {
        return commandLine != null && commandLine.length > 0;
    }
 
    /**
     * In reverse order, compares times.
     *
     * @param o
     * @return
     */
    @Override
    public int compareTo(Archive o) {
        // Reverse order:
        return StringUtils.compare(o.time, this.time);
    }
 
    public String getRepoName() {
        return this.repoName;
    }
 
    public String getRepoDisplayName() {
        return this.repoDisplayName;
    }
 
    public String getRepoId() {
        return this.repoId;
    }
 
    public String getName() {
        return this.name;
    }
 
    public String getId() {
        return this.id;
    }
 
    public BorgCache getCache() {
        return this.cache;
    }
 
    public BorgEncryption getEncryption() {
        return this.encryption;
    }
 
    public int[] getChunkerParams() {
        return this.chunkerParams;
    }
 
    public String[] getCommandLine() {
        return this.commandLine;
    }
 
    public String getComment() {
        return this.comment;
    }
 
    public String getStart() {
        return this.start;
    }
 
    public String getEnd() {
        return this.end;
    }
 
    public String getTime() {
        return this.time;
    }
 
    public String getDuration() {
        return this.duration;
    }
 
    public BorgArchiveStats getStats() {
        return this.stats;
    }
 
    public BorgArchiveLimits getLimits() {
        return this.limits;
    }
 
    public String getUsername() {
        return this.username;
    }
 
    public String getHostname() {
        return this.hostname;
    }
 
    public List<ArchiveShortInfo> getArchiveShortInfoList() {
        return this.archiveShortInfoList;
    }
 
    public boolean isFileListAlreadyCached() {
        return this.fileListAlreadyCached;
    }
 
    public Archive setRepoName(String repoName) {
        this.repoName = repoName;
        return this;
    }
 
    public Archive setRepoDisplayName(String repoDisplayName) {
        this.repoDisplayName = repoDisplayName;
        return this;
    }
 
    public Archive setRepoId(String repoId) {
        this.repoId = repoId;
        return this;
    }
 
    public Archive setName(String name) {
        this.name = name;
        return this;
    }
 
    public Archive setId(String id) {
        this.id = id;
        return this;
    }
 
    public Archive setCache(BorgCache cache) {
        this.cache = cache;
        return this;
    }
 
    public Archive setEncryption(BorgEncryption encryption) {
        this.encryption = encryption;
        return this;
    }
 
    public Archive setChunkerParams(int[] chunkerParams) {
        this.chunkerParams = chunkerParams;
        return this;
    }
 
    public Archive setCommandLine(String[] commandLine) {
        this.commandLine = commandLine;
        return this;
    }
 
    public Archive setComment(String comment) {
        this.comment = comment;
        return this;
    }
 
    public Archive setStart(String start) {
        this.start = start;
        return this;
    }
 
    public Archive setEnd(String end) {
        this.end = end;
        return this;
    }
 
    public Archive setTime(String time) {
        this.time = time;
        return this;
    }
 
    public Archive setDuration(String duration) {
        this.duration = duration;
        return this;
    }
 
    public Archive setStats(BorgArchiveStats stats) {
        this.stats = stats;
        return this;
    }
 
    public Archive setLimits(BorgArchiveLimits limits) {
        this.limits = limits;
        return this;
    }
 
    public Archive setUsername(String username) {
        this.username = username;
        return this;
    }
 
    public Archive setHostname(String hostname) {
        this.hostname = hostname;
        return this;
    }
 
    public Archive setArchiveShortInfoList(List<ArchiveShortInfo> archiveShortInfoList) {
        this.archiveShortInfoList = archiveShortInfoList;
        return this;
    }
 
    public Archive setFileListAlreadyCached(boolean fileListAlreadyCached) {
        this.fileListAlreadyCached = fileListAlreadyCached;
        return this;
    }
}