From 4a17aa27fefccdce54fa243cd22c9f6ce11c0b9c Mon Sep 17 00:00:00 2001 From: Peter Edberg Date: Thu, 23 Feb 2012 20:42:16 +0000 Subject: [PATCH] ICU-7727 Complete for DateIntervalInfo.java (J) X-SVN-Rev: 31496 --- .../com/ibm/icu/text/DateIntervalInfo.java | 32 +++++++++---------- .../icu/text/DateTimePatternGenerator.java | 8 ++--- 2 files changed, 19 insertions(+), 21 deletions(-) diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/DateIntervalInfo.java b/icu4j/main/classes/core/src/com/ibm/icu/text/DateIntervalInfo.java index b74d0630c9c..04afe09ebe0 100644 --- a/icu4j/main/classes/core/src/com/ibm/icu/text/DateIntervalInfo.java +++ b/icu4j/main/classes/core/src/com/ibm/icu/text/DateIntervalInfo.java @@ -1,6 +1,6 @@ /* ******************************************************************************* - * Copyright (C) 2008-2011, International Business Machines Corporation and * + * Copyright (C) 2008-2012, International Business Machines Corporation and * * others. All Rights Reserved. * ******************************************************************************* */ @@ -364,7 +364,7 @@ public class DateIntervalInfo implements Cloneable, Freezable, try { // loop through all locales to get all available skeletons' // interval format - ULocale parentLocale = locale; + ULocale currentLocale = locale; // Get the correct calendar type String calendarTypeToUse = locale.getKeywordValue("calendar"); if ( calendarTypeToUse == null ) { @@ -375,21 +375,17 @@ public class DateIntervalInfo implements Cloneable, Freezable, calendarTypeToUse = "gregorian"; // fallback } do { - String name = parentLocale.getName(); + String name = currentLocale.getName(); if ( name.length() == 0 ) { break; } - ICUResourceBundle rb = (ICUResourceBundle) UResourceBundle. - getBundleInstance(ICUResourceBundle.ICU_BASE_NAME,locale); - rb = rb.getWithFallback("calendar"); - ICUResourceBundle calTypeBundle = rb.getWithFallback( - calendarTypeToUse); - ICUResourceBundle itvDtPtnResource =calTypeBundle. - getWithFallback("intervalFormats"); + ICUResourceBundle rb = (ICUResourceBundle) UResourceBundle.getBundleInstance(ICUResourceBundle.ICU_BASE_NAME,currentLocale); + ICUResourceBundle calBundle = rb.getWithFallback("calendar"); + ICUResourceBundle calTypeBundle = calBundle.getWithFallback(calendarTypeToUse); + ICUResourceBundle itvDtPtnResource =calTypeBundle.getWithFallback("intervalFormats"); // look for fallback first, since it establishes the default order - String fallback = itvDtPtnResource.getStringWithFallback( - FALLBACK_STRING); + String fallback = itvDtPtnResource.getStringWithFallback(FALLBACK_STRING); setFallbackIntervalPattern(fallback); int size = itvDtPtnResource.getSize(); for ( int index = 0; index < size; ++index ) { @@ -401,8 +397,7 @@ public class DateIntervalInfo implements Cloneable, Freezable, if ( skeleton.compareTo(FALLBACK_STRING) == 0 ) { continue; } - ICUResourceBundle intervalPatterns = - itvDtPtnResource.getWithFallback(skeleton); + ICUResourceBundle intervalPatterns =itvDtPtnResource.getWithFallback(skeleton); int ptnNum = intervalPatterns.getSize(); for ( int ptnIndex = 0; ptnIndex < ptnNum; ++ptnIndex) { String key = intervalPatterns.get(ptnIndex).getKey(); @@ -428,8 +423,13 @@ public class DateIntervalInfo implements Cloneable, Freezable, } } } - parentLocale = parentLocale.getFallback(); - } while (parentLocale != null && !parentLocale.equals(ULocale.ROOT)); + try { + UResourceBundle parentNameBundle = rb.get("%%Parent"); + currentLocale = new ULocale(parentNameBundle.getString()); + } catch (MissingResourceException e) { + currentLocale = currentLocale.getFallback(); + } + } while (currentLocale != null && !currentLocale.getBaseName().equals("root")); } catch ( MissingResourceException e) { // ok, will fallback to {data0} - {date1} } diff --git a/icu4j/main/classes/core/src/com/ibm/icu/text/DateTimePatternGenerator.java b/icu4j/main/classes/core/src/com/ibm/icu/text/DateTimePatternGenerator.java index 4907557357d..94778bddf0f 100644 --- a/icu4j/main/classes/core/src/com/ibm/icu/text/DateTimePatternGenerator.java +++ b/icu4j/main/classes/core/src/com/ibm/icu/text/DateTimePatternGenerator.java @@ -237,13 +237,11 @@ public class DateTimePatternGenerator implements Freezable