1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs.impl;
18
19 import org.apache.commons.vfs.FileName;
20 import org.apache.commons.vfs.FileObject;
21 import org.apache.commons.vfs.FileSystemException;
22 import org.apache.commons.vfs.FileType;
23 import org.apache.commons.vfs.provider.AbstractVfsContainer;
24
25
26 /***
27 * A virtual filesystem provider.
28 *
29 * @author <a href="mailto:adammurdoch@apache.org">Adam Murdoch</a>
30 * @version $Revision: 480428 $ $Date: 2006-11-29 07:15:24 +0100 (Mi, 29 Nov 2006) $
31 */
32 public class VirtualFileProvider
33 extends AbstractVfsContainer
34 {
35 /***
36 * Creates a virtual file system, with the supplied file as its root.
37 */
38 public FileObject createFileSystem(final FileObject rootFile)
39 throws FileSystemException
40 {
41 final FileName rootName =
42 getContext().getFileSystemManager().resolveName(rootFile.getName(), FileName.ROOT_PATH);
43
44
45 final VirtualFileSystem fs = new VirtualFileSystem(rootName, rootFile.getFileSystem().getFileSystemOptions());
46 addComponent(fs);
47 fs.addJunction(FileName.ROOT_PATH, rootFile);
48 return fs.getRoot();
49 }
50
51 /***
52 * Creates an empty virtual file system.
53 */
54 public FileObject createFileSystem(final String rootUri) throws FileSystemException
55 {
56 final FileName rootName =
57 new VirtualFileName(rootUri, FileName.ROOT_PATH, FileType.FOLDER);
58
59
60 final VirtualFileSystem fs = new VirtualFileSystem(rootName, null);
61 addComponent(fs);
62 return fs.getRoot();
63 }
64 }