类java.util.spi.TimeZoneNameProvider源码实例Demo

下面列出了怎么用java.util.spi.TimeZoneNameProvider的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: dragonwell8_jdk   文件: TimeZoneNameUtility.java
private static String[][] loadZoneStrings(Locale locale) {
    // If the provider is a TimeZoneNameProviderImpl, call its getZoneStrings
    // in order to avoid per-ID retrieval.
    LocaleProviderAdapter adapter = LocaleProviderAdapter.getAdapter(TimeZoneNameProvider.class, locale);
    TimeZoneNameProvider provider = adapter.getTimeZoneNameProvider();
    if (provider instanceof TimeZoneNameProviderImpl) {
        return ((TimeZoneNameProviderImpl)provider).getZoneStrings(locale);
    }

    // Performs per-ID retrieval.
    Set<String> zoneIDs = LocaleProviderAdapter.forJRE().getLocaleResources(locale).getZoneIDs();
    List<String[]> zones = new LinkedList<>();
    for (String key : zoneIDs) {
        String[] names = retrieveDisplayNamesImpl(key, locale);
        if (names != null) {
            zones.add(names);
        }
    }

    String[][] zonesArray = new String[zones.size()][];
    return zones.toArray(zonesArray);
}
 
源代码2 项目: jdk8u-dev-jdk   文件: TimeZoneNameUtility.java
private static String getName(TimeZoneNameProvider timeZoneNameProvider,
                              Locale locale, String requestID, int style, String tzid) {
    String value = null;
    switch (requestID) {
    case "std":
        value = timeZoneNameProvider.getDisplayName(tzid, false, style, locale);
        break;
    case "dst":
        value = timeZoneNameProvider.getDisplayName(tzid, true, style, locale);
        break;
    case "generic":
        value = timeZoneNameProvider.getGenericDisplayName(tzid, style, locale);
        break;
    }
    return value;
}
 
源代码3 项目: openjdk-8-source   文件: TimeZoneNameUtility.java
private static String examineAliases(TimeZoneNameProvider tznp, Locale locale,
                                     String requestID, String tzid, int style,
                                     Map<String, String> aliases) {
    if (aliases.containsValue(tzid)) {
        for (Map.Entry<String, String> entry : aliases.entrySet()) {
            if (entry.getValue().equals(tzid)) {
                String alias = entry.getKey();
                String name = getName(tznp, locale, requestID, style, alias);
                if (name != null) {
                    return name;
                }
                name = examineAliases(tznp, locale, requestID, alias, style, aliases);
                if (name != null) {
                    return name;
                }
            }
        }
    }
    return null;
}
 
源代码4 项目: openjdk-8   文件: TimeZoneNameUtility.java
private static String[][] loadZoneStrings(Locale locale) {
    // If the provider is a TimeZoneNameProviderImpl, call its getZoneStrings
    // in order to avoid per-ID retrieval.
    LocaleProviderAdapter adapter = LocaleProviderAdapter.getAdapter(TimeZoneNameProvider.class, locale);
    TimeZoneNameProvider provider = adapter.getTimeZoneNameProvider();
    if (provider instanceof TimeZoneNameProviderImpl) {
        return ((TimeZoneNameProviderImpl)provider).getZoneStrings(locale);
    }

    // Performs per-ID retrieval.
    Set<String> zoneIDs = LocaleProviderAdapter.forJRE().getLocaleResources(locale).getZoneIDs();
    List<String[]> zones = new LinkedList<>();
    for (String key : zoneIDs) {
        String[] names = retrieveDisplayNamesImpl(key, locale);
        if (names != null) {
            zones.add(names);
        }
    }

    String[][] zonesArray = new String[zones.size()][];
    return zones.toArray(zonesArray);
}
 
