1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.vfs2.provider.res;
18
19 import org.apache.commons.lang3.StringUtils;
20 import org.apache.commons.vfs2.FileName;
21 import org.apache.commons.vfs2.FileSystemException;
22 import org.apache.commons.vfs2.FileType;
23 import org.apache.commons.vfs2.provider.local.GenericFileNameParser;
24
25
26
27
28 public class ResourceFileNameParser extends GenericFileNameParser {
29
30 private static final ResourceFileNameParserourceFileNameParser.html#ResourceFileNameParser">ResourceFileNameParser INSTANCE = new ResourceFileNameParser();
31
32
33
34
35
36
37 public static GenericFileNameParser getInstance() {
38 return INSTANCE;
39 }
40
41 @Override
42 protected String extractRootPrefix(final String uri, final StringBuilder name) throws FileSystemException {
43
44
45
46 int index = 0;
47 while (index < name.length() && name.charAt(index) == '/') {
48 ++index;
49 }
50 if (index > 0) {
51 name.delete(0, index);
52 }
53
54 if (StringUtils.isEmpty(name)) {
55 throw new FileSystemException("vfs.provider.res/not-valid-resource-location.error", uri);
56 }
57
58 return "/";
59 }
60
61 @Override
62 protected FileName createFileName(final String scheme, final String rootFile, final String path,
63 final FileType type) {
64 return new ResourceFileName(scheme, path, type);
65 }
66 }