public class UrlFileNameParser extends AbstractFileNameParser
Composite of URLFilenameParser and GenericFilenameParser
Modifier and Type | Field and Description |
---|---|
private GenericFileNameParser |
generic |
private URLFileNameParser |
url |
Constructor and Description |
---|
UrlFileNameParser() |
Modifier and Type | Method and Description |
---|---|
protected int |
countSlashes(java.lang.String filename)
This method counts the slashes after the scheme.
|
boolean |
encodeCharacter(char ch)
Check if a character needs encoding (%nn).
|
protected boolean |
isUrlBased(FileName base,
java.lang.String filename)
Guess if the given file name is an URL with host or not.
|
FileName |
parseUri(VfsComponentContext context,
FileName base,
java.lang.String uri)
Parse a URI.
|
private final URLFileNameParser url
private final GenericFileNameParser generic
public boolean encodeCharacter(char ch)
FileNameParser
encodeCharacter
in interface FileNameParser
encodeCharacter
in class AbstractFileNameParser
ch
- the characterpublic FileName parseUri(VfsComponentContext context, FileName base, java.lang.String uri) throws FileSystemException
context
- The component context.base
- The base FileName.uri
- The target file name.FileSystemException
- if an error occursprotected boolean isUrlBased(FileName base, java.lang.String filename)
VFS treats such URLs differently.
A file name is URL-based if the base is a URLFileName
or there are only 2 slashes
after the scheme.
e.g: http://host/path
, file:/path/to/file
, file:///path/to/file
.
base
- The filename is relative to this base.filename
- The filename.protected int countSlashes(java.lang.String filename)
filename
- The file name.