From 1d3a9958dfbbbff41a72b9f57a784230d8553350 Mon Sep 17 00:00:00 2001 From: Peter Edberg Date: Fri, 16 Feb 2018 19:17:27 +0000 Subject: [PATCH] ICU-12740 getFieldDisplayName J initial implementation & tests; TODO: C++ tests, impl cleanup? X-SVN-Rev: 40940 --- .../icu/text/DateTimePatternGenerator.java | 133 +++++++++++++++--- .../icu/dev/test/format/DateFormatTest.java | 3 +- .../test/format/DateTimeGeneratorTest.java | 44 +++++- 3 files changed, 160 insertions(+), 20 deletions(-) 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 77f24bf980c..52a9ae819c8 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 @@ -217,13 +217,22 @@ public class DateTimePatternGenerator implements Freezable= 0) { + fieldDisplayNames[field][width.ordinal()] = value; + } + } + + /** + * The general interface to get a display name for a particular date/time field, + * in one of several possible display widths. + * + * @param field The field type, such as ERA. + * @param width The desired DisplayWidth, such as DisplayWidth.ABBREVIATED. + * @return. The display name for the field + * @draft ICU 61 + */ + public String getFieldDisplayName(int field, DisplayWidth width) { + if (field >= TYPE_LIMIT || field < 0) { + return ""; + } + return fieldDisplayNames[field][width.ordinal()]; } /** @@ -1294,7 +1391,7 @@ public class DateTimePatternGenerator implements Freezable) skeleton2pattern.clone(); result.basePattern_pattern = (TreeMap) basePattern_pattern.clone(); result.appendItemFormats = appendItemFormats.clone(); - result.appendItemNames = appendItemNames.clone(); + result.fieldDisplayNames = fieldDisplayNames.clone(); result.current = new DateTimeMatcher(); result.fp = new FormatParser(); result._distanceInfo = new DistanceInfo(); @@ -1796,7 +1893,7 @@ public class DateTimePatternGenerator implements Freezable