All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ibm.icu.text.UFormat Maven / Gradle / Ivy

Go to download

International Component for Unicode for Java (ICU4J) is a mature, widely used Java library providing Unicode and Globalization support

There is a newer version: 76.1
Show newest version
/*
 *******************************************************************************
 * Copyright (C) 2003-2010, International Business Machines Corporation and    *
 * others. All Rights Reserved.                                                *
 *******************************************************************************
 */
package com.ibm.icu.text;

import java.text.Format;

import com.ibm.icu.util.ULocale;

/**
 * An abstract class that extends {@link java.text.Format} to provide
 * additional ICU protocol, specifically, the getLocale()
 * API.  All ICU format classes are subclasses of this class.
 *
 * @see com.ibm.icu.util.ULocale
 * @author weiv
 * @author Alan Liu
 * @draft ICU 2.8 (retain)
 * @provisional This API might change or be removed in a future release.
 */
public abstract class UFormat extends Format {
    // jdk1.4.2 serialver
    private static final long serialVersionUID = -4964390515840164416L;

    /**
     * @draft ICU 2.8 (retain)
     * @provisional This API might change or be removed in a future release.
     */
    public UFormat() {}

    // -------- BEGIN ULocale boilerplate --------

    /**
     * Return the locale that was used to create this object, or null.
     * This may may differ from the locale requested at the time of
     * this object's creation.  For example, if an object is created
     * for locale en_US_CALIFORNIA, the actual data may be
     * drawn from en (the actual locale), and
     * en_US may be the most specific locale that exists (the
     * valid locale).
     *
     * 

Note: This method will be implemented in ICU 3.0; ICU 2.8 * contains a partial preview implementation. The actual * locale is returned correctly, but the valid locale is * not, in most cases. * @param type type of information requested, either {@link * com.ibm.icu.util.ULocale#VALID_LOCALE} or {@link * com.ibm.icu.util.ULocale#ACTUAL_LOCALE}. * @return the information specified by type, or null if * this object was not constructed from locale data. * @see com.ibm.icu.util.ULocale * @see com.ibm.icu.util.ULocale#VALID_LOCALE * @see com.ibm.icu.util.ULocale#ACTUAL_LOCALE * @draft ICU 2.8 (retain) * @provisional This API might change or be removed in a future release. */ public final ULocale getLocale(ULocale.Type type) { return type == ULocale.ACTUAL_LOCALE ? this.actualLocale : this.validLocale; } /** * Set information about the locales that were used to create this * object. If the object was not constructed from locale data, * both arguments should be set to null. Otherwise, neither * should be null. The actual locale must be at the same level or * less specific than the valid locale. This method is intended * for use by factories or other entities that create objects of * this class. * @param valid the most specific locale containing any resource * data, or null * @param actual the locale containing data used to construct this * object, or null * @see com.ibm.icu.util.ULocale * @see com.ibm.icu.util.ULocale#VALID_LOCALE * @see com.ibm.icu.util.ULocale#ACTUAL_LOCALE */ final void setLocale(ULocale valid, ULocale actual) { // Change the following to an assertion later if ((valid == null) != (actual == null)) { ///CLOVER:OFF throw new IllegalArgumentException(); ///CLOVER:ON } // Another check we could do is that the actual locale is at // the same level or less specific than the valid locale. this.validLocale = valid; this.actualLocale = actual; } /** * The most specific locale containing any resource data, or null. * @see com.ibm.icu.util.ULocale */ private ULocale validLocale; /** * The locale containing data used to construct this object, or * null. * @see com.ibm.icu.util.ULocale */ private ULocale actualLocale; // -------- END ULocale boilerplate -------- }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy