1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs.provider;
18
19 import org.apache.commons.vfs.FileObject;
20 import org.apache.commons.vfs.FileSystemException;
21 import org.apache.commons.vfs.FileSystemOptions;
22
23 /***
24 * Description
25 *
26 * @author <a href="mailto:imario@apache.org">Mario Ivankovits</a>
27 * @version $Revision: 480428 $ $Date: 2006-11-29 07:15:24 +0100 (Mi, 29 Nov 2006) $
28 */
29 public abstract class CompositeFileProvider extends AbstractFileProvider
30 {
31 public CompositeFileProvider()
32 {
33 super();
34 }
35
36 /***
37 * The schemes to use for resolve
38 */
39 protected abstract String[] getSchemes();
40
41 /***
42 * Locates a file object, by absolute URI.
43 */
44 public FileObject findFile(final FileObject baseFile,
45 final String uri,
46 final FileSystemOptions fileSystemOptions)
47 throws FileSystemException
48 {
49 StringBuffer buf = new StringBuffer(80);
50
51 UriParser.extractScheme(uri, buf);
52
53 String[] schemes = getSchemes();
54 for (int iterSchemes = 0; iterSchemes < schemes.length; iterSchemes++)
55 {
56 buf.insert(0, ":");
57 buf.insert(0, schemes[iterSchemes]);
58 }
59
60 FileObject fo = getContext().getFileSystemManager().resolveFile(buf.toString(), fileSystemOptions);
61 return fo;
62 }
63 }