1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs.provider.compressed;
18
19 import org.apache.commons.vfs.FileName;
20 import org.apache.commons.vfs.FileObject;
21 import org.apache.commons.vfs.FileSystem;
22 import org.apache.commons.vfs.FileSystemException;
23 import org.apache.commons.vfs.FileSystemOptions;
24 import org.apache.commons.vfs.FileType;
25 import org.apache.commons.vfs.provider.AbstractLayeredFileProvider;
26 import org.apache.commons.vfs.provider.FileProvider;
27 import org.apache.commons.vfs.provider.LayeredFileName;
28
29 import java.util.Collection;
30
31 /***
32 * A file system provider for compressed files. Provides read-only file
33 * systems.
34 *
35 * @author <a href="mailto:imario@apache.org">Mario Ivankovits</a>
36 * @version $Revision: 480428 $ $Date: 2006-11-29 07:15:24 +0100 (Mi, 29 Nov 2006) $
37 */
38 public abstract class CompressedFileFileProvider
39 extends AbstractLayeredFileProvider
40 implements FileProvider
41 {
42 public CompressedFileFileProvider()
43 {
44 super();
45 }
46
47 /***
48 * Parses an absolute URI.
49 *
50 * @param uri The URI to parse.
51 */
52
53
54
55
56
57
58
59
60 /***
61 * Creates a layered file system. This method is called if the file system
62 * is not cached.
63 *
64 * @param scheme The URI scheme.
65 * @param file The file to create the file system on top of.
66 * @return The file system.
67 */
68 protected FileSystem doCreateFileSystem(final String scheme,
69 final FileObject file,
70 final FileSystemOptions fileSystemOptions)
71 throws FileSystemException
72 {
73 final FileName name =
74 new LayeredFileName(scheme, file.getName(), FileName.ROOT_PATH, FileType.FOLDER);
75 return createFileSystem(name, file, fileSystemOptions);
76 }
77
78 protected abstract FileSystem createFileSystem(final FileName name, final FileObject file, final FileSystemOptions fileSystemOptions) throws FileSystemException;
79
80 public abstract Collection getCapabilities();
81 }