源代码5 项目: jdk8u_jdk   文件: TimeZoneNameUtility.java
private static String[][] loadZoneStrings(Locale locale) {
    // If the provider is a TimeZoneNameProviderImpl, call its getZoneStrings
    // in order to avoid per-ID retrieval.
    LocaleProviderAdapter adapter = LocaleProviderAdapter.getAdapter(TimeZoneNameProvider.class, locale);
    TimeZoneNameProvider provider = adapter.getTimeZoneNameProvider();
    if (provider instanceof TimeZoneNameProviderImpl) {
        return ((TimeZoneNameProviderImpl)provider).getZoneStrings(locale);
    }

    // Performs per-ID retrieval.
    Set<String> zoneIDs = LocaleProviderAdapter.forJRE().getLocaleResources(locale).getZoneIDs();
    List<String[]> zones = new LinkedList<>();
    for (String key : zoneIDs) {
        String[] names = retrieveDisplayNamesImpl(key, locale);
        if (names != null) {
            zones.add(names);
        }
    }

    String[][] zonesArray = new String[zones.size()][];
    return zones.toArray(zonesArray);
}
 
源代码6 项目: TencentKona-8   文件: TimeZoneNameUtility.java
@Override
public String getObject(TimeZoneNameProvider timeZoneNameProvider,
                        Locale locale,
                        String requestID,
                        Object... params) {
    assert params.length == 2;
    int style = (int) params[0];
    String tzid = (String) params[1];
    String value = getName(timeZoneNameProvider, locale, requestID, style, tzid);
    if (value == null) {
        Map<String, String> aliases = ZoneInfo.getAliasTable();
        if (aliases != null) {
            String canonicalID = aliases.get(tzid);
            if (canonicalID != null) {
                value = getName(timeZoneNameProvider, locale, requestID, style, canonicalID);
            }
            if (value == null) {
                value = examineAliases(timeZoneNameProvider, locale, requestID,
                             canonicalID != null ? canonicalID : tzid, style, aliases);
            }
        }
    }

    return value;
}
 
源代码7 项目: TencentKona-8   文件: TimeZoneNameUtility.java
private static String examineAliases(TimeZoneNameProvider tznp, Locale locale,
                                     String requestID, String tzid, int style,
                                     Map<String, String> aliases) {
    for (Map.Entry<String, String> entry : aliases.entrySet()) {
        if (entry.getValue().equals(tzid)) {
            String alias = entry.getKey();
            String name = getName(tznp, locale, requestID, style, alias);
            if (name != null) {
                return name;
            }
            name = examineAliases(tznp, locale, requestID, alias, style, aliases);
            if (name != null) {
                return name;
            }
        }
    }
    return null;
}
 
源代码8 项目: TencentKona-8   文件: TimeZoneNameUtility.java
private static String getName(TimeZoneNameProvider timeZoneNameProvider,
                              Locale locale, String requestID, int style, String tzid) {
    String value = null;
    switch (requestID) {
    case "std":
        value = timeZoneNameProvider.getDisplayName(tzid, false, style, locale);
        break;
    case "dst":
        value = timeZoneNameProvider.getDisplayName(tzid, true, style, locale);
        break;
    case "generic":
        value = timeZoneNameProvider.getGenericDisplayName(tzid, style, locale);
        break;
    }
    return value;
}
 
源代码9 项目: hottub   文件: TimeZoneNameUtility.java
private static String examineAliases(TimeZoneNameProvider tznp, Locale locale,
                                     String requestID, String tzid, int style,
                                     Map<String, String> aliases) {
    for (Map.Entry<String, String> entry : aliases.entrySet()) {
        if (entry.getValue().equals(tzid)) {
            String alias = entry.getKey();
            String name = getName(tznp, locale, requestID, style, alias);
            if (name != null) {
                return name;
            }
            name = examineAliases(tznp, locale, requestID, alias, style, aliases);
            if (name != null) {
                return name;
            }
        }
    }
    return null;
}
 
