summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPete Gillin <peteg@google.com>2018-10-25 19:06:35 +0100
committerPete Gillin <peteg@google.com>2018-11-01 18:47:18 +0000
commit09e9a64a18b80cfb8178a765d98b2bcdedfbcd7f (patch)
tree5c3e7d257d87f86ab7a4588ae5a11186b75219b4
parent54a2da7f5009992e4658240389f0665a197b4fc6 (diff)
Add nullability annotations to some j.u.Locale and Calendar.
Notes: - The Calendar constructor does actually accept a null Locale argument. But there's a TODO saying that it's for backwards compatibility only and should be changed to check and throw in future. This change annotates it as @NonNull because otherwise that future change would be impossible. - It may not be entirely guaranteed that the keys and values of the Map returned by Calendar.getDisplayNames are not null, but it seems to be the intention, based on the javadoc and all the known code paths. - Locale.Builder.setLanguageTag's javadoc claims that it accepts a null argument, but the implementation does not. (There is an open bug about this.) This change annotates it as @NonNull to reflect the real behaviour. - Locale.parse and Locale.mapEquivalents don't actually throw if their Map arguements contain nulls in all cases, but it seems to be the intention that they shouldn't, based on javadoc, so this change annotates them all as @NonNull. Bug: 64930165 Test: treehugger Change-Id: I61bd750f0df57774e68ce124e739136119a76a86
-rw-r--r--ojluni/annotations/sdk/nullability/java/util/Calendar.annotated.java306
-rw-r--r--ojluni/annotations/sdk/nullability/java/util/Locale.annotated.java286
2 files changed, 592 insertions, 0 deletions
diff --git a/ojluni/annotations/sdk/nullability/java/util/Calendar.annotated.java b/ojluni/annotations/sdk/nullability/java/util/Calendar.annotated.java
new file mode 100644
index 0000000000..73efc290a0
--- /dev/null
+++ b/ojluni/annotations/sdk/nullability/java/util/Calendar.annotated.java
@@ -0,0 +1,306 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * (C) Copyright Taligent, Inc. 1996-1998 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1996-1998 - All Rights Reserved
+ *
+ * The original version of this source code and documentation is copyrighted
+ * and owned by Taligent, Inc., a wholly-owned subsidiary of IBM. These
+ * materials are provided under terms of a License Agreement between Taligent
+ * and Sun. This technology is protected by multiple US and International
+ * patents. This notice and attribution to Taligent may not be removed.
+ * Taligent is a registered trademark of Taligent, Inc.
+ *
+ */
+
+
+package java.util;
+
+import java.text.DateFormat;
+import java.text.DateFormatSymbols;
+import java.time.Instant;
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public abstract class Calendar implements java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<java.util.Calendar> {
+
+protected Calendar() { throw new RuntimeException("Stub!"); }
+
+protected Calendar(@libcore.util.NonNull java.util.TimeZone zone, @libcore.util.NonNull java.util.Locale aLocale) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.util.Calendar getInstance() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.util.Calendar getInstance(@libcore.util.NonNull java.util.TimeZone zone) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.util.Calendar getInstance(@libcore.util.NonNull java.util.Locale aLocale) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.util.Calendar getInstance(@libcore.util.NonNull java.util.TimeZone zone, @libcore.util.NonNull java.util.Locale aLocale) { throw new RuntimeException("Stub!"); }
+
+public static synchronized java.util.@libcore.util.NonNull Locale @libcore.util.NonNull [] getAvailableLocales() { throw new RuntimeException("Stub!"); }
+
+protected abstract void computeTime();
+
+protected abstract void computeFields();
+
+@libcore.util.NonNull public final java.util.Date getTime() { throw new RuntimeException("Stub!"); }
+
+public final void setTime(@libcore.util.NonNull java.util.Date date) { throw new RuntimeException("Stub!"); }
+
+public long getTimeInMillis() { throw new RuntimeException("Stub!"); }
+
+public void setTimeInMillis(long millis) { throw new RuntimeException("Stub!"); }
+
+public int get(int field) { throw new RuntimeException("Stub!"); }
+
+protected final int internalGet(int field) { throw new RuntimeException("Stub!"); }
+
+public void set(int field, int value) { throw new RuntimeException("Stub!"); }
+
+public final void set(int year, int month, int date) { throw new RuntimeException("Stub!"); }
+
+public final void set(int year, int month, int date, int hourOfDay, int minute) { throw new RuntimeException("Stub!"); }
+
+public final void set(int year, int month, int date, int hourOfDay, int minute, int second) { throw new RuntimeException("Stub!"); }
+
+public final void clear() { throw new RuntimeException("Stub!"); }
+
+public final void clear(int field) { throw new RuntimeException("Stub!"); }
+
+public final boolean isSet(int field) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public java.lang.String getDisplayName(int field, int style, @libcore.util.NonNull java.util.Locale locale) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public java.util.Map<java.lang.@libcore.util.NonNull String, java.lang.@libcore.util.NonNull Integer> getDisplayNames(int field, int style, @libcore.util.NonNull java.util.Locale locale) { throw new RuntimeException("Stub!"); }
+
+protected void complete() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.util.Set<java.lang.@libcore.util.NonNull String> getAvailableCalendarTypes() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getCalendarType() { throw new RuntimeException("Stub!"); }
+
+public boolean equals(@libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+public int hashCode() { throw new RuntimeException("Stub!"); }
+
+public boolean before(@libcore.util.Nullable java.lang.Object when) { throw new RuntimeException("Stub!"); }
+
+public boolean after(@libcore.util.Nullable java.lang.Object when) { throw new RuntimeException("Stub!"); }
+
+public int compareTo(@libcore.util.NonNull java.util.Calendar anotherCalendar) { throw new RuntimeException("Stub!"); }
+
+public abstract void add(int field, int amount);
+
+public abstract void roll(int field, boolean up);
+
+public void roll(int field, int amount) { throw new RuntimeException("Stub!"); }
+
+public void setTimeZone(@libcore.util.NonNull java.util.TimeZone value) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.TimeZone getTimeZone() { throw new RuntimeException("Stub!"); }
+
+public void setLenient(boolean lenient) { throw new RuntimeException("Stub!"); }
+
+public boolean isLenient() { throw new RuntimeException("Stub!"); }
+
+public void setFirstDayOfWeek(int value) { throw new RuntimeException("Stub!"); }
+
+public int getFirstDayOfWeek() { throw new RuntimeException("Stub!"); }
+
+public void setMinimalDaysInFirstWeek(int value) { throw new RuntimeException("Stub!"); }
+
+public int getMinimalDaysInFirstWeek() { throw new RuntimeException("Stub!"); }
+
+public boolean isWeekDateSupported() { throw new RuntimeException("Stub!"); }
+
+public int getWeekYear() { throw new RuntimeException("Stub!"); }
+
+public void setWeekDate(int weekYear, int weekOfYear, int dayOfWeek) { throw new RuntimeException("Stub!"); }
+
+public int getWeeksInWeekYear() { throw new RuntimeException("Stub!"); }
+
+public abstract int getMinimum(int field);
+
+public abstract int getMaximum(int field);
+
+public abstract int getGreatestMinimum(int field);
+
+public abstract int getLeastMaximum(int field);
+
+public int getActualMinimum(int field) { throw new RuntimeException("Stub!"); }
+
+public int getActualMaximum(int field) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.Object clone() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public final java.time.Instant toInstant() { throw new RuntimeException("Stub!"); }
+
+public static final int ALL_STYLES = 0; // 0x0
+
+public static final int AM = 0; // 0x0
+
+public static final int AM_PM = 9; // 0x9
+
+public static final int APRIL = 3; // 0x3
+
+public static final int AUGUST = 7; // 0x7
+
+public static final int DATE = 5; // 0x5
+
+public static final int DAY_OF_MONTH = 5; // 0x5
+
+public static final int DAY_OF_WEEK = 7; // 0x7
+
+public static final int DAY_OF_WEEK_IN_MONTH = 8; // 0x8
+
+public static final int DAY_OF_YEAR = 6; // 0x6
+
+public static final int DECEMBER = 11; // 0xb
+
+public static final int DST_OFFSET = 16; // 0x10
+
+public static final int ERA = 0; // 0x0
+
+public static final int FEBRUARY = 1; // 0x1
+
+public static final int FIELD_COUNT = 17; // 0x11
+
+public static final int FRIDAY = 6; // 0x6
+
+public static final int HOUR = 10; // 0xa
+
+public static final int HOUR_OF_DAY = 11; // 0xb
+
+public static final int JANUARY = 0; // 0x0
+
+public static final int JULY = 6; // 0x6
+
+public static final int JUNE = 5; // 0x5
+
+public static final int LONG = 2; // 0x2
+
+public static final int LONG_FORMAT = 2; // 0x2
+
+public static final int LONG_STANDALONE = 32770; // 0x8002
+
+public static final int MARCH = 2; // 0x2
+
+public static final int MAY = 4; // 0x4
+
+public static final int MILLISECOND = 14; // 0xe
+
+public static final int MINUTE = 12; // 0xc
+
+public static final int MONDAY = 2; // 0x2
+
+public static final int MONTH = 2; // 0x2
+
+public static final int NARROW_FORMAT = 4; // 0x4
+
+public static final int NARROW_STANDALONE = 32772; // 0x8004
+
+public static final int NOVEMBER = 10; // 0xa
+
+public static final int OCTOBER = 9; // 0x9
+
+public static final int PM = 1; // 0x1
+
+public static final int SATURDAY = 7; // 0x7
+
+public static final int SECOND = 13; // 0xd
+
+public static final int SEPTEMBER = 8; // 0x8
+
+public static final int SHORT = 1; // 0x1
+
+public static final int SHORT_FORMAT = 1; // 0x1
+
+public static final int SHORT_STANDALONE = 32769; // 0x8001
+
+public static final int SUNDAY = 1; // 0x1
+
+public static final int THURSDAY = 5; // 0x5
+
+public static final int TUESDAY = 3; // 0x3
+
+public static final int UNDECIMBER = 12; // 0xc
+
+public static final int WEDNESDAY = 4; // 0x4
+
+public static final int WEEK_OF_MONTH = 4; // 0x4
+
+public static final int WEEK_OF_YEAR = 3; // 0x3
+
+public static final int YEAR = 1; // 0x1
+
+public static final int ZONE_OFFSET = 15; // 0xf
+
+protected boolean areFieldsSet;
+
+protected int @libcore.util.NonNull [] fields;
+
+protected boolean @libcore.util.NonNull [] isSet;
+
+protected boolean isTimeSet;
+
+protected long time;
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public static class Builder {
+
+public Builder() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Calendar.Builder setInstant(long instant) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Calendar.Builder setInstant(@libcore.util.NonNull java.util.Date instant) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Calendar.Builder set(int field, int value) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Calendar.Builder setFields(int @libcore.util.NonNull ... fieldValuePairs) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Calendar.Builder setDate(int year, int month, int dayOfMonth) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Calendar.Builder setTimeOfDay(int hourOfDay, int minute, int second) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Calendar.Builder setTimeOfDay(int hourOfDay, int minute, int second, int millis) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Calendar.Builder setWeekDate(int weekYear, int weekOfYear, int dayOfWeek) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Calendar.Builder setTimeZone(@libcore.util.NonNull java.util.TimeZone zone) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Calendar.Builder setLenient(boolean lenient) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Calendar.Builder setCalendarType(@libcore.util.NonNull java.lang.String type) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Calendar.Builder setLocale(@libcore.util.NonNull java.util.Locale locale) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Calendar.Builder setWeekDefinition(int firstDayOfWeek, int minimalDaysInFirstWeek) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Calendar build() { throw new RuntimeException("Stub!"); }
+}
+
+}
diff --git a/ojluni/annotations/sdk/nullability/java/util/Locale.annotated.java b/ojluni/annotations/sdk/nullability/java/util/Locale.annotated.java
new file mode 100644
index 0000000000..2b702d3cf7
--- /dev/null
+++ b/ojluni/annotations/sdk/nullability/java/util/Locale.annotated.java
@@ -0,0 +1,286 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ * Copyright (c) 1996, 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation. Oracle designates this
+ * particular file as subject to the "Classpath" exception as provided
+ * by Oracle in the LICENSE file that accompanied this code.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ */
+
+/*
+ * (C) Copyright Taligent, Inc. 1996, 1997 - All Rights Reserved
+ * (C) Copyright IBM Corp. 1996 - 1998 - All Rights Reserved
+ *
+ * The original version of this source code and documentation
+ * is copyrighted and owned by Taligent, Inc., a wholly-owned
+ * subsidiary of IBM. These materials are provided under terms
+ * of a License Agreement between Taligent and Sun. This technology
+ * is protected by multiple US and International patents.
+ *
+ * This notice and attribution to Taligent may not be removed.
+ * Taligent is a registered trademark of Taligent, Inc.
+ *
+ */
+
+
+package java.util;
+
+import java.text.MessageFormat;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.io.ObjectInputStream;
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public final class Locale implements java.lang.Cloneable, java.io.Serializable {
+
+public Locale(@libcore.util.NonNull java.lang.String language, @libcore.util.NonNull java.lang.String country, @libcore.util.NonNull java.lang.String variant) { throw new RuntimeException("Stub!"); }
+
+public Locale(@libcore.util.NonNull java.lang.String language, @libcore.util.NonNull java.lang.String country) { throw new RuntimeException("Stub!"); }
+
+public Locale(@libcore.util.NonNull java.lang.String language) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.util.Locale getDefault() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.util.Locale getDefault(@libcore.util.NonNull java.util.Locale.Category category) { throw new RuntimeException("Stub!"); }
+
+public static synchronized void setDefault(@libcore.util.NonNull java.util.Locale newLocale) { throw new RuntimeException("Stub!"); }
+
+public static synchronized void setDefault(@libcore.util.NonNull java.util.Locale.Category category, @libcore.util.NonNull java.util.Locale newLocale) { throw new RuntimeException("Stub!"); }
+
+public static java.util.@libcore.util.NonNull Locale @libcore.util.NonNull [] getAvailableLocales() { throw new RuntimeException("Stub!"); }
+
+public static java.lang.@libcore.util.NonNull String @libcore.util.NonNull [] getISOCountries() { throw new RuntimeException("Stub!"); }
+
+public static java.lang.@libcore.util.NonNull String @libcore.util.NonNull [] getISOLanguages() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getLanguage() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getScript() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getCountry() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getVariant() { throw new RuntimeException("Stub!"); }
+
+public boolean hasExtensions() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Locale stripExtensions() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public java.lang.String getExtension(char key) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Set<java.lang.@libcore.util.NonNull Character> getExtensionKeys() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Set<java.lang.@libcore.util.NonNull String> getUnicodeLocaleAttributes() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public java.lang.String getUnicodeLocaleType(@libcore.util.NonNull java.lang.String key) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Set<java.lang.@libcore.util.NonNull String> getUnicodeLocaleKeys() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toString() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String toLanguageTag() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.util.Locale forLanguageTag(@libcore.util.NonNull java.lang.String languageTag) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getISO3Language() throws java.util.MissingResourceException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getISO3Country() throws java.util.MissingResourceException { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getDisplayLanguage() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getDisplayLanguage(@libcore.util.NonNull java.util.Locale locale) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getDisplayScript() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getDisplayScript(@libcore.util.NonNull java.util.Locale inLocale) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getDisplayCountry() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getDisplayCountry(@libcore.util.NonNull java.util.Locale locale) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getDisplayVariant() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getDisplayVariant(@libcore.util.NonNull java.util.Locale inLocale) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getDisplayName() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getDisplayName(@libcore.util.NonNull java.util.Locale locale) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.Object clone() { throw new RuntimeException("Stub!"); }
+
+public int hashCode() { throw new RuntimeException("Stub!"); }
+
+public boolean equals(@libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.util.List<java.util.@libcore.util.NonNull Locale> filter(@libcore.util.NonNull java.util.List<java.util.Locale.@libcore.util.NonNull LanguageRange> priorityList, @libcore.util.NonNull java.util.Collection<java.util.@libcore.util.NonNull Locale> locales, @libcore.util.NonNull java.util.Locale.FilteringMode mode) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.util.List<java.util.@libcore.util.NonNull Locale> filter(@libcore.util.NonNull java.util.List<java.util.Locale.@libcore.util.NonNull LanguageRange> priorityList, @libcore.util.NonNull java.util.Collection<java.util.@libcore.util.NonNull Locale> locales) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.util.List<java.lang.@libcore.util.NonNull String> filterTags(@libcore.util.NonNull java.util.List<java.util.Locale.@libcore.util.NonNull LanguageRange> priorityList, @libcore.util.NonNull java.util.Collection<java.lang.@libcore.util.NonNull String> tags, @libcore.util.NonNull java.util.Locale.FilteringMode mode) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.util.List<java.lang.@libcore.util.NonNull String> filterTags(@libcore.util.NonNull java.util.List<java.util.Locale.@libcore.util.NonNull LanguageRange> priorityList, @libcore.util.NonNull java.util.Collection<java.lang.@libcore.util.NonNull String> tags) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.util.Locale lookup(@libcore.util.NonNull java.util.List<java.util.Locale.@libcore.util.NonNull LanguageRange> priorityList, @libcore.util.NonNull java.util.Collection<java.util.@libcore.util.NonNull Locale> locales) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.Nullable public static java.lang.String lookupTag(@libcore.util.NonNull java.util.List<java.util.Locale.@libcore.util.NonNull LanguageRange> priorityList, @libcore.util.NonNull java.util.Collection<java.lang.@libcore.util.NonNull String> tags) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static final java.util.Locale CANADA;
+static { CANADA = null; }
+
+@libcore.util.NonNull public static final java.util.Locale CANADA_FRENCH;
+static { CANADA_FRENCH = null; }
+
+@libcore.util.NonNull public static final java.util.Locale CHINA;
+static { CHINA = null; }
+
+@libcore.util.NonNull public static final java.util.Locale CHINESE;
+static { CHINESE = null; }
+
+@libcore.util.NonNull public static final java.util.Locale ENGLISH;
+static { ENGLISH = null; }
+
+@libcore.util.NonNull public static final java.util.Locale FRANCE;
+static { FRANCE = null; }
+
+@libcore.util.NonNull public static final java.util.Locale FRENCH;
+static { FRENCH = null; }
+
+@libcore.util.NonNull public static final java.util.Locale GERMAN;
+static { GERMAN = null; }
+
+@libcore.util.NonNull public static final java.util.Locale GERMANY;
+static { GERMANY = null; }
+
+@libcore.util.NonNull public static final java.util.Locale ITALIAN;
+static { ITALIAN = null; }
+
+@libcore.util.NonNull public static final java.util.Locale ITALY;
+static { ITALY = null; }
+
+@libcore.util.NonNull public static final java.util.Locale JAPAN;
+static { JAPAN = null; }
+
+@libcore.util.NonNull public static final java.util.Locale JAPANESE;
+static { JAPANESE = null; }
+
+@libcore.util.NonNull public static final java.util.Locale KOREA;
+static { KOREA = null; }
+
+@libcore.util.NonNull public static final java.util.Locale KOREAN;
+static { KOREAN = null; }
+
+@libcore.util.NonNull public static final java.util.Locale PRC;
+static { PRC = null; }
+
+public static final char PRIVATE_USE_EXTENSION = 120; // 0x0078 'x'
+
+@libcore.util.NonNull public static final java.util.Locale ROOT;
+static { ROOT = null; }
+
+@libcore.util.NonNull public static final java.util.Locale SIMPLIFIED_CHINESE;
+static { SIMPLIFIED_CHINESE = null; }
+
+@libcore.util.NonNull public static final java.util.Locale TAIWAN;
+static { TAIWAN = null; }
+
+@libcore.util.NonNull public static final java.util.Locale TRADITIONAL_CHINESE;
+static { TRADITIONAL_CHINESE = null; }
+
+@libcore.util.NonNull public static final java.util.Locale UK;
+static { UK = null; }
+
+public static final char UNICODE_LOCALE_EXTENSION = 117; // 0x0075 'u'
+
+@libcore.util.NonNull public static final java.util.Locale US;
+static { US = null; }
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public static final class Builder {
+
+public Builder() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Locale.Builder setLocale(@libcore.util.NonNull java.util.Locale locale) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Locale.Builder setLanguageTag(@libcore.util.NonNull java.lang.String languageTag) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Locale.Builder setLanguage(@libcore.util.Nullable java.lang.String language) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Locale.Builder setScript(@libcore.util.Nullable java.lang.String script) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Locale.Builder setRegion(@libcore.util.Nullable java.lang.String region) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Locale.Builder setVariant(@libcore.util.Nullable java.lang.String variant) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Locale.Builder setExtension(char key, @libcore.util.Nullable java.lang.String value) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Locale.Builder setUnicodeLocaleKeyword(@libcore.util.NonNull java.lang.String key, @libcore.util.Nullable java.lang.String type) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Locale.Builder addUnicodeLocaleAttribute(@libcore.util.NonNull java.lang.String attribute) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Locale.Builder removeUnicodeLocaleAttribute(@libcore.util.NonNull java.lang.String attribute) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Locale.Builder clear() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Locale.Builder clearExtensions() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.util.Locale build() { throw new RuntimeException("Stub!"); }
+}
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public static enum Category {
+DISPLAY,
+FORMAT;
+}
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public static enum FilteringMode {
+AUTOSELECT_FILTERING,
+EXTENDED_FILTERING,
+IGNORE_EXTENDED_RANGES,
+MAP_EXTENDED_RANGES,
+REJECT_EXTENDED_RANGES;
+}
+
+@SuppressWarnings({"unchecked", "deprecation", "all"})
+public static final class LanguageRange {
+
+public LanguageRange(@libcore.util.NonNull java.lang.String range) { throw new RuntimeException("Stub!"); }
+
+public LanguageRange(@libcore.util.NonNull java.lang.String range, double weight) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public java.lang.String getRange() { throw new RuntimeException("Stub!"); }
+
+public double getWeight() { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.util.List<java.util.Locale.@libcore.util.NonNull LanguageRange> parse(@libcore.util.NonNull java.lang.String ranges) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.util.List<java.util.Locale.LanguageRange> parse(@libcore.util.NonNull java.lang.String ranges, @libcore.util.NonNull java.util.Map<java.lang.@libcore.util.NonNull String,java.util.@libcore.util.NonNull List<java.lang.@libcore.util.NonNull String>> map) { throw new RuntimeException("Stub!"); }
+
+@libcore.util.NonNull public static java.util.List<java.util.Locale.LanguageRange> mapEquivalents(@libcore.util.NonNull java.util.List<java.util.Locale.@libcore.util.NonNull LanguageRange> priorityList, @libcore.util.NonNull java.util.Map<java.lang.@libcore.util.NonNull String,java.util.@libcore.util.NonNull List<java.lang.@libcore.util.NonNull String>> map) { throw new RuntimeException("Stub!"); }
+
+public int hashCode() { throw new RuntimeException("Stub!"); }
+
+public boolean equals(@libcore.util.Nullable java.lang.Object obj) { throw new RuntimeException("Stub!"); }
+
+public static final double MAX_WEIGHT = 1.0;
+
+public static final double MIN_WEIGHT = 0.0;
+}
+
+}