public class Locators
extends java.lang.Object
Locator
Modifier and Type | Class and Description |
---|---|
static class |
Locators.StreamLocation
the location information.
|
static class |
Locators.URLLocation
the location information.
|
Constructor and Description |
---|
Locators() |
Modifier and Type | Method and Description |
---|---|
static Locator |
getDefault()
Returns the default resource locator which is an instance of
ClassLocator . |
static Locators.URLLocation |
locate(java.lang.String file,
java.util.Locale locale,
Locator locator)
Locates the filename based on the locale.
|
static Locators.StreamLocation |
locateAsStream(java.lang.String file,
java.util.Locale locale,
Locator locator)
Locates the input stream based on the locale, and returns the info
of StreamLocation.
|
public static final Locator getDefault()
ClassLocator
.public static final Locators.URLLocation locate(java.lang.String file, java.util.Locale locale, Locator locator)
Example, assume file="/a/b.ext" and locale="zh_TW", then
the following files are tried in sequence:
/a/b_zh_TW.ext
/a/b_zh.ext
/a/b.ext
Unlike ClassLoader.getResource, it returns the found file, not the URL. In the previous example, one of /a/b_zh_TW.ext, /a/b_zh.ext and /a/b.ext will be returned.
To get the real URL, you still require locator.getResource:
locator.getResource(Locators.locate(locator, "/a/b.ext", locale));
Note: '_' is considered as a special character in the parsing, so there might be problem if a filename contains '_' used other than locale.
Unlike Files.locate(java.lang.String)
, where the filename
must contain '*', this method always tries to locate the file by
inserting the locale before '.'. In other words,
Files.locate("/a/b*.c") is similar to
Locators.locate(("/a/b.c", null, a_file_locator);
locale
- the locale; null means the current localepublic static final Locators.StreamLocation locateAsStream(java.lang.String file, java.util.Locale locale, Locator locator)
Copyright © 2005-2011 Potix Corporation. All Rights Reserved.