源代码10 项目: openjdk-8-source   文件: TimeZoneNameUtility.java
private static String[][] loadZoneStrings(Locale locale) {
    // If the provider is a TimeZoneNameProviderImpl, call its getZoneStrings
    // in order to avoid per-ID retrieval.
    LocaleProviderAdapter adapter = LocaleProviderAdapter.getAdapter(TimeZoneNameProvider.class, locale);
    TimeZoneNameProvider provider = adapter.getTimeZoneNameProvider();
    if (provider instanceof TimeZoneNameProviderImpl) {
        return ((TimeZoneNameProviderImpl)provider).getZoneStrings(locale);
    }

    // Performs per-ID retrieval.
    Set<String> zoneIDs = LocaleProviderAdapter.forJRE().getLocaleResources(locale).getZoneIDs();
    List<String[]> zones = new LinkedList<>();
    for (String key : zoneIDs) {
        String[] names = retrieveDisplayNamesImpl(key, locale);
        if (names != null) {
            zones.add(names);
        }
    }

    String[][] zonesArray = new String[zones.size()][];
    return zones.toArray(zonesArray);
}
 
源代码11 项目: jdk8u-jdk   文件: TimeZoneNameUtility.java
private static String examineAliases(TimeZoneNameProvider tznp, Locale locale,
                                     String requestID, String tzid, int style,
                                     Map<String, String> aliases) {
    for (Map.Entry<String, String> entry : aliases.entrySet()) {
        if (entry.getValue().equals(tzid)) {
            String alias = entry.getKey();
            String name = getName(tznp, locale, requestID, style, alias);
            if (name != null) {
                return name;
            }
            name = examineAliases(tznp, locale, requestID, alias, style, aliases);
            if (name != null) {
                return name;
            }
        }
    }
    return null;
}
 
源代码12 项目: jdk8u60   文件: TimeZoneNameUtility.java
private static String examineAliases(TimeZoneNameProvider tznp, Locale locale,
                                     String requestID, String tzid, int style,
                                     Map<String, String> aliases) {
    for (Map.Entry<String, String> entry : aliases.entrySet()) {
        if (entry.getValue().equals(tzid)) {
            String alias = entry.getKey();
            String name = getName(tznp, locale, requestID, style, alias);
            if (name != null) {
                return name;
            }
            name = examineAliases(tznp, locale, requestID, alias, style, aliases);
            if (name != null) {
                return name;
            }
        }
    }
    return null;
}
 
源代码13 项目: jdk8u60   文件: TimeZoneNameUtility.java
private static String getName(TimeZoneNameProvider timeZoneNameProvider,
                              Locale locale, String requestID, int style, String tzid) {
    String value = null;
    switch (requestID) {
    case "std":
        value = timeZoneNameProvider.getDisplayName(tzid, false, style, locale);
        break;
    case "dst":
        value = timeZoneNameProvider.getDisplayName(tzid, true, style, locale);
        break;
    case "generic":
        value = timeZoneNameProvider.getGenericDisplayName(tzid, style, locale);
        break;
    }
    return value;
}
 
源代码14 项目: openjdk-8-source   文件: TimeZoneNameUtility.java
@Override
public String getObject(TimeZoneNameProvider timeZoneNameProvider,
                        Locale locale,
                        String requestID,
                        Object... params) {
    assert params.length == 2;
    int style = (int) params[0];
    String tzid = (String) params[1];
    String value = getName(timeZoneNameProvider, locale, requestID, style, tzid);
    if (value == null) {
        Map<String, String> aliases = ZoneInfo.getAliasTable();
        if (aliases != null) {
            String canonicalID = aliases.get(tzid);
            if (canonicalID != null) {
                value = getName(timeZoneNameProvider, locale, requestID, style, canonicalID);
            }
            if (value == null) {
                value = examineAliases(timeZoneNameProvider, locale, requestID,
                             canonicalID != null ? canonicalID : tzid, style, aliases);
            }
        }
    }

    return value;
}
 
源代码15 项目: openjdk-jdk8u   文件: TimeZoneNameUtility.java
@Override
public String getObject(TimeZoneNameProvider timeZoneNameProvider,
                        Locale locale,
                        String requestID,
                        Object... params) {
    assert params.length == 2;
    int style = (int) params[0];
    String tzid = (String) params[1];
    String value = getName(timeZoneNameProvider, locale, requestID, style, tzid);
    if (value == null) {
        Map<String, String> aliases = ZoneInfo.getAliasTable();
        if (aliases != null) {
            String canonicalID = aliases.get(tzid);
            if (canonicalID != null) {
                value = getName(timeZoneNameProvider, locale, requestID, style, canonicalID);
            }
            if (value == null) {
                value = examineAliases(timeZoneNameProvider, locale, requestID,
                             canonicalID != null ? canonicalID : tzid, style, aliases);
            }
        }
    }

    return value;
}
 
