]> gitweb.fperrin.net Git - Dictionary.git/blob - jars/icu4j-52_1/main/classes/localespi/src/com/ibm/icu/impl/javaspi/text/DateFormatProviderICU.java
Upgrade ICU4J.
[Dictionary.git] / jars / icu4j-52_1 / main / classes / localespi / src / com / ibm / icu / impl / javaspi / text / DateFormatProviderICU.java
1 /*
2  *******************************************************************************
3  * Copyright (C) 2008-2012, International Business Machines Corporation and    *
4  * others. All Rights Reserved.                                                *
5  *******************************************************************************
6  */
7 package com.ibm.icu.impl.javaspi.text;
8
9 import java.text.DateFormat;
10 import java.text.spi.DateFormatProvider;
11 import java.util.Locale;
12
13 import com.ibm.icu.impl.javaspi.ICULocaleServiceProvider;
14 import com.ibm.icu.impl.jdkadapter.SimpleDateFormatICU;
15 import com.ibm.icu.util.ULocale;
16
17 public class DateFormatProviderICU extends DateFormatProvider {
18
19     private static final int NONE = -1;
20
21     @Override
22     public DateFormat getDateInstance(int style, Locale locale) {
23         return getInstance(style, NONE, locale);
24     }
25
26     @Override
27     public DateFormat getDateTimeInstance(int dateStyle, int timeStyle, Locale locale) {
28         return getInstance(dateStyle, timeStyle, locale);
29     }
30
31     @Override
32     public DateFormat getTimeInstance(int style, Locale locale) {
33         return getInstance(NONE, style, locale);
34     }
35
36     @Override
37     public Locale[] getAvailableLocales() {
38         return ICULocaleServiceProvider.getAvailableLocales();
39     }
40
41     private DateFormat getInstance(int dstyle, int tstyle, Locale locale) {
42         com.ibm.icu.text.DateFormat icuDfmt;
43         ULocale actual = ICULocaleServiceProvider.toULocaleNoSpecialVariant(locale);
44         if (dstyle == NONE) {
45             icuDfmt = com.ibm.icu.text.DateFormat.getTimeInstance(tstyle, actual);
46         } else if (tstyle == NONE) {
47             icuDfmt = com.ibm.icu.text.DateFormat.getDateInstance(dstyle, actual);
48         } else {
49             icuDfmt = com.ibm.icu.text.DateFormat.getDateTimeInstance(dstyle, tstyle, actual);
50         }
51         if (!(icuDfmt instanceof com.ibm.icu.text.SimpleDateFormat)) {
52             // icuDfmt must be always SimpleDateFormat
53             return null;
54         }
55
56         return SimpleDateFormatICU.wrap((com.ibm.icu.text.SimpleDateFormat)icuDfmt);
57     }
58 }