1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.codehaus.plexus.archiver.zip;
19
20 import java.io.File;
21 import java.io.IOException;
22 import java.io.InputStream;
23
24 import org.apache.commons.compress.parallel.ScatterGatherBackingStore;
25
26 public class DeferredScatterOutputStream implements ScatterGatherBackingStore {
27
28 private final OffloadingOutputStream dfos;
29
30 public DeferredScatterOutputStream(int threshold) {
31 dfos = new OffloadingOutputStream(threshold, "scatterzipfragment", "zip");
32 }
33
34 @Override
35 public InputStream getInputStream() throws IOException {
36 return dfos.getInputStream();
37 }
38
39 @Override
40 public void writeOut(byte[] data, int offset, int length) throws IOException {
41 dfos.write(data, offset, length);
42 }
43
44 @Override
45 public void closeForWriting() throws IOException {
46 dfos.close();
47 }
48
49 @Override
50 public void close() throws IOException {
51 File file = dfos.getFile();
52 if (file != null) {
53 file.delete();
54 }
55 }
56 }