wt.util
Class LocalizedResource

java.lang.Object
  extended bywt.util.LocalizedResource
Direct Known Subclasses:
HTMLTemplate

public class LocalizedResource
extends Object

LocalizedResource contains the utility methods for finding and opening the resource that best matches the given Locale.

Supported API: true
Extendable: false


Nested Class Summary
(package private) static class LocalizedResource.CacheEntry
           
 
Field Summary
private  String[] altExtensions
           
private static Hashtable cacheList
           
private static boolean debug
           
private  String foundName
           
private  String givenName
           
private  InputStream inputStream
           
private  Locale loc
           
private static String RESOURCE
           
 
Constructor Summary
LocalizedResource(String resourceName)
          
Supported API: true
LocalizedResource(String resourceName, String alternateExtension)
          
Supported API: true
LocalizedResource(String resourceName, String[] alternateExtensions)
           
 
Method Summary
protected  void closeInputStream()
          Close input stream of this instance.
private  void findResource(String resourceName, String[] alternateExtensions, Locale locale)
           
private  void findResource(String resourceName, String[] alternateExtensions, Locale locale, boolean includeBase)
           
private  void findResource(String resourceName, String[] alternateExtensions, String locale, boolean includeBase)
           
private  void findResource(String resourceName, String[] alternateExtensions, Vector preferences)
           
protected  InputStream getInputStream()
          Return input stream of best matching resource.
 Locale getLocale()
          Get the Locale object for this instance.
static String getLocalizedResourceName(Locale aLocale, String aFilename)
          Returns the Localized name of a Resource, with a specified Locale and a filename.
static String getLocalizedResourceName(WTContext aContext, String aFilename)
          Returns the Localized name of a Resource, with a specified Locale and a filename.
private  void getResource(String resource)
           
 String getResourceName()
          Get the resource name that best matched.
protected  void init()
          Look for the given resource for the server's locale.
protected  void init(Locale locale)
          Look for the given resource for the given locale.
 void init(Vector preferences)
          Look for the given resource for the given locales.
 InputStream openResource()
          Look for the given resource for the server's locale.
 InputStream openResource(Locale locale)
          Look for the given resource for the given locale.
 InputStream openResource(Vector preferences)
          Look for the given resource for the given locales.
static void setDebug(boolean value)
          Sets the debug value which controls logging from this class.
 void setLocale(Locale locale)
          Set the Locale object for this instance.
private  void setLocale(String fname)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

RESOURCE

private static final String RESOURCE
See Also:
Constant Field Values

debug

private static boolean debug

cacheList

private static Hashtable cacheList

loc

private Locale loc

altExtensions

private String[] altExtensions

givenName

private String givenName

foundName

private String foundName

inputStream

private InputStream inputStream
Constructor Detail

LocalizedResource

public LocalizedResource(String resourceName)

Supported API: true


LocalizedResource

public LocalizedResource(String resourceName,
                         String alternateExtension)

Supported API: true


LocalizedResource

public LocalizedResource(String resourceName,
                         String[] alternateExtensions)
Method Detail

getLocale

public Locale getLocale()
Get the Locale object for this instance. Instance must be initialized or opened prior to call.

Supported API: true


getResourceName

public String getResourceName()
Get the resource name that best matched. Instance must be initialized or opened prior to call.

Supported API: true


setLocale

public void setLocale(Locale locale)
Set the Locale object for this instance. Used to override locale set when instance was initialized or opened.

Supported API: true


getLocalizedResourceName

public static String getLocalizedResourceName(WTContext aContext,
                                              String aFilename)
Returns the Localized name of a Resource, with a specified Locale and a filename. This method supports localized backoff. The locale is 'backed off' to attempt a best guess. For example, given the locale of "en_US" and the resourceName of "resource.xxx", if resource_en_US.xxx is not found, it will attempt to find resource_en.xxx. If that in turn is not found, resource.xxx is looked for. If no best match is found, an attempt to find a best match on the server's locale is attempted. The locale will be determined from WTContext, which is set in an HTML file using the property "wt.context.locale".

Replaces LocaleHelper.translateURLString( )

Parameters:
aFilename - The filename to generate the file around.
Returns:
String The localized version of the String.

Supported API: true

getLocalizedResourceName

public static String getLocalizedResourceName(Locale aLocale,
                                              String aFilename)
Returns the Localized name of a Resource, with a specified Locale and a filename. This method supports localized backoff. The locale is 'backed off' to attempt a best guess. For example, given the locale of "en_US" and the resourceName of "resource.xxx", if resource_en_US.xxx is not found, it will attempt to find resource_en.xxx. If that in turn is not found, resource.xxx is looked for. If no best match is found, an attempt to find a best match on the server's locale is attempted.