源代码16 项目: openjdk-jdk8u   文件: TimeZoneNameUtility.java
private static String examineAliases(TimeZoneNameProvider tznp, Locale locale,
                                     String requestID, String tzid, int style,
                                     Map<String, String> aliases) {
    for (Map.Entry<String, String> entry : aliases.entrySet()) {
        if (entry.getValue().equals(tzid)) {
            String alias = entry.getKey();
            String name = getName(tznp, locale, requestID, style, alias);
            if (name != null) {
                return name;
            }
            name = examineAliases(tznp, locale, requestID, alias, style, aliases);
            if (name != null) {
                return name;
            }
        }
    }
    return null;
}
 
源代码17 项目: jdk8u-jdk   文件: TimeZoneNameUtility.java
private static String getName(TimeZoneNameProvider timeZoneNameProvider,
                              Locale locale, String requestID, int style, String tzid) {
    String value = null;
    switch (requestID) {
    case "std":
        value = timeZoneNameProvider.getDisplayName(tzid, false, style, locale);
        break;
    case "dst":
        value = timeZoneNameProvider.getDisplayName(tzid, true, style, locale);
        break;
    case "generic":
        value = timeZoneNameProvider.getGenericDisplayName(tzid, style, locale);
        break;
    }
    return value;
}
 
源代码18 项目: openjdk-jdk8u-backup   文件: TimeZoneNameUtility.java
private static String getName(TimeZoneNameProvider timeZoneNameProvider,
                              Locale locale, String requestID, int style, String tzid) {
    String value = null;
    switch (requestID) {
    case "std":
        value = timeZoneNameProvider.getDisplayName(tzid, false, style, locale);
        break;
    case "dst":
        value = timeZoneNameProvider.getDisplayName(tzid, true, style, locale);
        break;
    case "generic":
        value = timeZoneNameProvider.getGenericDisplayName(tzid, style, locale);
        break;
    }
    return value;
}
 
源代码19 项目: hottub   文件: TimeZoneNameUtility.java
private static String[][] loadZoneStrings(Locale locale) {
    // If the provider is a TimeZoneNameProviderImpl, call its getZoneStrings
    // in order to avoid per-ID retrieval.
    LocaleProviderAdapter adapter = LocaleProviderAdapter.getAdapter(TimeZoneNameProvider.class, locale);
    TimeZoneNameProvider provider = adapter.getTimeZoneNameProvider();
    if (provider instanceof TimeZoneNameProviderImpl) {
        return ((TimeZoneNameProviderImpl)provider).getZoneStrings(locale);
    }

    // Performs per-ID retrieval.
    Set<String> zoneIDs = LocaleProviderAdapter.forJRE().getLocaleResources(locale).getZoneIDs();
    List<String[]> zones = new LinkedList<>();
    for (String key : zoneIDs) {
        String[] names = retrieveDisplayNamesImpl(key, locale);
        if (names != null) {
            zones.add(names);
        }
    }

    String[][] zonesArray = new String[zones.size()][];
    return zones.toArray(zonesArray);
}
 
源代码20 项目: jdk8u-dev-jdk   文件: TimeZoneNameUtility.java
@Override
public String getObject(TimeZoneNameProvider timeZoneNameProvider,
                        Locale locale,
                        String requestID,
                        Object... params) {
    assert params.length == 2;
    int style = (int) params[0];
    String tzid = (String) params[1];
    String value = getName(timeZoneNameProvider, locale, requestID, style, tzid);
    if (value == null) {
        Map<String, String> aliases = ZoneInfo.getAliasTable();
        if (aliases != null) {
            String canonicalID = aliases.get(tzid);
            if (canonicalID != null) {
                value = getName(timeZoneNameProvider, locale, requestID, style, canonicalID);
            }
            if (value == null) {
                value = examineAliases(timeZoneNameProvider, locale, requestID,
                             canonicalID != null ? canonicalID : tzid, style, aliases);
            }
        }
    }

    return value;
}
 
