Return-Path: X-Original-To: apmail-incubator-callback-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-callback-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 7337AD2C2 for ; Wed, 19 Sep 2012 18:13:16 +0000 (UTC) Received: (qmail 80278 invoked by uid 500); 19 Sep 2012 18:13:16 -0000 Delivered-To: apmail-incubator-callback-commits-archive@incubator.apache.org Received: (qmail 80260 invoked by uid 500); 19 Sep 2012 18:13:16 -0000 Mailing-List: contact callback-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: callback-dev@incubator.apache.org Delivered-To: mailing list callback-commits@incubator.apache.org Received: (qmail 80253 invoked by uid 99); 19 Sep 2012 18:13:16 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 19 Sep 2012 18:13:16 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 16ABA38081; Wed, 19 Sep 2012 18:13:16 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: bowserj@apache.org To: callback-commits@incubator.apache.org X-Mailer: ASF-Git Admin Mailer Subject: android commit: Adding headers and converting tabs to spaces Message-Id: <20120919181316.16ABA38081@tyr.zones.apache.org> Date: Wed, 19 Sep 2012 18:13:16 +0000 (UTC) Updated Branches: refs/heads/master 631245742 -> 34840175f Adding headers and converting tabs to spaces Project: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/commit/34840175 Tree: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/tree/34840175 Diff: http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/diff/34840175 Branch: refs/heads/master Commit: 34840175f31b7bb13c1870592ba9c70f86e4bcc4 Parents: 6312457 Author: Joe Bowser Authored: Wed Sep 19 11:12:55 2012 -0700 Committer: Joe Bowser Committed: Wed Sep 19 11:12:55 2012 -0700 ---------------------------------------------------------------------- .../src/org/apache/cordova/Globalization.java | 1071 ++++++++------- .../src/org/apache/cordova/GlobalizationError.java | 101 +- 2 files changed, 605 insertions(+), 567 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/34840175/framework/src/org/apache/cordova/Globalization.java ---------------------------------------------------------------------- diff --git a/framework/src/org/apache/cordova/Globalization.java b/framework/src/org/apache/cordova/Globalization.java index 1c2a13c..7d724c9 100644 --- a/framework/src/org/apache/cordova/Globalization.java +++ b/framework/src/org/apache/cordova/Globalization.java @@ -1,3 +1,22 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/ + package org.apache.cordova; import java.text.DateFormat; @@ -26,535 +45,535 @@ import android.text.format.Time; * */ public class Globalization extends Plugin { - //GlobalizationCommand Plugin Actions - public static final String GETLOCALENAME = "getLocaleName"; - public static final String DATETOSTRING = "dateToString"; - public static final String STRINGTODATE = "stringToDate"; - public static final String GETDATEPATTERN = "getDatePattern"; - public static final String GETDATENAMES = "getDateNames"; - public static final String ISDAYLIGHTSAVINGSTIME = "isDayLightSavingsTime"; - public static final String GETFIRSTDAYOFWEEK = "getFirstDayOfWeek"; - public static final String NUMBERTOSTRING = "numberToString"; - public static final String STRINGTONUMBER = "stringToNumber"; - public static final String GETNUMBERPATTERN = "getNumberPattern"; - public static final String GETCURRENCYPATTERN = "getCurrencyPattern"; - public static final String GETPREFERREDLANGUAGE = "getPreferredLanguage"; - - //GlobalizationCommand Option Parameters - public static final String OPTIONS = "options"; - public static final String FORMATLENGTH = "formatLength"; - //public static final String SHORT = "short"; //default for dateToString format - public static final String MEDIUM = "medium"; - public static final String LONG = "long"; - public static final String FULL = "full"; - public static final String SELECTOR = "selector"; - //public static final String DATEANDTIME = "date and time"; //default for dateToString - public static final String DATE = "date"; - public static final String TIME = "time"; - public static final String DATESTRING = "dateString"; - public static final String TYPE = "type"; - public static final String ITEM = "item"; - public static final String NARROW = "narrow"; - public static final String WIDE = "wide"; - public static final String MONTHS = "months"; - public static final String DAYS = "days"; - //public static final String DECMIAL = "wide"; //default for numberToString - public static final String NUMBER = "number"; - public static final String NUMBERSTRING = "numberString"; - public static final String PERCENT = "percent"; - public static final String CURRENCY = "currency"; - public static final String CURRENCYCODE = "currencyCode"; - - @Override - public PluginResult execute(String action, JSONArray data, String callbackId) { - PluginResult.Status status = PluginResult.Status.OK; - JSONObject obj = new JSONObject(); + //GlobalizationCommand Plugin Actions + public static final String GETLOCALENAME = "getLocaleName"; + public static final String DATETOSTRING = "dateToString"; + public static final String STRINGTODATE = "stringToDate"; + public static final String GETDATEPATTERN = "getDatePattern"; + public static final String GETDATENAMES = "getDateNames"; + public static final String ISDAYLIGHTSAVINGSTIME = "isDayLightSavingsTime"; + public static final String GETFIRSTDAYOFWEEK = "getFirstDayOfWeek"; + public static final String NUMBERTOSTRING = "numberToString"; + public static final String STRINGTONUMBER = "stringToNumber"; + public static final String GETNUMBERPATTERN = "getNumberPattern"; + public static final String GETCURRENCYPATTERN = "getCurrencyPattern"; + public static final String GETPREFERREDLANGUAGE = "getPreferredLanguage"; + + //GlobalizationCommand Option Parameters + public static final String OPTIONS = "options"; + public static final String FORMATLENGTH = "formatLength"; + //public static final String SHORT = "short"; //default for dateToString format + public static final String MEDIUM = "medium"; + public static final String LONG = "long"; + public static final String FULL = "full"; + public static final String SELECTOR = "selector"; + //public static final String DATEANDTIME = "date and time"; //default for dateToString + public static final String DATE = "date"; + public static final String TIME = "time"; + public static final String DATESTRING = "dateString"; + public static final String TYPE = "type"; + public static final String ITEM = "item"; + public static final String NARROW = "narrow"; + public static final String WIDE = "wide"; + public static final String MONTHS = "months"; + public static final String DAYS = "days"; + //public static final String DECMIAL = "wide"; //default for numberToString + public static final String NUMBER = "number"; + public static final String NUMBERSTRING = "numberString"; + public static final String PERCENT = "percent"; + public static final String CURRENCY = "currency"; + public static final String CURRENCYCODE = "currencyCode"; + + @Override + public PluginResult execute(String action, JSONArray data, String callbackId) { + PluginResult.Status status = PluginResult.Status.OK; + JSONObject obj = new JSONObject(); - try{ - if (action.equals(GETLOCALENAME)){ - obj = getLocaleName(); - return new PluginResult(status, obj); - }else if (action.equals(GETPREFERREDLANGUAGE)){ - obj = getPreferredLanguage(); - return new PluginResult(status, obj); - } else if (action.equalsIgnoreCase(DATETOSTRING)) { - obj = getDateToString(data); - return new PluginResult(PluginResult.Status.OK, obj); - }else if(action.equalsIgnoreCase(STRINGTODATE)){ - obj = getStringtoDate(data); - return new PluginResult(PluginResult.Status.OK, obj); - }else if(action.equalsIgnoreCase(GETDATEPATTERN)){ - obj = getDatePattern(data); - return new PluginResult(PluginResult.Status.OK, obj); - }else if(action.equalsIgnoreCase(GETDATENAMES)){ - obj = getDateNames(data); - return new PluginResult(PluginResult.Status.OK, obj); - }else if(action.equalsIgnoreCase(ISDAYLIGHTSAVINGSTIME)){ - obj = getIsDayLightSavingsTime(data); - return new PluginResult(PluginResult.Status.OK, obj); - }else if(action.equalsIgnoreCase(GETFIRSTDAYOFWEEK)){ - obj = getFirstDayOfWeek(data); - return new PluginResult(PluginResult.Status.OK, obj); - }else if(action.equalsIgnoreCase(NUMBERTOSTRING)){ - obj = getNumberToString(data); - return new PluginResult(PluginResult.Status.OK, obj); - }else if(action.equalsIgnoreCase(STRINGTONUMBER)){ - obj = getStringToNumber(data); - return new PluginResult(PluginResult.Status.OK, obj); - }else if(action.equalsIgnoreCase(GETNUMBERPATTERN)){ - obj = getNumberPattern(data); - return new PluginResult(PluginResult.Status.OK, obj); - }else if(action.equalsIgnoreCase(GETCURRENCYPATTERN)){ - obj = getCurrencyPattern(data); - return new PluginResult(PluginResult.Status.OK, obj); - } - }catch (GlobalizationError ge){ - return new PluginResult(PluginResult.Status.ERROR, ge.getErrorCode()); - }catch (Exception e){ - return new PluginResult(PluginResult.Status.JSON_EXCEPTION); - } - return new PluginResult(PluginResult.Status.INVALID_ACTION); - } - /* - * @Description: Returns the string identifier for the client's current locale setting - * - * @Return: JSONObject - * Object.value {String}: The locale identifier - * - * @throws: GlobalizationError.UNKNOWN_ERROR - */ - private JSONObject getLocaleName() throws GlobalizationError{ - JSONObject obj = new JSONObject(); - try{ - obj.put("value",Locale.getDefault().toString());//get the locale from the Android Device - return obj; - }catch(Exception e){ - throw new GlobalizationError(GlobalizationError.UNKNOWN_ERROR); - } - } - /* - * @Description: Returns the string identifier for the client's current language - * - * @Return: JSONObject - * Object.value {String}: The language identifier - * - * @throws: GlobalizationError.UNKNOWN_ERROR - */ - private JSONObject getPreferredLanguage() throws GlobalizationError { - JSONObject obj = new JSONObject(); - try { - obj.put("value", Locale.getDefault().getDisplayLanguage().toString()); - return obj; - } catch (Exception e) { - throw new GlobalizationError(GlobalizationError.UNKNOWN_ERROR); - } - } - /* - * @Description: Returns a date formatted as a string according to the client's user preferences and - * calendar using the time zone of the client. - * - * @Return: JSONObject - * Object.value {String}: The localized date string - * + try{ + if (action.equals(GETLOCALENAME)){ + obj = getLocaleName(); + return new PluginResult(status, obj); + }else if (action.equals(GETPREFERREDLANGUAGE)){ + obj = getPreferredLanguage(); + return new PluginResult(status, obj); + } else if (action.equalsIgnoreCase(DATETOSTRING)) { + obj = getDateToString(data); + return new PluginResult(PluginResult.Status.OK, obj); + }else if(action.equalsIgnoreCase(STRINGTODATE)){ + obj = getStringtoDate(data); + return new PluginResult(PluginResult.Status.OK, obj); + }else if(action.equalsIgnoreCase(GETDATEPATTERN)){ + obj = getDatePattern(data); + return new PluginResult(PluginResult.Status.OK, obj); + }else if(action.equalsIgnoreCase(GETDATENAMES)){ + obj = getDateNames(data); + return new PluginResult(PluginResult.Status.OK, obj); + }else if(action.equalsIgnoreCase(ISDAYLIGHTSAVINGSTIME)){ + obj = getIsDayLightSavingsTime(data); + return new PluginResult(PluginResult.Status.OK, obj); + }else if(action.equalsIgnoreCase(GETFIRSTDAYOFWEEK)){ + obj = getFirstDayOfWeek(data); + return new PluginResult(PluginResult.Status.OK, obj); + }else if(action.equalsIgnoreCase(NUMBERTOSTRING)){ + obj = getNumberToString(data); + return new PluginResult(PluginResult.Status.OK, obj); + }else if(action.equalsIgnoreCase(STRINGTONUMBER)){ + obj = getStringToNumber(data); + return new PluginResult(PluginResult.Status.OK, obj); + }else if(action.equalsIgnoreCase(GETNUMBERPATTERN)){ + obj = getNumberPattern(data); + return new PluginResult(PluginResult.Status.OK, obj); + }else if(action.equalsIgnoreCase(GETCURRENCYPATTERN)){ + obj = getCurrencyPattern(data); + return new PluginResult(PluginResult.Status.OK, obj); + } + }catch (GlobalizationError ge){ + return new PluginResult(PluginResult.Status.ERROR, ge.getErrorCode()); + }catch (Exception e){ + return new PluginResult(PluginResult.Status.JSON_EXCEPTION); + } + return new PluginResult(PluginResult.Status.INVALID_ACTION); + } + /* + * @Description: Returns the string identifier for the client's current locale setting + * + * @Return: JSONObject + * Object.value {String}: The locale identifier + * + * @throws: GlobalizationError.UNKNOWN_ERROR + */ + private JSONObject getLocaleName() throws GlobalizationError{ + JSONObject obj = new JSONObject(); + try{ + obj.put("value",Locale.getDefault().toString());//get the locale from the Android Device + return obj; + }catch(Exception e){ + throw new GlobalizationError(GlobalizationError.UNKNOWN_ERROR); + } + } + /* + * @Description: Returns the string identifier for the client's current language + * + * @Return: JSONObject + * Object.value {String}: The language identifier + * + * @throws: GlobalizationError.UNKNOWN_ERROR + */ + private JSONObject getPreferredLanguage() throws GlobalizationError { + JSONObject obj = new JSONObject(); + try { + obj.put("value", Locale.getDefault().getDisplayLanguage().toString()); + return obj; + } catch (Exception e) { + throw new GlobalizationError(GlobalizationError.UNKNOWN_ERROR); + } + } + /* + * @Description: Returns a date formatted as a string according to the client's user preferences and + * calendar using the time zone of the client. + * + * @Return: JSONObject + * Object.value {String}: The localized date string + * * @throws: GlobalizationError.FORMATTING_ERROR - */ - private JSONObject getDateToString(JSONArray options) throws GlobalizationError{ - JSONObject obj = new JSONObject(); - try{ - Date date = new Date((Long)options.getJSONObject(0).get(DATE)); - - //get formatting pattern from android device (Will only have device specific formatting for short form of date) or options supplied - JSONObject datePattern = getDatePattern(options); - SimpleDateFormat fmt = new SimpleDateFormat(datePattern.getString("pattern")); - - //return formatted date - return obj.put("value",fmt.format(date)); - }catch(Exception ge){ - throw new GlobalizationError(GlobalizationError.FORMATTING_ERROR); - } - } - - /* - * @Description: Parses a date formatted as a string according to the client's user - * preferences and calendar using the time zone of the client and returns - * the corresponding date object - * @Return: JSONObject - * Object.year {Number}: The four digit year - * Object.month {Number}: The month from (0 - 11) - * Object.day {Number}: The day from (1 - 31) - * Object.hour {Number}: The hour from (0 - 23) - * Object.minute {Number}: The minute from (0 - 59) - * Object.second {Number}: The second from (0 - 59) - * Object.millisecond {Number}: The milliseconds (from 0 - 999), not available on all platforms + */ + private JSONObject getDateToString(JSONArray options) throws GlobalizationError{ + JSONObject obj = new JSONObject(); + try{ + Date date = new Date((Long)options.getJSONObject(0).get(DATE)); + + //get formatting pattern from android device (Will only have device specific formatting for short form of date) or options supplied + JSONObject datePattern = getDatePattern(options); + SimpleDateFormat fmt = new SimpleDateFormat(datePattern.getString("pattern")); + + //return formatted date + return obj.put("value",fmt.format(date)); + }catch(Exception ge){ + throw new GlobalizationError(GlobalizationError.FORMATTING_ERROR); + } + } + + /* + * @Description: Parses a date formatted as a string according to the client's user + * preferences and calendar using the time zone of the client and returns + * the corresponding date object + * @Return: JSONObject + * Object.year {Number}: The four digit year + * Object.month {Number}: The month from (0 - 11) + * Object.day {Number}: The day from (1 - 31) + * Object.hour {Number}: The hour from (0 - 23) + * Object.minute {Number}: The minute from (0 - 59) + * Object.second {Number}: The second from (0 - 59) + * Object.millisecond {Number}: The milliseconds (from 0 - 999), not available on all platforms * * @throws: GlobalizationError.PARSING_ERROR - */ - private JSONObject getStringtoDate(JSONArray options)throws GlobalizationError{ - JSONObject obj = new JSONObject(); - Date date; - try{ - //get format pattern from android device (Will only have device specific formatting for short form of date) or options supplied - DateFormat fmt = new SimpleDateFormat(getDatePattern(options).getString("pattern")); - - //attempt parsing string based on user preferences - date = fmt.parse(options.getJSONObject(0).get(DATESTRING).toString()); - - //set Android Time object - Time time = new Time(); - time.set(date.getTime()); - - //return properties; - obj.put("year", time.year); - obj.put("month", time.month); - obj.put("day", time.monthDay); - obj.put("hour", time.hour); - obj.put("minute", time.minute); - obj.put("second", time.second); - obj.put("millisecond", new Long(0)); - return obj; - }catch(Exception ge){ - throw new GlobalizationError(GlobalizationError.PARSING_ERROR); - } - } - - /* - * @Description: Returns a pattern string for formatting and parsing dates according to the client's - * user preferences. - * @Return: JSONObject - * - * Object.pattern {String}: The date and time pattern for formatting and parsing dates. - * The patterns follow Unicode Technical Standard #35 - * http://unicode.org/reports/tr35/tr35-4.html - * Object.timezone {String}: The abbreviated name of the time zone on the client - * Object.utc_offset {Number}: The current difference in seconds between the client's - * time zone and coordinated universal time. - * Object.dst_offset {Number}: The current daylight saving time offset in seconds - * between the client's non-daylight saving's time zone - * and the client's daylight saving's time zone. - * - * @throws: GlobalizationError.PATTERN_ERROR - */ - private JSONObject getDatePattern(JSONArray options) throws GlobalizationError{ - JSONObject obj = new JSONObject(); - - try{ - SimpleDateFormat fmtDate = (SimpleDateFormat)android.text.format.DateFormat.getDateFormat(this.cordova.getActivity()); //default user preference for date - SimpleDateFormat fmtTime = (SimpleDateFormat)android.text.format.DateFormat.getTimeFormat(this.cordova.getActivity()); //default user preference for time - - String fmt = fmtDate.toLocalizedPattern() + " " + fmtTime.toLocalizedPattern(); //default SHORT date/time format. ex. dd/MM/yyyy h:mm a - - //get Date value + options (if available) - if (options.getJSONObject(0).length() > 1){ - //options were included - - //get formatLength option - if (!((JSONObject)options.getJSONObject(0).get(OPTIONS)).isNull(FORMATLENGTH)){ - String fmtOpt = (String)((JSONObject)options.getJSONObject(0).get(OPTIONS)).get(FORMATLENGTH); - if (fmtOpt.equalsIgnoreCase(MEDIUM)){//medium - fmtDate = (SimpleDateFormat)android.text.format.DateFormat.getMediumDateFormat(this.cordova.getActivity()); - }else if (fmtOpt.equalsIgnoreCase(LONG) || fmtOpt.equalsIgnoreCase(FULL)){ //long/full - fmtDate = (SimpleDateFormat)android.text.format.DateFormat.getLongDateFormat(this.cordova.getActivity()); - } - } - - //return pattern type - fmt = fmtDate.toLocalizedPattern() + " " + fmtTime.toLocalizedPattern(); - if (!((JSONObject)options.getJSONObject(0).get(OPTIONS)).isNull(SELECTOR)){ - String selOpt = (String)((JSONObject)options.getJSONObject(0).get(OPTIONS)).get(SELECTOR); - if (selOpt.equalsIgnoreCase(DATE)){ - fmt = fmtDate.toLocalizedPattern(); - }else if (selOpt.equalsIgnoreCase(TIME)){ - fmt = fmtTime.toLocalizedPattern(); - } - } - } - - //TimeZone from users device - //TimeZone tz = Calendar.getInstance(Locale.getDefault()).getTimeZone(); //substitute method - TimeZone tz = TimeZone.getTimeZone(Time.getCurrentTimezone()); - - obj.put("pattern", fmt); - obj.put("timezone", tz.getDisplayName(tz.inDaylightTime(Calendar.getInstance().getTime()),TimeZone.SHORT)); - obj.put("utc_offset", tz.getRawOffset()/1000); - obj.put("dst_offset", tz.getDSTSavings()/1000); - return obj; - - }catch(Exception ge){ - throw new GlobalizationError(GlobalizationError.PATTERN_ERROR); - } - } - - /* - * @Description: Returns an array of either the names of the months or days of the week - * according to the client's user preferences and calendar - * @Return: JSONObject - * Object.value {Array{String}}: The array of names starting from either - * the first month in the year or the - * first day of the week. - * - * @throws: GlobalizationError.UNKNOWN_ERROR - */ - private JSONObject getDateNames(JSONArray options) throws GlobalizationError{ - JSONObject obj = new JSONObject(); - //String[] value; - JSONArray value = new JSONArray(); - List namesList = new ArrayList(); - final Map namesMap; // final needed for sorting with anonymous comparator - try{ - int type = 0; //default wide - int item = 0; //default months - - //get options if available - if (options.getJSONObject(0).length() > 0){ - //get type if available - if (!((JSONObject)options.getJSONObject(0).get(OPTIONS)).isNull(TYPE)){ - String t = (String)((JSONObject)options.getJSONObject(0).get(OPTIONS)).get(TYPE); - if (t.equalsIgnoreCase(NARROW)){type++;} //DateUtils.LENGTH_MEDIUM - } - //get item if available - if (!((JSONObject)options.getJSONObject(0).get(OPTIONS)).isNull(ITEM)){ - String t = (String)((JSONObject)options.getJSONObject(0).get(OPTIONS)).get(ITEM); - if (t.equalsIgnoreCase(DAYS)){item += 10;} //Days of week start at 1 - } - } - //determine return value - int method = item + type; - if (method == 1) { //months and narrow - namesMap = Calendar.getInstance().getDisplayNames(Calendar.MONTH, Calendar.SHORT, Locale.getDefault()); - } else if (method == 10) { //days and wide - namesMap = Calendar.getInstance().getDisplayNames(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.getDefault()); - } else if (method == 11) { //days and narrow - namesMap = Calendar.getInstance().getDisplayNames(Calendar.DAY_OF_WEEK, Calendar.SHORT, Locale.getDefault()); - } else { //default: months and wide - namesMap = Calendar.getInstance().getDisplayNames(Calendar.MONTH, Calendar.LONG, Locale.getDefault()); - } + */ + private JSONObject getStringtoDate(JSONArray options)throws GlobalizationError{ + JSONObject obj = new JSONObject(); + Date date; + try{ + //get format pattern from android device (Will only have device specific formatting for short form of date) or options supplied + DateFormat fmt = new SimpleDateFormat(getDatePattern(options).getString("pattern")); + + //attempt parsing string based on user preferences + date = fmt.parse(options.getJSONObject(0).get(DATESTRING).toString()); + + //set Android Time object + Time time = new Time(); + time.set(date.getTime()); + + //return properties; + obj.put("year", time.year); + obj.put("month", time.month); + obj.put("day", time.monthDay); + obj.put("hour", time.hour); + obj.put("minute", time.minute); + obj.put("second", time.second); + obj.put("millisecond", new Long(0)); + return obj; + }catch(Exception ge){ + throw new GlobalizationError(GlobalizationError.PARSING_ERROR); + } + } + + /* + * @Description: Returns a pattern string for formatting and parsing dates according to the client's + * user preferences. + * @Return: JSONObject + * + * Object.pattern {String}: The date and time pattern for formatting and parsing dates. + * The patterns follow Unicode Technical Standard #35 + * http://unicode.org/reports/tr35/tr35-4.html + * Object.timezone {String}: The abbreviated name of the time zone on the client + * Object.utc_offset {Number}: The current difference in seconds between the client's + * time zone and coordinated universal time. + * Object.dst_offset {Number}: The current daylight saving time offset in seconds + * between the client's non-daylight saving's time zone + * and the client's daylight saving's time zone. + * + * @throws: GlobalizationError.PATTERN_ERROR + */ + private JSONObject getDatePattern(JSONArray options) throws GlobalizationError{ + JSONObject obj = new JSONObject(); + + try{ + SimpleDateFormat fmtDate = (SimpleDateFormat)android.text.format.DateFormat.getDateFormat(this.cordova.getActivity()); //default user preference for date + SimpleDateFormat fmtTime = (SimpleDateFormat)android.text.format.DateFormat.getTimeFormat(this.cordova.getActivity()); //default user preference for time + + String fmt = fmtDate.toLocalizedPattern() + " " + fmtTime.toLocalizedPattern(); //default SHORT date/time format. ex. dd/MM/yyyy h:mm a + + //get Date value + options (if available) + if (options.getJSONObject(0).length() > 1){ + //options were included + + //get formatLength option + if (!((JSONObject)options.getJSONObject(0).get(OPTIONS)).isNull(FORMATLENGTH)){ + String fmtOpt = (String)((JSONObject)options.getJSONObject(0).get(OPTIONS)).get(FORMATLENGTH); + if (fmtOpt.equalsIgnoreCase(MEDIUM)){//medium + fmtDate = (SimpleDateFormat)android.text.format.DateFormat.getMediumDateFormat(this.cordova.getActivity()); + }else if (fmtOpt.equalsIgnoreCase(LONG) || fmtOpt.equalsIgnoreCase(FULL)){ //long/full + fmtDate = (SimpleDateFormat)android.text.format.DateFormat.getLongDateFormat(this.cordova.getActivity()); + } + } + + //return pattern type + fmt = fmtDate.toLocalizedPattern() + " " + fmtTime.toLocalizedPattern(); + if (!((JSONObject)options.getJSONObject(0).get(OPTIONS)).isNull(SELECTOR)){ + String selOpt = (String)((JSONObject)options.getJSONObject(0).get(OPTIONS)).get(SELECTOR); + if (selOpt.equalsIgnoreCase(DATE)){ + fmt = fmtDate.toLocalizedPattern(); + }else if (selOpt.equalsIgnoreCase(TIME)){ + fmt = fmtTime.toLocalizedPattern(); + } + } + } + + //TimeZone from users device + //TimeZone tz = Calendar.getInstance(Locale.getDefault()).getTimeZone(); //substitute method + TimeZone tz = TimeZone.getTimeZone(Time.getCurrentTimezone()); + + obj.put("pattern", fmt); + obj.put("timezone", tz.getDisplayName(tz.inDaylightTime(Calendar.getInstance().getTime()),TimeZone.SHORT)); + obj.put("utc_offset", tz.getRawOffset()/1000); + obj.put("dst_offset", tz.getDSTSavings()/1000); + return obj; + + }catch(Exception ge){ + throw new GlobalizationError(GlobalizationError.PATTERN_ERROR); + } + } + + /* + * @Description: Returns an array of either the names of the months or days of the week + * according to the client's user preferences and calendar + * @Return: JSONObject + * Object.value {Array{String}}: The array of names starting from either + * the first month in the year or the + * first day of the week. + * + * @throws: GlobalizationError.UNKNOWN_ERROR + */ + private JSONObject getDateNames(JSONArray options) throws GlobalizationError{ + JSONObject obj = new JSONObject(); + //String[] value; + JSONArray value = new JSONArray(); + List namesList = new ArrayList(); + final Map namesMap; // final needed for sorting with anonymous comparator + try{ + int type = 0; //default wide + int item = 0; //default months + + //get options if available + if (options.getJSONObject(0).length() > 0){ + //get type if available + if (!((JSONObject)options.getJSONObject(0).get(OPTIONS)).isNull(TYPE)){ + String t = (String)((JSONObject)options.getJSONObject(0).get(OPTIONS)).get(TYPE); + if (t.equalsIgnoreCase(NARROW)){type++;} //DateUtils.LENGTH_MEDIUM + } + //get item if available + if (!((JSONObject)options.getJSONObject(0).get(OPTIONS)).isNull(ITEM)){ + String t = (String)((JSONObject)options.getJSONObject(0).get(OPTIONS)).get(ITEM); + if (t.equalsIgnoreCase(DAYS)){item += 10;} //Days of week start at 1 + } + } + //determine return value + int method = item + type; + if (method == 1) { //months and narrow + namesMap = Calendar.getInstance().getDisplayNames(Calendar.MONTH, Calendar.SHORT, Locale.getDefault()); + } else if (method == 10) { //days and wide + namesMap = Calendar.getInstance().getDisplayNames(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.getDefault()); + } else if (method == 11) { //days and narrow + namesMap = Calendar.getInstance().getDisplayNames(Calendar.DAY_OF_WEEK, Calendar.SHORT, Locale.getDefault()); + } else { //default: months and wide + namesMap = Calendar.getInstance().getDisplayNames(Calendar.MONTH, Calendar.LONG, Locale.getDefault()); + } - // save names as a list - for(String name : namesMap.keySet()) { - namesList.add(name); - } - - // sort the list according to values in namesMap - Collections.sort(namesList, new Comparator() { - public int compare(String arg0, String arg1) { - return namesMap.get(arg0).compareTo(namesMap.get(arg1)); - } - }); - - // convert nameList into JSONArray of String objects - for (int i = 0; i < namesList.size(); i ++){ - value.put(namesList.get(i)); - } + // save names as a list + for(String name : namesMap.keySet()) { + namesList.add(name); + } + + // sort the list according to values in namesMap + Collections.sort(namesList, new Comparator() { + public int compare(String arg0, String arg1) { + return namesMap.get(arg0).compareTo(namesMap.get(arg1)); + } + }); + + // convert nameList into JSONArray of String objects + for (int i = 0; i < namesList.size(); i ++){ + value.put(namesList.get(i)); + } - //return array of names - return obj.put("value", value); - }catch(Exception ge){ - throw new GlobalizationError(GlobalizationError.UNKNOWN_ERROR); - } - } - - /* - * @Description: Returns whether daylight savings time is in effect for a given date using the client's - * time zone and calendar. - * @Return: JSONObject - * Object.dst {Boolean}: The value "true" indicates that daylight savings time is - * in effect for the given date and "false" indicate that it is not. * - * - * @throws: GlobalizationError.UNKNOWN_ERROR - */ - private JSONObject getIsDayLightSavingsTime(JSONArray options) throws GlobalizationError{ - JSONObject obj = new JSONObject(); - boolean dst = false; - try{ - Date date = new Date((Long)options.getJSONObject(0).get(DATE)); - //TimeZone tz = Calendar.getInstance(Locale.getDefault()).getTimeZone(); - TimeZone tz = TimeZone.getTimeZone(Time.getCurrentTimezone()); - dst = tz.inDaylightTime(date); //get daylight savings data from date object and user timezone settings - - return obj.put("dst",dst); - }catch(Exception ge){ - throw new GlobalizationError(GlobalizationError.UNKNOWN_ERROR); - } - } - - /* - * @Description: Returns the first day of the week according to the client's user preferences and calendar. - * The days of the week are numbered starting from 1 where 1 is considered to be Sunday. - * @Return: JSONObject - * Object.value {Number}: The number of the first day of the week. - * - * @throws: GlobalizationError.UNKNOWN_ERROR - */ - private JSONObject getFirstDayOfWeek(JSONArray options) throws GlobalizationError{ - JSONObject obj = new JSONObject(); - try{ - int value = Calendar.getInstance(Locale.getDefault()).getFirstDayOfWeek(); //get first day of week based on user locale settings - return obj.put("value", value); - }catch(Exception ge){ - throw new GlobalizationError(GlobalizationError.UNKNOWN_ERROR); - } - } - - /* - * @Description: Returns a number formatted as a string according to the client's user preferences. - * @Return: JSONObject - * Object.value {String}: The formatted number string. - * - * @throws: GlobalizationError.FORMATTING_ERROR - */ - private JSONObject getNumberToString(JSONArray options) throws GlobalizationError{ - JSONObject obj = new JSONObject(); - String value = ""; - try{ - DecimalFormat fmt = getNumberFormatInstance(options);//returns Decimal/Currency/Percent instance - value = fmt.format(options.getJSONObject(0).get(NUMBER)); - return obj.put("value", value); - }catch(Exception ge){ - throw new GlobalizationError(GlobalizationError.FORMATTING_ERROR); - } - } - - /* - * @Description: Parses a number formatted as a string according to the client's user preferences and - * returns the corresponding number. - * @Return: JSONObject - * Object.value {Number}: The parsed number. - * - * @throws: GlobalizationError.PARSING_ERROR - */ - private JSONObject getStringToNumber(JSONArray options) throws GlobalizationError{ - JSONObject obj = new JSONObject(); - Number value; - try{ - DecimalFormat fmt = getNumberFormatInstance(options); //returns Decimal/Currency/Percent instance - value = fmt.parse((String)options.getJSONObject(0).get(NUMBERSTRING)); - return obj.put("value", value); - }catch(Exception ge){ - throw new GlobalizationError(GlobalizationError.PARSING_ERROR); - } - } - - /* - * @Description: Returns a pattern string for formatting and parsing numbers according to the client's user - * preferences. - * @Return: JSONObject - * Object.pattern {String}: The number pattern for formatting and parsing numbers. - * The patterns follow Unicode Technical Standard #35. - * http://unicode.org/reports/tr35/tr35-4.html - * Object.symbol {String}: The symbol to be used when formatting and parsing - * e.g., percent or currency symbol. - * Object.fraction {Number}: The number of fractional digits to use when parsing and - * formatting numbers. - * Object.rounding {Number}: The rounding increment to use when parsing and formatting. - * Object.positive {String}: The symbol to use for positive numbers when parsing and formatting. - * Object.negative: {String}: The symbol to use for negative numbers when parsing and formatting. - * Object.decimal: {String}: The decimal symbol to use for parsing and formatting. - * Object.grouping: {String}: The grouping symbol to use for parsing and formatting. - * - * @throws: GlobalizationError.PATTERN_ERROR - */ - private JSONObject getNumberPattern(JSONArray options) throws GlobalizationError{ - JSONObject obj = new JSONObject(); - try{ - //uses java.text.DecimalFormat to format value - DecimalFormat fmt = (DecimalFormat) DecimalFormat.getInstance(Locale.getDefault()); //default format - String symbol = String.valueOf(fmt.getDecimalFormatSymbols().getDecimalSeparator()); - //get Date value + options (if available) - if (options.getJSONObject(0).length() > 0){ - //options were included - if (!((JSONObject)options.getJSONObject(0).get(OPTIONS)).isNull(TYPE)){ - String fmtOpt = (String)((JSONObject)options.getJSONObject(0).get(OPTIONS)).get(TYPE); - if (fmtOpt.equalsIgnoreCase(CURRENCY)){ - fmt = (DecimalFormat) DecimalFormat.getCurrencyInstance(Locale.getDefault()); - symbol = fmt.getDecimalFormatSymbols().getCurrencySymbol(); - }else if(fmtOpt.equalsIgnoreCase(PERCENT)){ - fmt = (DecimalFormat) DecimalFormat.getPercentInstance(Locale.getDefault()); - symbol = String.valueOf(fmt.getDecimalFormatSymbols().getPercent()); - } - } - } - - //return properties - obj.put("pattern", fmt.toPattern()); - obj.put("symbol", symbol); - obj.put("fraction", fmt.getMinimumFractionDigits()); - obj.put("rounding", new Integer(0)); - obj.put("positive", fmt.getPositivePrefix()); - obj.put("negative", fmt.getNegativePrefix()); - obj.put("decimal", String.valueOf(fmt.getDecimalFormatSymbols().getDecimalSeparator())); - obj.put("grouping", String.valueOf(fmt.getDecimalFormatSymbols().getGroupingSeparator())); - - return obj; - }catch(Exception ge){ - throw new GlobalizationError(GlobalizationError.PATTERN_ERROR); - } - } - - /* - * @Description: Returns a pattern string for formatting and parsing currency values according to the client's - * user preferences and ISO 4217 currency code. - * @Return: JSONObject - * Object.pattern {String}: The currency pattern for formatting and parsing currency values. - * The patterns follow Unicode Technical Standard #35 - * http://unicode.org/reports/tr35/tr35-4.html - * Object.code {String}: The ISO 4217 currency code for the pattern. - * Object.fraction {Number}: The number of fractional digits to use when parsing and - * formatting currency. - * Object.rounding {Number}: The rounding increment to use when parsing and formatting. - * Object.decimal: {String}: The decimal symbol to use for parsing and formatting. - * Object.grouping: {String}: The grouping symbol to use for parsing and formatting. - * - * @throws: GlobalizationError.FORMATTING_ERROR - */ - private JSONObject getCurrencyPattern(JSONArray options) throws GlobalizationError{ - JSONObject obj = new JSONObject(); - try{ - //get ISO 4217 currency code - String code = options.getJSONObject(0).getString(CURRENCYCODE); - - //uses java.text.DecimalFormat to format value - DecimalFormat fmt = (DecimalFormat) DecimalFormat.getCurrencyInstance(Locale.getDefault()); - - //set currency format - Currency currency = Currency.getInstance(code); - fmt.setCurrency(currency); - - //return properties - obj.put("pattern", fmt.toPattern()); - obj.put("code", currency.getCurrencyCode()); - obj.put("fraction", fmt.getMinimumFractionDigits()); - obj.put("rounding", new Integer(0)); - obj.put("decimal", String.valueOf(fmt.getDecimalFormatSymbols().getDecimalSeparator())); - obj.put("grouping", String.valueOf(fmt.getDecimalFormatSymbols().getGroupingSeparator())); - - return obj; - }catch(Exception ge){ - throw new GlobalizationError(GlobalizationError.FORMATTING_ERROR); - } - } - - /* - * @Description: Parses a JSONArray from user options and returns the correct Instance of Decimal/Percent/Currency. - * @Return: DecimalFormat : The Instance to use. - * - * @throws: JSONException - */ - private DecimalFormat getNumberFormatInstance(JSONArray options) throws JSONException{ - DecimalFormat fmt = (DecimalFormat)DecimalFormat.getInstance(Locale.getDefault()); //default format - try{ - if (options.getJSONObject(0).length() > 1){ - //options were included - if (!((JSONObject)options.getJSONObject(0).get(OPTIONS)).isNull(TYPE)){ - String fmtOpt = (String)((JSONObject)options.getJSONObject(0).get(OPTIONS)).get(TYPE); - if (fmtOpt.equalsIgnoreCase(CURRENCY)){ - fmt = (DecimalFormat)DecimalFormat.getCurrencyInstance(Locale.getDefault()); - }else if(fmtOpt.equalsIgnoreCase(PERCENT)){ - fmt = (DecimalFormat)DecimalFormat.getPercentInstance(Locale.getDefault()); - } - } - } - - }catch (JSONException je){} - return fmt; - } -} \ No newline at end of file + //return array of names + return obj.put("value", value); + }catch(Exception ge){ + throw new GlobalizationError(GlobalizationError.UNKNOWN_ERROR); + } + } + + /* + * @Description: Returns whether daylight savings time is in effect for a given date using the client's + * time zone and calendar. + * @Return: JSONObject + * Object.dst {Boolean}: The value "true" indicates that daylight savings time is + * in effect for the given date and "false" indicate that it is not. * + * + * @throws: GlobalizationError.UNKNOWN_ERROR + */ + private JSONObject getIsDayLightSavingsTime(JSONArray options) throws GlobalizationError{ + JSONObject obj = new JSONObject(); + boolean dst = false; + try{ + Date date = new Date((Long)options.getJSONObject(0).get(DATE)); + //TimeZone tz = Calendar.getInstance(Locale.getDefault()).getTimeZone(); + TimeZone tz = TimeZone.getTimeZone(Time.getCurrentTimezone()); + dst = tz.inDaylightTime(date); //get daylight savings data from date object and user timezone settings + + return obj.put("dst",dst); + }catch(Exception ge){ + throw new GlobalizationError(GlobalizationError.UNKNOWN_ERROR); + } + } + + /* + * @Description: Returns the first day of the week according to the client's user preferences and calendar. + * The days of the week are numbered starting from 1 where 1 is considered to be Sunday. + * @Return: JSONObject + * Object.value {Number}: The number of the first day of the week. + * + * @throws: GlobalizationError.UNKNOWN_ERROR + */ + private JSONObject getFirstDayOfWeek(JSONArray options) throws GlobalizationError{ + JSONObject obj = new JSONObject(); + try{ + int value = Calendar.getInstance(Locale.getDefault()).getFirstDayOfWeek(); //get first day of week based on user locale settings + return obj.put("value", value); + }catch(Exception ge){ + throw new GlobalizationError(GlobalizationError.UNKNOWN_ERROR); + } + } + + /* + * @Description: Returns a number formatted as a string according to the client's user preferences. + * @Return: JSONObject + * Object.value {String}: The formatted number string. + * + * @throws: GlobalizationError.FORMATTING_ERROR + */ + private JSONObject getNumberToString(JSONArray options) throws GlobalizationError{ + JSONObject obj = new JSONObject(); + String value = ""; + try{ + DecimalFormat fmt = getNumberFormatInstance(options);//returns Decimal/Currency/Percent instance + value = fmt.format(options.getJSONObject(0).get(NUMBER)); + return obj.put("value", value); + }catch(Exception ge){ + throw new GlobalizationError(GlobalizationError.FORMATTING_ERROR); + } + } + + /* + * @Description: Parses a number formatted as a string according to the client's user preferences and + * returns the corresponding number. + * @Return: JSONObject + * Object.value {Number}: The parsed number. + * + * @throws: GlobalizationError.PARSING_ERROR + */ + private JSONObject getStringToNumber(JSONArray options) throws GlobalizationError{ + JSONObject obj = new JSONObject(); + Number value; + try{ + DecimalFormat fmt = getNumberFormatInstance(options); //returns Decimal/Currency/Percent instance + value = fmt.parse((String)options.getJSONObject(0).get(NUMBERSTRING)); + return obj.put("value", value); + }catch(Exception ge){ + throw new GlobalizationError(GlobalizationError.PARSING_ERROR); + } + } + + /* + * @Description: Returns a pattern string for formatting and parsing numbers according to the client's user + * preferences. + * @Return: JSONObject + * Object.pattern {String}: The number pattern for formatting and parsing numbers. + * The patterns follow Unicode Technical Standard #35. + * http://unicode.org/reports/tr35/tr35-4.html + * Object.symbol {String}: The symbol to be used when formatting and parsing + * e.g., percent or currency symbol. + * Object.fraction {Number}: The number of fractional digits to use when parsing and + * formatting numbers. + * Object.rounding {Number}: The rounding increment to use when parsing and formatting. + * Object.positive {String}: The symbol to use for positive numbers when parsing and formatting. + * Object.negative: {String}: The symbol to use for negative numbers when parsing and formatting. + * Object.decimal: {String}: The decimal symbol to use for parsing and formatting. + * Object.grouping: {String}: The grouping symbol to use for parsing and formatting. + * + * @throws: GlobalizationError.PATTERN_ERROR + */ + private JSONObject getNumberPattern(JSONArray options) throws GlobalizationError{ + JSONObject obj = new JSONObject(); + try{ + //uses java.text.DecimalFormat to format value + DecimalFormat fmt = (DecimalFormat) DecimalFormat.getInstance(Locale.getDefault()); //default format + String symbol = String.valueOf(fmt.getDecimalFormatSymbols().getDecimalSeparator()); + //get Date value + options (if available) + if (options.getJSONObject(0).length() > 0){ + //options were included + if (!((JSONObject)options.getJSONObject(0).get(OPTIONS)).isNull(TYPE)){ + String fmtOpt = (String)((JSONObject)options.getJSONObject(0).get(OPTIONS)).get(TYPE); + if (fmtOpt.equalsIgnoreCase(CURRENCY)){ + fmt = (DecimalFormat) DecimalFormat.getCurrencyInstance(Locale.getDefault()); + symbol = fmt.getDecimalFormatSymbols().getCurrencySymbol(); + }else if(fmtOpt.equalsIgnoreCase(PERCENT)){ + fmt = (DecimalFormat) DecimalFormat.getPercentInstance(Locale.getDefault()); + symbol = String.valueOf(fmt.getDecimalFormatSymbols().getPercent()); + } + } + } + + //return properties + obj.put("pattern", fmt.toPattern()); + obj.put("symbol", symbol); + obj.put("fraction", fmt.getMinimumFractionDigits()); + obj.put("rounding", new Integer(0)); + obj.put("positive", fmt.getPositivePrefix()); + obj.put("negative", fmt.getNegativePrefix()); + obj.put("decimal", String.valueOf(fmt.getDecimalFormatSymbols().getDecimalSeparator())); + obj.put("grouping", String.valueOf(fmt.getDecimalFormatSymbols().getGroupingSeparator())); + + return obj; + }catch(Exception ge){ + throw new GlobalizationError(GlobalizationError.PATTERN_ERROR); + } + } + + /* + * @Description: Returns a pattern string for formatting and parsing currency values according to the client's + * user preferences and ISO 4217 currency code. + * @Return: JSONObject + * Object.pattern {String}: The currency pattern for formatting and parsing currency values. + * The patterns follow Unicode Technical Standard #35 + * http://unicode.org/reports/tr35/tr35-4.html + * Object.code {String}: The ISO 4217 currency code for the pattern. + * Object.fraction {Number}: The number of fractional digits to use when parsing and + * formatting currency. + * Object.rounding {Number}: The rounding increment to use when parsing and formatting. + * Object.decimal: {String}: The decimal symbol to use for parsing and formatting. + * Object.grouping: {String}: The grouping symbol to use for parsing and formatting. + * + * @throws: GlobalizationError.FORMATTING_ERROR + */ + private JSONObject getCurrencyPattern(JSONArray options) throws GlobalizationError{ + JSONObject obj = new JSONObject(); + try{ + //get ISO 4217 currency code + String code = options.getJSONObject(0).getString(CURRENCYCODE); + + //uses java.text.DecimalFormat to format value + DecimalFormat fmt = (DecimalFormat) DecimalFormat.getCurrencyInstance(Locale.getDefault()); + + //set currency format + Currency currency = Currency.getInstance(code); + fmt.setCurrency(currency); + + //return properties + obj.put("pattern", fmt.toPattern()); + obj.put("code", currency.getCurrencyCode()); + obj.put("fraction", fmt.getMinimumFractionDigits()); + obj.put("rounding", new Integer(0)); + obj.put("decimal", String.valueOf(fmt.getDecimalFormatSymbols().getDecimalSeparator())); + obj.put("grouping", String.valueOf(fmt.getDecimalFormatSymbols().getGroupingSeparator())); + + return obj; + }catch(Exception ge){ + throw new GlobalizationError(GlobalizationError.FORMATTING_ERROR); + } + } + + /* + * @Description: Parses a JSONArray from user options and returns the correct Instance of Decimal/Percent/Currency. + * @Return: DecimalFormat : The Instance to use. + * + * @throws: JSONException + */ + private DecimalFormat getNumberFormatInstance(JSONArray options) throws JSONException{ + DecimalFormat fmt = (DecimalFormat)DecimalFormat.getInstance(Locale.getDefault()); //default format + try{ + if (options.getJSONObject(0).length() > 1){ + //options were included + if (!((JSONObject)options.getJSONObject(0).get(OPTIONS)).isNull(TYPE)){ + String fmtOpt = (String)((JSONObject)options.getJSONObject(0).get(OPTIONS)).get(TYPE); + if (fmtOpt.equalsIgnoreCase(CURRENCY)){ + fmt = (DecimalFormat)DecimalFormat.getCurrencyInstance(Locale.getDefault()); + }else if(fmtOpt.equalsIgnoreCase(PERCENT)){ + fmt = (DecimalFormat)DecimalFormat.getPercentInstance(Locale.getDefault()); + } + } + } + + }catch (JSONException je){} + return fmt; + } +} http://git-wip-us.apache.org/repos/asf/incubator-cordova-android/blob/34840175/framework/src/org/apache/cordova/GlobalizationError.java ---------------------------------------------------------------------- diff --git a/framework/src/org/apache/cordova/GlobalizationError.java b/framework/src/org/apache/cordova/GlobalizationError.java index c831845..5c1b09e 100644 --- a/framework/src/org/apache/cordova/GlobalizationError.java +++ b/framework/src/org/apache/cordova/GlobalizationError.java @@ -1,41 +1,60 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +*/ + package org.apache.cordova; /** * @description Exception class representing defined Globalization error codes * @Globalization error codes: - * GlobalizationError.UNKNOWN_ERROR = 0; - * GlobalizationError.FORMATTING_ERROR = 1; - * GlobalizationError.PARSING_ERROR = 2; - * GlobalizationError.PATTERN_ERROR = 3; + * GlobalizationError.UNKNOWN_ERROR = 0; + * GlobalizationError.FORMATTING_ERROR = 1; + * GlobalizationError.PARSING_ERROR = 2; + * GlobalizationError.PATTERN_ERROR = 3; */ public class GlobalizationError extends Exception{ - /** - * - */ - private static final long serialVersionUID = 1L; - public static final String UNKNOWN_ERROR = "UNKNOWN_ERROR"; - public static final String FORMATTING_ERROR = "FORMATTING_ERROR"; - public static final String PARSING_ERROR = "PARSING_ERROR"; - public static final String PATTERN_ERROR = "PATTERN_ERROR"; - - int error = 0; //default unknown error thrown - /** + /** + * + */ + private static final long serialVersionUID = 1L; + public static final String UNKNOWN_ERROR = "UNKNOWN_ERROR"; + public static final String FORMATTING_ERROR = "FORMATTING_ERROR"; + public static final String PARSING_ERROR = "PARSING_ERROR"; + public static final String PATTERN_ERROR = "PATTERN_ERROR"; + + int error = 0; //default unknown error thrown + /** * Default constructor */ public GlobalizationError() {} - /** + /** * Create an exception returning an error code * * @param s */ - public GlobalizationError(String s) { - if (s.equalsIgnoreCase(FORMATTING_ERROR)){ - error = 1; + public GlobalizationError(String s) { + if (s.equalsIgnoreCase(FORMATTING_ERROR)){ + error = 1; }else if (s.equalsIgnoreCase(PARSING_ERROR)){ - error = 2; + error = 2; }else if (s.equalsIgnoreCase(PATTERN_ERROR)){ - error = 3; - } + error = 3; + } } /** * get error string based on error code @@ -43,30 +62,30 @@ public class GlobalizationError extends Exception{ * @param String msg */ public String getErrorString(){ - String msg = ""; - switch (error){ - case 0: - msg = UNKNOWN_ERROR; - break; - case 1: - msg = FORMATTING_ERROR; - break; - case 2: - msg = PARSING_ERROR; - break; - case 3: - msg = PATTERN_ERROR; - break; - } - return msg; + String msg = ""; + switch (error){ + case 0: + msg = UNKNOWN_ERROR; + break; + case 1: + msg = FORMATTING_ERROR; + break; + case 2: + msg = PARSING_ERROR; + break; + case 3: + msg = PATTERN_ERROR; + break; + } + return msg; } /** * get error code * * @param String msg */ - public int getErrorCode(){ - return error; + public int getErrorCode(){ + return error; } -} \ No newline at end of file +}