163 lines
4.9 KiB
Java
163 lines
4.9 KiB
Java
/* GENERATED SOURCE. DO NOT MODIFY. */
|
|
// © 2016 and later: Unicode, Inc. and others.
|
|
// License & terms of use: http://www.unicode.org/copyright.html
|
|
/*
|
|
*******************************************************************************
|
|
* Copyright (C) 2015, International Business Machines Corporation and
|
|
* others. All Rights Reserved.
|
|
*******************************************************************************
|
|
*/
|
|
package android.icu.impl;
|
|
|
|
import java.util.Arrays;
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
|
|
/**
|
|
* Standard CLDR plural form/category constants.
|
|
* See http://www.unicode.org/reports/tr35/tr35-numbers.html#Language_Plural_Rules
|
|
* @hide Only a subset of ICU is exposed in Android
|
|
*/
|
|
public enum StandardPlural {
|
|
ZERO("zero"),
|
|
ONE("one"),
|
|
TWO("two"),
|
|
FEW("few"),
|
|
MANY("many"),
|
|
OTHER("other"),
|
|
EQ_0("=0"),
|
|
EQ_1("=1");
|
|
|
|
/**
|
|
* Numeric index of OTHER, same as OTHER.ordinal().
|
|
*/
|
|
public static final int OTHER_INDEX = OTHER.ordinal();
|
|
|
|
/**
|
|
* Unmodifiable List of all standard plural form constants.
|
|
* List version of {@link #values()}.
|
|
*/
|
|
public static final List<StandardPlural> VALUES =
|
|
Collections.unmodifiableList(Arrays.asList(values()));
|
|
|
|
/**
|
|
* Number of standard plural forms/categories.
|
|
*/
|
|
public static final int COUNT = VALUES.size();
|
|
|
|
private final String keyword;
|
|
|
|
private StandardPlural(String kw) {
|
|
keyword = kw;
|
|
}
|
|
|
|
/**
|
|
* @return the lowercase CLDR keyword string for the plural form
|
|
*/
|
|
public final String getKeyword() {
|
|
return keyword;
|
|
}
|
|
|
|
/**
|
|
* @param keyword for example "few" or "other"
|
|
* @return the plural form corresponding to the keyword, or null
|
|
*/
|
|
public static final StandardPlural orNullFromString(CharSequence keyword) {
|
|
switch (keyword.length()) {
|
|
case 1:
|
|
if (keyword.charAt(0) == '0') {
|
|
return EQ_0;
|
|
} else if (keyword.charAt(0) == '1') {
|
|
return EQ_1;
|
|
}
|
|
break;
|
|
case 2:
|
|
if ("=0".contentEquals(keyword)) {
|
|
return EQ_0;
|
|
} else if ("=1".contentEquals(keyword)) {
|
|
return EQ_1;
|
|
}
|
|
break;
|
|
case 3:
|
|
if ("one".contentEquals(keyword)) {
|
|
return ONE;
|
|
} else if ("two".contentEquals(keyword)) {
|
|
return TWO;
|
|
} else if ("few".contentEquals(keyword)) {
|
|
return FEW;
|
|
}
|
|
break;
|
|
case 4:
|
|
if ("many".contentEquals(keyword)) {
|
|
return MANY;
|
|
} else if ("zero".contentEquals(keyword)) {
|
|
return ZERO;
|
|
}
|
|
break;
|
|
case 5:
|
|
if ("other".contentEquals(keyword)) {
|
|
return OTHER;
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* @param keyword for example "few" or "other"
|
|
* @return the plural form corresponding to the keyword, or OTHER
|
|
*/
|
|
public static final StandardPlural orOtherFromString(CharSequence keyword) {
|
|
StandardPlural p = orNullFromString(keyword);
|
|
return p != null ? p : OTHER;
|
|
}
|
|
|
|
/**
|
|
* @param keyword for example "few" or "other"
|
|
* @return the plural form corresponding to the keyword
|
|
* @throws IllegalArgumentException if the keyword is not a plural form
|
|
*/
|
|
public static final StandardPlural fromString(CharSequence keyword) {
|
|
StandardPlural p = orNullFromString(keyword);
|
|
if (p != null) {
|
|
return p;
|
|
} else {
|
|
throw new IllegalArgumentException(keyword.toString());
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @param keyword for example "few" or "other"
|
|
* @return the index of the plural form corresponding to the keyword, or a negative value
|
|
*/
|
|
public static final int indexOrNegativeFromString(CharSequence keyword) {
|
|
StandardPlural p = orNullFromString(keyword);
|
|
return p != null ? p.ordinal() : -1;
|
|
}
|
|
|
|
/**
|
|
* @param keyword for example "few" or "other"
|
|
* @return the index of the plural form corresponding to the keyword, or OTHER_INDEX
|
|
*/
|
|
public static final int indexOrOtherIndexFromString(CharSequence keyword) {
|
|
StandardPlural p = orNullFromString(keyword);
|
|
return p != null ? p.ordinal() : OTHER.ordinal();
|
|
}
|
|
|
|
/**
|
|
* @param keyword for example "few" or "other"
|
|
* @return the index of the plural form corresponding to the keyword
|
|
* @throws IllegalArgumentException if the keyword is not a plural form
|
|
*/
|
|
public static final int indexFromString(CharSequence keyword) {
|
|
StandardPlural p = orNullFromString(keyword);
|
|
if (p != null) {
|
|
return p.ordinal();
|
|
} else {
|
|
throw new IllegalArgumentException(keyword.toString());
|
|
}
|
|
}
|
|
}
|