1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs2.provider.bzip2;
18
19 import java.io.IOException;
20 import java.io.InputStream;
21 import java.io.OutputStream;
22
23 import org.apache.commons.compress.compressors.bzip2.BZip2CompressorInputStream;
24 import org.apache.commons.compress.compressors.bzip2.BZip2CompressorOutputStream;
25 import org.apache.commons.vfs2.FileObject;
26 import org.apache.commons.vfs2.provider.AbstractFileName;
27 import org.apache.commons.vfs2.provider.compressed.CompressedFileFileObject;
28 import org.apache.commons.vfs2.provider.compressed.CompressedFileFileSystem;
29
30
31
32
33 public class Bzip2FileObject extends CompressedFileFileObject<Bzip2FileSystem> {
34
35 private static Bzip2FileSystem cast(final CompressedFileFileSystem fs) {
36 if (fs instanceof Bzip2FileSystem) {
37 return (Bzip2FileSystem) fs;
38 }
39 throw new IllegalArgumentException("Bzip2FileObject requires a Bzip2FileSystem implementation");
40 }
41
42
43
44
45
46
47
48
49
50 public static InputStream wrapInputStream(final String name, final InputStream inputStream) throws IOException {
51 return new BZip2CompressorInputStream(inputStream);
52 }
53
54
55
56
57
58
59
60
61 protected Bzip2FileObject(final AbstractFileName fileName, final FileObject container, final Bzip2FileSystem fileSystem) {
62 super(fileName, container, fileSystem);
63 }
64
65
66
67
68
69
70
71
72
73 @Deprecated
74 protected Bzip2FileObject(final AbstractFileName name, final FileObject container,
75 final CompressedFileFileSystem fs) {
76 super(name, container, cast(fs));
77 }
78
79 @Override
80 protected InputStream doGetInputStream(final int bufferSize) throws Exception {
81
82 return wrapInputStream(getName().getURI(), getContainer().getContent().getInputStream(bufferSize));
83 }
84
85 @Override
86 protected OutputStream doGetOutputStream(final boolean bAppend) throws Exception {
87 return new BZip2CompressorOutputStream(getContainer().getContent().getOutputStream(false));
88 }
89 }