Skip navigation links

Oracle® Database Globalization Development Kit Java API Reference
11g Release 1 (11.1)

Book Part Number B28299-01


oracle.i18n.servlet.localesource
Class LocaleSource

java.lang.Object
  extended by oracle.i18n.servlet.localesource.LocaleSource

All Implemented Interfaces:
Serializable
Direct Known Subclasses:
ApplicationDefault, DBLocaleSource, HttpAcceptLanguage, UserInput

public abstract class LocaleSource
extends Object
implements Serializable

The LocaleSource class is the abstract base class for locale source objects. A locale source represents an entity that can provide certain locale specific preferences like a locale name, encoding name, etc. There can be many types of sources of pertinent locale preferences, for instance a database table can contain locale specific parameters and can be a locale source. A user action can result in generation of an HTML POST request with query parameters that can be a basis of locale source. Even the HTTP protocol's headers can be yet another source of these locale parameters.

The user locale is determined according to the list of LocaleSource class declarations in the GDK application configuration file. The GDK examines each LocaleSource class declaration, in the list using the declared order of the list. The first available LocaleSource is used for the user locale.

The GDK provides the following pre-defined LocaleSource implementations:

Note ApplicationDefault locale source is implicitly registered in the end of the locale source. If no other locale source is available, the ApplicationDefault locale source is used.

Using the GDK configuration, the language of an application (User Interface) can be configured in many ways. The GDK configuration example below, illustrates configuration for a scenario where the language of an initial application page will be determined based on the language setting of the browser. Additionally, the user will be able to override this language by choosing from the available list of locales displayed in a Locale Selection drop-down. For example, if the browser language setting is Chinese, then pointing your browser to this application will display the User Interface in the Chinese language. Furthermore, the user can select Swiss (German) locale from the Locale Selection dropdown to change the application user interface to display German. The configuration below (from a gdkapp.xml) is used by the GDK to first try to use the Accept-Language HTTP header as the source of the locale, unless it is overridden by user input, which in the application's case is the selection of the locale from a Locale Selection dropdown. When the user picks the locale from the dropdown, the JSP posts a locale parameter value containing the selected locale. The GDK then sends a response, with the contents in the selected language.

 <locale-determine-rule>
   <locale-source>
     oracle.i18n.servlet.localesource.UserInput
   </locale-source>
   <locale-source>
     oracle.i18n.servlet.localesource.HttpAcceptLanguage
   </locale-source>
 </locale-determine-rule>
 

To create a custom locale source object, extend this class. The custom object for instance, may access the Oracle database to fetch and update the user locale preference, or it may access the LDAP server to get and set the language preference elements. Three methods must be implemented in the custom locale source:

Implement the following method if the locale source can be cached:

In the constructor, the following parameters must be specified:

For example, the locale source accessing the LDAP server should be cached so that the GDK keeps the locale information while the user is valid. Once the user logs out, the locale information is no longer valid.

Since:
10.1.0.2
See Also:
Serialized Form

Nested Class Summary
static class LocaleSource.Alignment
          The LocaleSource.Alignment class represents the alignment of text elements.
static class LocaleSource.Parameter
          The LocaleSource.Parameter class represents locale and attribute variable names.
static class LocaleSource.WritingDirection
          The LocaleSource.WritingDirection class represents the writing direction of the locale.

 

Constructor Summary
protected LocaleSource(boolean isCached, boolean isReadOnly)
          Constructs a LocaleSource object.

 

Method Summary
 boolean equals(Object o)
          Determines if a specific object is equal to this object.
protected  Object getAttribute(String key)
          Returns the attribute object.
 String getCharacterSet()
          Returns the character set name in this object.
 OraCollator getCollator()
          Returns the Oracle collator object.
 OraNumberFormat getCurrencyFormat()
          Returns the Oracle currency format in this object.
 OraDateFormat getDateFormat(int style)
          Returns the Oracle date format of the specified style in this object.
 OraDateFormat getDateTimeFormat(int style)
          Returns the Oracle date and time format of the specified style in this object.
 String getISOCurrency()
          Returns the ISO 4217 currency ID in this object.
 Locale getLocale()
          Returns the Locale object in this object.
 Class getLocaleSourceClass()
          Returns the locale source class.
 OraNumberFormat getNumberFormat()
          Returns the Oracle number format in this object.
 OraDateFormat getTimeFormat()
          Returns the Oracle time format in this object.
 TimeZone getTimeZone()
          Returns the time zone in this object.
 LocaleSource.WritingDirection getWritingDirection()
          Returns the writing direction in this object.
 int hashCode()
          Returns the hash value of this object.
 boolean isCached()
          Checks if the LocaleSource object is cached.
 boolean isReadOnly()
          Checks if the LocaleSource object is read-only.
