Class Locators
- java.lang.Object
-
- org.zkoss.util.resource.Locators
-
public class Locators extends java.lang.Object
Utilities to load and locate resources.- Author:
- tomyeh
- See Also:
Locator
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Locators.StreamLocation
the location information.static class
Locators.URLLocation
the location information.
-
Constructor Summary
Constructors Constructor Description Locators()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Locator
getDefault()
Returns the default resource locator which is an instance ofClassLocator
.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.
-
-
-
Method Detail
-
getDefault
public static final Locator getDefault()
Returns the default resource locator which is an instance ofClassLocator
.
-
locate
public static final Locators.URLLocation locate(java.lang.String file, java.util.Locale locale, Locator locator)
Locates the filename based on the locale.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.extUnlike 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);- Parameters:
locale
- the locale; null means the current locale- Returns:
- the URL containing proper locale characters; null if not found. Note: it could compare it with the file argument with ==, because this method will return the same string if it is the result.
-
locateAsStream
public static final 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.
-
-