Replaces LocaleHelper.translateURLString( )

Parameters:
aLocale - The locale to generate the file with.
aFilename - The filename to generate the file around.
Returns:
String The localized version of the String.

Supported API: true

setDebug

public static void setDebug(boolean value)
Sets the debug value which controls logging from this class.

Supported API: true


init

protected void init(Locale locale)
             throws WTException
Look for the given resource for the given locale. If the resource is not found, the locale is 'backed off' to attempt a best guess. For example, given the locale of "en_US" and the resourceName of "resource.xxx", if resource_en_US.xxx is not found, it will attempt to find resource_en.xxx. If that in turn is not found, resource.xxx is looked for. If no best match is found, an attempt to find a best match on the server's locale is attempted.

Supported API: true

Parameters:
locale - The locale to search on.
Throws:
WTException - Thrown if an IO exception occurs.

init

protected void init()
             throws WTException
Look for the given resource for the server's locale. If the resource is not found, the locale is 'backed off' to attempt a best guess. For example, given the locale of "en_US" and the resourceName of "resource.xxx", if resource_en_US.xxx is not found, it will attempt to find resource_en.xxx. If that in turn is not found, resource.xxx is looked for.

Supported API: true

Throws:
WTException - Thrown if an IO exception occurs.

init

public void init(Vector preferences)
          throws WTException
Look for the given resource for the given locales. If the resource is not found, the locale is 'backed off' to attempt a best guess. For example, given the locale of "en_US" and the resourceName of "resource.xxx", if resource_en_US.xxx is not found, it will attempt to find resource_en.xxx. If that in turn is not found, resource.xxx is looked for. If no best match is found, an attempt to find a best match on the server's locale is attempted.

Supported API: true

Parameters:
preferences - Vector containing the locales to search on.
Throws:
WTException - Thrown if an IO exception occurs.

getInputStream

protected InputStream getInputStream()
                              throws WTException
Return input stream of best matching resource. Instance must be initialized or opened prior to call.

Supported API: true

Returns:
BufferedInputStream.
Throws:
WTException - Thrown if an IO exception occurs.

closeInputStream

protected void closeInputStream()
Close input stream of this instance. Supported API: true


openResource

public InputStream openResource(Locale locale)
                         throws WTException
Look for the given resource for the given locale. If the resource is not found, the locale is 'backed off' to attempt a best guess. For example, given the locale of "en_US" and the resourceName of "resource.xxx", if resource_en_US.xxx is not found, it will attempt to find resource_en.xxx. If that in turn is not found, resource.xxx is looked for. If no best match is found, an attempt to find a best match on the server's locale is attempted. If a best match is found, the returned input stream is already buffered for efficient reading.

Supported API: true

Parameters:
locale - The locale to search on.
Returns:
InputStream.
Throws:
WTException - Thrown if an IO exception occurs.

openResource

public InputStream openResource()
                         throws WTException
Look for the given resource for the server's locale. If the resource is not found, the locale is 'backed off' to attempt a best guess. For example, given the locale of "en_US" and the resourceName of "resource.xxx", if resource_en_US.xxx is not found, it will attempt to find resource_en.xxx. If that in turn is not found, resource.xxx is looked for. If a best match is found, load the resource into a BufferedInputStream.

Supported API: true

Returns:
BufferedInputStream.
Throws:
WTException - Thrown if an IO exception occurs.

openResource

public InputStream openResource(Vector preferences)
                         throws WTException
Look for the given resource for the given locales. If the resource is not found, the locale is 'backed off' to attempt a best guess. For example, given the locale of "en_US" and the resourceName of "resource.xxx", if resource_en_US.xxx is not found, it will attempt to find resource_en.xxx. If that in turn is not found, resource.xxx is looked for. If no best match is found, an attempt to find a best match on the server's locale is attempted. If a best match is found, load the resource into a BufferedInputStream.

Supported API: true

Parameters:
preferences - Vector containing the locales to search on.
Returns:
BufferedInputStream.
Throws:
WTException - Thrown if an IO exception occurs.

findResource

private void findResource(String resourceName,
                          String[] alternateExtensions,
                          Locale locale,
                          boolean includeBase)
                   throws WTException
Throws:
WTException

findResource

private void findResource(String resourceName,
                          String[] alternateExtensions,
                          Locale locale)
                   throws WTException
Throws:
WTException

findResource

private void findResource(String resourceName,
                          String[] alternateExtensions,
                          Vector preferences)
                   throws WTException
Throws:
WTException

findResource

private void findResource(String resourceName,
                          String[] alternateExtensions,
                          String locale,
                          boolean includeBase)
                   throws WTException
Throws:
WTException

getResource

private void getResource(String resource)
                  throws WTException
Throws:
WTException

setLocale

private void setLocale(String fname)