源代码21 项目: jdk8u-jdk   文件: TimeZoneNameUtility.java
private static String getName(TimeZoneNameProvider timeZoneNameProvider,
                              Locale locale, String requestID, int style, String tzid) {
    String value = null;
    switch (requestID) {
    case "std":
        value = timeZoneNameProvider.getDisplayName(tzid, false, style, locale);
        break;
    case "dst":
        value = timeZoneNameProvider.getDisplayName(tzid, true, style, locale);
        break;
    case "generic":
        value = timeZoneNameProvider.getGenericDisplayName(tzid, style, locale);
        break;
    }
    return value;
}
 
源代码22 项目: jdk8u_jdk   文件: TimeZoneNameUtility.java
@Override
public String getObject(TimeZoneNameProvider timeZoneNameProvider,
                        Locale locale,
                        String requestID,
                        Object... params) {
    assert params.length == 2;
    int style = (int) params[0];
    String tzid = (String) params[1];
    String value = getName(timeZoneNameProvider, locale, requestID, style, tzid);
    if (value == null) {
        Map<String, String> aliases = ZoneInfo.getAliasTable();
        if (aliases != null) {
            String canonicalID = aliases.get(tzid);
            if (canonicalID != null) {
                value = getName(timeZoneNameProvider, locale, requestID, style, canonicalID);
            }
            if (value == null) {
                value = examineAliases(timeZoneNameProvider, locale, requestID,
                             canonicalID != null ? canonicalID : tzid, style, aliases);
            }
        }
    }

    return value;
}
 
源代码23 项目: jdk8u-jdk   文件: TimeZoneNameUtility.java
private static String[] examineAliases(TimeZoneNameProvider tznp, Locale locale,
                                       String id,
                                       Map<String, String> aliases) {
    if (aliases.containsValue(id)) {
        for (Map.Entry<String, String> entry : aliases.entrySet()) {
            if (entry.getValue().equals(id)) {
                String alias = entry.getKey();
                String[] names = buildZoneStrings(tznp, locale, alias);
                if (names != null) {
                    return names;
                }
                names = examineAliases(tznp, locale, alias, aliases);
                if (names != null) {
                    return names;
                }
            }
        }
    }

    return null;
}
 
源代码24 项目: openjdk-jdk9   文件: JRELocaleProviderAdapter.java
@Override
public TimeZoneNameProvider getTimeZoneNameProvider() {
    if (timeZoneNameProvider == null) {
        TimeZoneNameProvider provider = AccessController.doPrivileged(
            (PrivilegedAction<TimeZoneNameProvider>) () ->
                new TimeZoneNameProviderImpl(
                    getAdapterType(),
                    getLanguageTagSet("TimeZoneNames")));

        synchronized (this) {
            if (timeZoneNameProvider == null) {
                timeZoneNameProvider = provider;
            }
        }
    }
    return timeZoneNameProvider;
}
 
源代码25 项目: openjdk-jdk9   文件: TimeZoneNameUtility.java
@Override
public String getObject(TimeZoneNameProvider timeZoneNameProvider,
                        Locale locale,
                        String requestID,
                        Object... params) {
    assert params.length == 2;
    int style = (int) params[0];
    String tzid = (String) params[1];
    String value = getName(timeZoneNameProvider, locale, requestID, style, tzid);
    if (value == null) {
        Map<String, String> aliases = ZoneInfo.getAliasTable();
        if (aliases != null) {
            String canonicalID = aliases.get(tzid);
            if (canonicalID != null) {
                value = getName(timeZoneNameProvider, locale, requestID, style, canonicalID);
            }
            if (value == null) {
                value = examineAliases(timeZoneNameProvider, locale, requestID,
                             canonicalID != null ? canonicalID : tzid, style, aliases);
            }
        }
    }

    return value;
}
 
