Class LocaleSource
- java.lang.Object
-
- oracle.i18n.servlet.localesource.LocaleSource
-
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
ApplicationDefault
,DBLocaleSource
,HttpAcceptLanguage
,UserInput
public abstract class LocaleSource extends Object implements Serializable
TheLocaleSource
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 eachLocaleSource
class declaration, in the list using the declared order of the list. The first availableLocaleSource
is used for the user locale.The GDK provides the following pre-defined
LocaleSource
implementations:-
HttpAcceptLanguage
- the locale preference set by the web client in the HTTP header. -
UserInput
- the locale preference in the parameters ofGET
andPOST
methods. -
DBLocaleSource
- the locale preference stored in the Oracle database. -
ApplicationDefault
- the default locale for the application.
Note
ApplicationDefault
locale source is implicitly registered in the end of the locale source. If no other locale source is available, theApplicationDefault
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:
-
public static LocaleSource getInstance(HttpServletRequest)
- used to instantiate the object. It returns the object if it succeeds, otherwisenull
. -
public boolean
- used to load the locale and its attributes from the locale source.load()
-
public boolean
- used to store the locale and its attributes into the locale source. If the locale source is read-only, this method should do nothing but returnstore()
true
.
-
public static boolean isAccessible(HttpServletRequest)
- used to check if the locale source is accessible before using the cached object. It returnstrue
if the locale source is accessible, otherwisefalse
. If this method is not implemented, the GDK assumes that the locale source is always accessible.
-
cache flag
- indicates whether the locale source can be cached. If the access cost to the locale source is not trivial, such as LDAP server, this flag should betrue
, otherwisefalse
. -
read-only flag
- indicates whether the locale source is read-only. If the locale source cannot be updated, such as theAccept-Language
item in the HTTP header, this flag istrue
, otherwisefalse
.
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
Nested Classes Modifier and Type Class Description static class
LocaleSource.Alignment
TheLocaleSource.Alignment
class represents the alignment of text elements.static class
LocaleSource.Parameter
TheLocaleSource.Parameter
class represents locale and attribute variable names.static class
LocaleSource.WritingDirection
TheLocaleSource.WritingDirection
class represents the writing direction of the locale.
-
Constructor Summary
Constructors Modifier Constructor Description protected
LocaleSource(boolean isCached, boolean isReadOnly)
Constructs aLocaleSource
object.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description 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 theLocale
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 theLocaleSource
object is cached.boolean
isReadOnly()
Checks if theLocaleSource
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 actualLocaleSource
class.void
setCollator(OraCollator ocol)
Registers the Oracle collator to store in the actualLocaleSource
class.void
setCurrencyFormat(OraNumberFormat nfmt)
Registers the Oracle currency format object to store in the actualLocaleSource
class.void
setDateFormat(int style, OraDateFormat dtfmt)
Registers the Oracle date format object to store in the actualLocaleSource
class.void
setDateTimeFormat(int dtstyle, OraDateFormat dtfmt)
Registers the Oracle date time format object to store in the actualLocaleSource
class.void
setISOCurrency(String currency)
Registers the ISO currency to store in the actualLocaleSource
class.void
setLocale(Locale locale)
Registers theLocale
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 actualLocaleSource
class.void
setTimeFormat(OraDateFormat tmfmt)
Registers the Oracle time format object to store in the actualLocaleSource
class.void
setTimeZone(TimeZone tz)
Registers theTimeZone
ID to store in the actualLocaleSource
class.void
setWritingDirection(LocaleSource.WritingDirection wdir)
Registers the writing direction to store in the actualLocaleSource
class.abstract boolean
store()
Stores the locale and all attributes of the object in the actualLocaleSource
class.
-
-
-
Method Detail
-
isCached
public final boolean isCached()
Checks if theLocaleSource
object is cached.- Returns:
true
if this object is cached;false
otherwise.
-
isReadOnly
public final boolean isReadOnly()
Checks if theLocaleSource
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 actualLocaleSource
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 theLocale
object with this object.- Parameters:
locale
- theLocale
object
-
setLocale
public final void setLocale(Locale locale, ApplicationContext appctx)
Registers the locale object in this object.- Parameters:
locale
- theLocale
objectappctx
- theApplicationContext
object
-
setISOCurrency
public final void setISOCurrency(String currency)
Registers the ISO currency to store in the actualLocaleSource
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 actualLocaleSource
class.- Parameters:
charset
- the Oracle character set name
-
setLocaleSourceClass
public final void setLocaleSourceClass(Class loccls)
Registers the locale source class object.- Parameters:
loccls
- aClass
object
-
setTimeZone
public final void setTimeZone(TimeZone tz)
Registers theTimeZone
ID to store in the actualLocaleSource
class. For example:America/Los_Angeles
- Parameters:
tz
- aTimeZone
object to register
-
setDateTimeFormat
public final void setDateTimeFormat(int dtstyle, OraDateFormat dtfmt)
Registers the Oracle date time format object to store in the actualLocaleSource
class.- Parameters:
dtstyle
- the date format style defined in theOraDateFormat
classdtfmt
- anOraDateFormat
object
-
setDateFormat
public final void setDateFormat(int style, OraDateFormat dtfmt)
Registers the Oracle date format object to store in the actualLocaleSource
class.- Parameters:
style
- the date format style defined in theOraDateFormat
classdtfmt
- anOraDateFormat
object
-
setTimeFormat
public final void setTimeFormat(OraDateFormat tmfmt)
Registers the Oracle time format object to store in the actualLocaleSource
class.- Parameters:
tmfmt
- anOraDateFormat
object
-
setWritingDirection
public final void setWritingDirection(LocaleSource.WritingDirection wdir)
Registers the writing direction to store in the actualLocaleSource
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 actualLocaleSource
class.- Parameters:
nfmt
- anOraNumberFormat
object to register
-
setNumberFormat
public final void setNumberFormat(OraNumberFormat nfmt)
Registers the Oracle number format object to store in the actualLocaleSource
class.- Parameters:
nfmt
- anOraNumberFormat
object to register
-
setCollator
public final void setCollator(OraCollator ocol)
Registers the Oracle collator to store in the actualLocaleSource
class.- Parameters:
ocol
- anOraCollator
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 beSerializable
.- Parameters:
key
- aString
key of objectobject
- an object
-
getLocale
public final Locale getLocale()
Returns theLocale
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
- theDate
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
- theDate
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
- aString
key of object- Returns:
- an
Object
associated with thekey
-
equals
public boolean equals(Object o)
Determines if a specific object is equal to this object.
-
-