abstract  boolean load()
          Loads the locale and all attributes from the actual locale source into this object.
protected  void setAttribute(String key, Object object)
          Registers an attribute object in the locale source.
 void setCharacterSet(String charset)
          Registers the Oracle character set name to store in the actual LocaleSource class.
 void setCollator(OraCollator ocol)
          Registers the Oracle collator to store in the actual LocaleSource class.
 void setCurrencyFormat(OraNumberFormat nfmt)
          Registers the Oracle currency format object to store in the actual LocaleSource class.
 void setDateFormat(int style, OraDateFormat dtfmt)
          Registers the Oracle date format object to store in the actual LocaleSource class.
 void setDateTimeFormat(int dtstyle, OraDateFormat dtfmt)
          Registers the Oracle date time format object to store in the actual LocaleSource class.
 void setISOCurrency(String currency)
          Registers the ISO currency to store in the actual LocaleSource class.
 void setLocale(Locale locale)
          Registers the Locale object with this object.
 void setLocale(Locale locale, ApplicationContext appctx)
          Registers the locale object in this object.
 void setLocaleSourceClass(Class loccls)
          Registers the locale source class object.
 void setNumberFormat(OraNumberFormat nfmt)
          Registers the Oracle number format object to store in the actual LocaleSource class.
 void setTimeFormat(OraDateFormat tmfmt)
          Registers the Oracle time format object to store in the actual LocaleSource class.
 void setTimeZone(TimeZone tz)
          Registers the TimeZone ID to store in the actual LocaleSource class.
 void setWritingDirection(LocaleSource.WritingDirection wdir)
          Registers the writing direction to store in the actual LocaleSource class.
abstract  boolean store()
          Stores the locale and all attributes of the object in the actual LocaleSource class.

 

Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

 

Constructor Detail

LocaleSource

protected LocaleSource(boolean isCached,
                       boolean isReadOnly)
Constructs a LocaleSource object.
Parameters:
isCached - true if the locale source can be cached
isReadOnly - true if the locale source is read-only

Method Detail

isCached

public final boolean isCached()
Checks if the LocaleSource object is cached.
Returns:
true if this object is cached; false otherwise.

isReadOnly

public final boolean isReadOnly()
Checks if the LocaleSource object is read-only.

If this is true, creation and update operations on this object are omitted.

Returns:
true if this object is read-only; false otherwise.

store

public abstract boolean store()
Stores the locale and all attributes of the object in the actual LocaleSource class.

This method must be implemented by the concrete classes.

Returns:
true if the storing operation is successful; false otherwise

load

public abstract boolean load()
Loads the locale and all attributes from the actual locale source into this object.

This method must be implemented by the concrete classes.

Returns:
true if the loading operation is successful; false otherwise

setLocale

public final void setLocale(Locale locale)
Registers the Locale object with this object.
Parameters:
locale - the Locale object

setLocale

public final void setLocale(Locale locale,
                            ApplicationContext appctx)
Registers the locale object in this object.
Parameters:
locale - the Locale object
appctx - the ApplicationContext object

setISOCurrency

public final void setISOCurrency(String currency)
Registers the ISO currency to store in the actual LocaleSource class.
Parameters:
currency - the ISO currency ID defined in ISO 4217

setCharacterSet

public final void setCharacterSet(String charset)
Registers the Oracle character set name to store in the actual LocaleSource class.
Parameters:
charset - the Oracle character set name

setLocaleSourceClass

public final void setLocaleSourceClass(Class loccls)
Registers the locale source class object.
Parameters:
loccls - a Class object

setTimeZone

public final void setTimeZone(TimeZone tz)
Registers the TimeZone ID to store in the actual LocaleSource class. For example: America/Los_Angeles
Parameters:
tz - a TimeZone object to register