源代码26 项目: openjdk-8   文件: TimeZoneNameUtility.java
@Override
public String getObject(TimeZoneNameProvider timeZoneNameProvider,
                        Locale locale,
                        String requestID,
                        Object... params) {
    assert params.length == 2;
    int style = (int) params[0];
    String tzid = (String) params[1];
    String value = getName(timeZoneNameProvider, locale, requestID, style, tzid);
    if (value == null) {
        Map<String, String> aliases = ZoneInfo.getAliasTable();
        if (aliases != null) {
            String canonicalID = aliases.get(tzid);
            if (canonicalID != null) {
                value = getName(timeZoneNameProvider, locale, requestID, style, canonicalID);
            }
            if (value == null) {
                value = examineAliases(timeZoneNameProvider, locale, requestID,
                             canonicalID != null ? canonicalID : tzid, style, aliases);
            }
        }
    }

    return value;
}
 
源代码27 项目: hottub   文件: TimeZoneNameUtility.java
private static String getName(TimeZoneNameProvider timeZoneNameProvider,
                              Locale locale, String requestID, int style, String tzid) {
    String value = null;
    switch (requestID) {
    case "std":
        value = timeZoneNameProvider.getDisplayName(tzid, false, style, locale);
        break;
    case "dst":
        value = timeZoneNameProvider.getDisplayName(tzid, true, style, locale);
        break;
    case "generic":
        value = timeZoneNameProvider.getGenericDisplayName(tzid, style, locale);
        break;
    }
    return value;
}
 
源代码28 项目: dragonwell8_jdk   文件: JRELocaleProviderAdapter.java
@Override
public TimeZoneNameProvider getTimeZoneNameProvider() {
    if (timeZoneNameProvider == null) {
        TimeZoneNameProvider provider = new TimeZoneNameProviderImpl(getAdapterType(),
                                                getLanguageTagSet("TimeZoneNames"));
        synchronized (this) {
            if (timeZoneNameProvider == null) {
                timeZoneNameProvider = provider;
            }
        }
    }
    return timeZoneNameProvider;
}
 
源代码29 项目: dragonwell8_jdk   文件: TimeZoneNameUtility.java
private static String[] retrieveDisplayNamesImpl(String id, Locale locale) {
    LocaleServiceProviderPool pool =
        LocaleServiceProviderPool.getPool(TimeZoneNameProvider.class);
    String[] names;
    Map<Locale, String[]> perLocale = null;

    SoftReference<Map<Locale, String[]>> ref = cachedDisplayNames.get(id);
    if (Objects.nonNull(ref)) {
        perLocale = ref.get();
        if (Objects.nonNull(perLocale)) {
            names = perLocale.get(locale);
            if (Objects.nonNull(names)) {
                return names;
            }
        }
    }

    // build names array
    names = new String[7];
    names[0] = id;
    for (int i = 1; i <= 6; i ++) {
        names[i] = pool.getLocalizedObject(TimeZoneNameGetter.INSTANCE, locale,
                i<5 ? (i<3 ? "std" : "dst") : "generic", i%2, id);
    }

    if (Objects.isNull(perLocale)) {
        perLocale = new ConcurrentHashMap<>();
    }
    perLocale.put(locale, names);
    ref = new SoftReference<>(perLocale);
    cachedDisplayNames.put(id, ref);
    return names;
}
 
源代码30 项目: jdk8u-dev-jdk   文件: TimeZoneNameUtility.java
private static String[] buildZoneStrings(TimeZoneNameProvider tznp,
                                         Locale locale, String id) {
    String[] names = new String[5];

    for (int i = 1; i <= 4; i ++) {
        names[i] = tznp.getDisplayName(id, i>=3, i%2, locale);

        if (names[i] == null) {
            switch (i) {
            case 1:
                // this id seems not localized by this provider
                return null;
            case 2:
            case 4:
                // If the display name for SHORT is not supplied,
                // copy the LONG name.
                names[i] = names[i-1];
                break;
            case 3:
                // If the display name for DST is not supplied,
                // copy the "standard" name.
                names[3] = names[1];
                break;
        }
    }
    }

    return names;
}
 
 类所在包
 同包方法