/*
** Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
**
**34567890123456789012345678901234567890123456789012345678901234567890123456789
*/
/*global ojld:true*/
/**
* @class Locale Data Services
* @export
* @since 0.6
*/
oj.LocaleData = {};
/**
* Sets the Locale Elements bundle used by JET
* If an AMD loader (such as Require.js) is not present, this method should be called by the application to provide
* a Locale Elements for JET.
* This method may also be used by an application that wants to completely replace the Locale Elements bundle that is automatically
* fetched by an AMD loader.
* @param {Object} bundle resource bundle that should be used by the framework
* @export
*/
oj.LocaleData.setBundle = function(bundle)
{
oj.LocaleData._bundle = bundle;
};
/**
* Retrieves the first day of week for the current locale's region
* @return {number} a numeric representation of the first week day of the week:
* 0 for Sunday, 1 for Monday, etc.
* @export
*/
oj.LocaleData.getFirstDayOfWeek = function()
{
return oj.LocaleData._getWeekData("firstDay");
};
/**
* Retrieves the first weekend day for the current locale's region
* @return {number} a numeric representation of the first weekend day:
* 0 for Sunday, 1 for Monday, etc.
* @export
*/
oj.LocaleData.getWeekendStart = function()
{
return oj.LocaleData._getWeekData("weekendStart");
};
/**
* Retrieves the last weekend day for the current locale's region
* @return {number} a numeric representation of the last weekend day:
* 0 for Sunday, 1 for Monday, etc.
* @export
*/
oj.LocaleData.getWeekendEnd = function()
{
return oj.LocaleData._getWeekData("weekendEnd");
};
/**
* Retrieves locale-specific names of the days of the week
* @return {Array.<string>} names of the days from Sunday through Sturday
* @param {string} type - the type of the name. Currently, "abbreviated", "narrow" and "wide" are supported
* @export
*/
oj.LocaleData.getDayNames = function(type)
{
if (type== null || (type !== "abbreviated" && type !== "narrow"))
{
type = "wide";
}
var days = oj.LocaleData._getCalendarData()["days"]["stand-alone"][type];
return [days["sun"], days["mon"], days["tue"], days["wed"], days["thu"], days["fri"], days["sat"]];
};
/**
* Retrieves locale-specific names of months
* @return {Array.<string>} names of months from January through December
* @param {string} type - the type of the name. Currently, "abbreviated", "narrow" and "wide" are supported
* @export
*/
oj.LocaleData.getMonthNames = function(type)
{
if (type== null || (type !== "abbreviated" && type !== "narrow"))
{
type = "wide";
}
var months = oj.LocaleData._getCalendarData()["months"]["stand-alone"][type];
return [months["1"], months["2"], months["3"], months["4"], months["5"], months["6"],
months["7"], months["8"], months["9"], months["10"], months["11"], months["12"]];
};
/**
* Retrieves whether month is displayed prior to year
* @return {boolean} whether month is prior to year
* @export
*/
oj.LocaleData.isMonthPriorToYear = function()
{
var longDateFormat = oj.LocaleData._getCalendarData()["dateFormats"]["long"].toUpperCase(),
monthIndex = longDateFormat.indexOf("M"),
yearIndex = longDateFormat.indexOf("Y");
return monthIndex < yearIndex;
}
/**
* @hidden
* @private
*/
oj.LocaleData._getWeekData = function(key)
{
var b = oj.LocaleData.__getBundle();
var defRegion = "001";
var region = oj.LocaleData._getRegion() || defRegion;
var data = b["supplemental"]["weekData"][key];
var val = data[region];
if (val === undefined)
{
val = data[defRegion];
}
return val;
};
/**
* @hidden
* @private
*/
oj.LocaleData._getCalendarData = function()
{
var b = oj.LocaleData.__getBundle();
var main = b['main'];
// skip one level (the name of the locale)
var data, p;
for (p in main)
{
if (main.hasOwnProperty(p)) {
data = main[p];
break;
}
}
return data['dates']['calendars']['gregorian'];
};
/**
* @hidden
* @private
*/
oj.LocaleData._getRegion = function()
{
var locale = oj.Config.getLocale();
if (locale)
{
var tokens = locale.toUpperCase().split(/-|_/);
if (tokens.length >= 2)
{
var tag = tokens[1];
if (tag.length == 4) // this is a script tag
{
if (tokens.length >= 3)
{
return tokens[2];
}
}
else
{
return tag;
}
}
}
return null;
};
/**
* @hidden
* @private
*/
oj.LocaleData.__getBundle = function()
{
var b = oj.LocaleData._bundle;
if (b)
{
return b;
}
if (oj.__isAmdLoaderPresent()) {
oj.Assert.assert(ojld !== undefined, "LocaleElements module must be loaded");
return ojld;
}
return {};
};
/**
* Called from oj.Config after AMD loader fetches LocaleElements for the new locale.
*
* @hidden
* @private
*
*/
oj.LocaleData.__updateBundle = function(bundle)
{
ojld = bundle;
};
Source: src/main/javascript/oracle/oj/ojvalidation/LocaleData.js
Oracle® JavaScript Extension Toolkit (JET)
1.1.2
E65298-01