setDateTimeFormat

public final void setDateTimeFormat(int dtstyle,
                                    OraDateFormat dtfmt)
Registers the Oracle date time format object to store in the actual LocaleSource class.
Parameters:
dtstyle - the date format style defined in the OraDateFormat class
dtfmt - an OraDateFormat object

setDateFormat

public final void setDateFormat(int style,
                                OraDateFormat dtfmt)
Registers the Oracle date format object to store in the actual LocaleSource class.
Parameters:
style - the date format style defined in the OraDateFormat class
dtfmt - an OraDateFormat object

setTimeFormat

public final void setTimeFormat(OraDateFormat tmfmt)
Registers the Oracle time format object to store in the actual LocaleSource class.
Parameters:
tmfmt - an OraDateFormat object

setWritingDirection

public final void setWritingDirection(LocaleSource.WritingDirection wdir)
Registers the writing direction to store in the actual LocaleSource class.
Parameters:
wdir - a writing direction of text on display

setCurrencyFormat

public final void setCurrencyFormat(OraNumberFormat nfmt)
Registers the Oracle currency format object to store in the actual LocaleSource class.
Parameters:
nfmt - an OraNumberFormat object to register

setNumberFormat

public final void setNumberFormat(OraNumberFormat nfmt)
Registers the Oracle number format object to store in the actual LocaleSource class.
Parameters:
nfmt - an OraNumberFormat object to register

setCollator

public final void setCollator(OraCollator ocol)
Registers the Oracle collator to store in the actual LocaleSource class.
Parameters:
ocol - an OraCollator object to register

setAttribute

protected final void setAttribute(String key,
                                  Object object)
Registers an attribute object in the locale source.

Used in the concrete classes to set custom attributes.
Note the attribute object must be Serializable.

Parameters:
key - a String key of object
object - an object

getLocale

public final Locale getLocale()
Returns the Locale object in this object.
Returns:
Locale object

getISOCurrency

public final String getISOCurrency()
Returns the ISO 4217 currency ID in this object.
Returns:
the ISO 4217 currency ID

getCharacterSet

public final String getCharacterSet()
Returns the character set name in this object.
Returns:
the character set name

getLocaleSourceClass

public final Class getLocaleSourceClass()
Returns the locale source class.
Returns:
the locale source class

getTimeZone

public final TimeZone getTimeZone()
Returns the time zone in this object.
Returns:
a TimeZone object

getDateTimeFormat

public final OraDateFormat getDateTimeFormat(int style)
Returns the Oracle date and time format of the specified style in this object.
Parameters:
style - the Date format style
Returns:
an OraDateFormat object

getDateFormat

public final OraDateFormat getDateFormat(int style)
Returns the Oracle date format of the specified style in this object.
Parameters:
style - the Date format style
Returns:
an OraDateFormat object

getTimeFormat

public final OraDateFormat getTimeFormat()
Returns the Oracle time format in this object.
Returns:
the Oracle time format

getWritingDirection

public final LocaleSource.WritingDirection getWritingDirection()
Returns the writing direction in this object.
Returns:
a WritingDirection object

getCurrencyFormat

public final OraNumberFormat getCurrencyFormat()
Returns the Oracle currency format in this object.
Returns:
an OraNumberFormat object

getNumberFormat

public final OraNumberFormat getNumberFormat()
Returns the Oracle number format in this object.
Returns:
an OraNumberFormat object

getCollator

public final OraCollator getCollator()
Returns the Oracle collator object.
Returns:
an OraCollator object

getAttribute

protected final Object getAttribute(String key)
Returns the attribute object.

Used in the concrete classes to retrieve custom attributes. Note the attribute object must be Serializable.

Parameters:
key - a String key of object
Returns:
an Object associated with the key

equals

public boolean equals(Object o)
Determines if a specific object is equal to this object.
Overrides:
equals in class Object
Parameters:
o - an Object to be compared
Returns:
boolean true if the objects are equal; false otherwise

hashCode

public int hashCode()
Returns the hash value of this object.
Overrides:
hashCode in class Object
Returns:
hash value

Skip navigation links

Oracle® Database Globalization Development Kit Java API Reference
11g Release 1 (11.1)

Book Part Number B28299-01


Copyright © 2003, 2007, Oracle. All rights reserved.