1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.commons.compress.archivers.dump;
20
21 import java.io.IOException;
22 import java.util.Date;
23 import java.util.Objects;
24
25 import org.apache.commons.compress.archivers.zip.ZipEncoding;
26
27
28
29
30
31
32
33
34 public class DumpArchiveSummary {
35
36 private long dumpDate;
37 private long previousDumpDate;
38 private int volume;
39 private String label;
40 private int level;
41 private String filesys;
42 private String devname;
43 private String hostname;
44 private int flags;
45 private int firstrec;
46 private int ntrec;
47
48 DumpArchiveSummary(final byte[] buffer, final ZipEncoding encoding) throws IOException {
49 dumpDate = 1000L * DumpArchiveUtil.convert32(buffer, 4);
50 previousDumpDate = 1000L * DumpArchiveUtil.convert32(buffer, 8);
51 volume = DumpArchiveUtil.convert32(buffer, 12);
52 label = DumpArchiveUtil.decode(encoding, buffer, 676, DumpArchiveConstants.LBLSIZE).trim();
53 level = DumpArchiveUtil.convert32(buffer, 692);
54 filesys = DumpArchiveUtil.decode(encoding, buffer, 696, DumpArchiveConstants.NAMELEN).trim();
55 devname = DumpArchiveUtil.decode(encoding, buffer, 760, DumpArchiveConstants.NAMELEN).trim();
56 hostname = DumpArchiveUtil.decode(encoding, buffer, 824, DumpArchiveConstants.NAMELEN).trim();
57 flags = DumpArchiveUtil.convert32(buffer, 888);
58 firstrec = DumpArchiveUtil.convert32(buffer, 892);
59 ntrec = DumpArchiveUtil.convert32(buffer, 896);
60
61
62 }
63
64 @Override
65 public boolean equals(final Object obj) {
66 if (this == obj) {
67 return true;
68 }
69 if (obj == null || getClass() != obj.getClass()) {
70 return false;
71 }
72 final DumpArchiveSummary other = (DumpArchiveSummary) obj;
73 return Objects.equals(devname, other.devname) && dumpDate == other.dumpDate && Objects.equals(hostname, other.hostname);
74 }
75
76
77
78
79
80
81 public String getDevname() {
82 return devname;
83 }
84
85
86
87
88
89
90 public Date getDumpDate() {
91 return new Date(dumpDate);
92 }
93
94
95
96
97
98
99 public String getFilesystem() {
100 return filesys;
101 }
102
103
104
105
106
107
108 public int getFirstRecord() {
109 return firstrec;
110 }
111
112
113
114
115
116
117 public int getFlags() {
118 return flags;
119 }
120
121
122
123
124
125
126 public String getHostname() {
127 return hostname;
128 }
129
130
131
132
133
134
135 public String getLabel() {
136 return label;
137 }
138
139
140
141
142
143
144
145
146 public int getLevel() {
147 return level;
148 }
149
150
151
152
153
154
155 public int getNTRec() {
156 return ntrec;
157 }
158
159
160
161
162
163
164 public Date getPreviousDumpDate() {
165 return new Date(previousDumpDate);
166 }
167
168
169
170
171
172
173 public int getVolume() {
174 return volume;
175 }
176
177 @Override
178 public int hashCode() {
179 return Objects.hash(devname, dumpDate, hostname);
180 }
181
182
183
184
185
186
187 public boolean isCompressed() {
188 return (flags & 0x0080) == 0x0080;
189 }
190
191
192
193
194
195
196 public boolean isExtendedAttributes() {
197 return (flags & 0x8000) == 0x8000;
198 }
199
200
201
202
203
204
205 public boolean isMetaDataOnly() {
206 return (flags & 0x0100) == 0x0100;
207 }
208
209
210
211
212
213
214 public boolean isNewHeader() {
215 return (flags & 0x0001) == 0x0001;
216 }
217
218
219
220
221
222
223 public boolean isNewInode() {
224 return (flags & 0x0002) == 0x0002;
225 }
226
227
228
229
230
231
232 public void setDevname(final String devname) {
233 this.devname = devname;
234 }
235
236
237
238
239
240
241 public void setDumpDate(final Date dumpDate) {
242 this.dumpDate = dumpDate.getTime();
243 }
244
245
246
247
248
249
250 public void setFilesystem(final String fileSystem) {
251 this.filesys = fileSystem;
252 }
253
254
255
256
257
258
259 public void setFirstRecord(final int firstrec) {
260 this.firstrec = firstrec;
261 }
262
263
264
265
266
267
268 public void setFlags(final int flags) {
269 this.flags = flags;
270 }
271
272
273
274
275
276
277 public void setHostname(final String hostname) {
278 this.hostname = hostname;
279 }
280
281
282
283
284
285
286 public void setLabel(final String label) {
287 this.label = label;
288 }
289
290
291
292
293
294
295 public void setLevel(final int level) {
296 this.level = level;
297 }
298
299
300
301
302
303
304 public void setNTRec(final int ntrec) {
305 this.ntrec = ntrec;
306 }
307
308
309
310
311
312
313 public void setPreviousDumpDate(final Date previousDumpDate) {
314 this.previousDumpDate = previousDumpDate.getTime();
315 }
316
317
318
319
320
321
322 public void setVolume(final int volume) {
323 this.volume = volume;
324 }
325 }