Integrate changes cherry-picked for ticket #12003 into android_icu4j.

User more links to actual Java classes in ICU API doc.

Bug: 22023363
Change-Id: I40b6c459fe92d0008c492d8823dd601cd6ba0b4e
diff --git a/android_icu4j/src/main/java/android/icu/lang/UCharacter.java b/android_icu4j/src/main/java/android/icu/lang/UCharacter.java
index 96c72ae..ad24d9e 100644
--- a/android_icu4j/src/main/java/android/icu/lang/UCharacter.java
+++ b/android_icu4j/src/main/java/android/icu/lang/UCharacter.java
@@ -1,7 +1,7 @@
 /* GENERATED SOURCE. DO NOT MODIFY. */
 /**
  *******************************************************************************
- * Copyright (C) 1996-2015, International Business Machines Corporation and
+ * Copyright (C) 1996-2016, International Business Machines Corporation and
  * others. All Rights Reserved.
  *******************************************************************************
  */
@@ -2054,8 +2054,9 @@
         }
 
         /**
-         * Cover the JDK 1.5 API.  Return the Unicode block with the
-         * given name. <strong>[icu] Note:</strong> Unlike JDK 1.5, this only matches
+         * Alternative to the {@link java.lang.Character.UnicodeBlock#forName(String)} method.
+         * Returns the Unicode block with the given name. <strong>[icu] Note:</strong> Unlike
+         * {@link java.lang.Character.UnicodeBlock#forName(String)}, this only matches
          * against the official UCD name and the Java block name
          * (ignoring case).
          * @param blockName the name of the block to match
@@ -5266,7 +5267,8 @@
     public static final int MIN_CODE_POINT = Character.MIN_CODE_POINT;
 
     /**
-     * Cover the JDK 1.5 API, for convenience.
+     * Equivalent to {@link Character#isValidCodePoint}.
+     *
      * @param cp the code point to check
      * @return true if cp is a valid code point
      */
@@ -5508,11 +5510,12 @@
     }
 
     /**
-     * Cover the JDK API, for convenience.  Return a byte representing the directionality of
-     * the character.
+     * Equivalent to the {@link Character#getDirectionality(char)} method, for
+     * convenience. Returns a byte representing the directionality of the
+     * character.
      *
-     * <strong>[icu] Note:</strong> Unlike the JDK, this returns DIRECTIONALITY_LEFT_TO_RIGHT for undefined
-     * or out-of-bounds characters.
+     * <strong>[icu] Note:</strong> Unlike {@link Character#getDirectionality(char)}, this returns
+     * DIRECTIONALITY_LEFT_TO_RIGHT for undefined or out-of-bounds characters.
      *
      * <strong>[icu] Note:</strong> The return value must be tested using the constants defined in {@link
      * UCharacterDirection} and its interface {@link
@@ -5528,7 +5531,9 @@
     }
 
     /**
-     * Cover the JDK API, for convenience.  Count the number of code points in the range of text.
+     * Equivalent to the {@link Character#codePointCount(CharSequence, int, int)}
+     * method, for convenience.  Counts the number of code points in the range
+     * of text.
      * @param text the characters to check
      * @param start the start of the range
      * @param limit the limit of the range
@@ -5556,7 +5561,8 @@
     }
 
     /**
-     * Cover the JDK API, for convenience.  Count the number of code points in the range of text.
+     * Equivalent to the {@link Character#codePointCount(char[], int, int)} method, for
+     * convenience. Counts the number of code points in the range of text.
      * @param text the characters to check
      * @param start the start of the range
      * @param limit the limit of the range
@@ -5584,7 +5590,8 @@
     }
 
     /**
-     * Cover the JDK API, for convenience.  Adjust the char index by a code point offset.
+     * Equivalent to the {@link Character#offsetByCodePoints(CharSequence, int, int)}
+     * method, for convenience.  Adjusts the char index by a code point offset.
      * @param text the characters to check
      * @param index the index to adjust
      * @param codePointOffset the number of code points by which to offset the index
@@ -5627,7 +5634,9 @@
     }
 
     /**
-     * Cover the JDK API, for convenience.  Adjust the char index by a code point offset.
+     * Equivalent to the
+     * {@link Character#offsetByCodePoints(char[], int, int, int, int)}
+     * method, for convenience.  Adjusts the char index by a code point offset.
      * @param text the characters to check
      * @param start the start of the range to check
      * @param count the length of the range to check
diff --git a/android_icu4j/src/main/java/android/icu/lang/UCharacterEnums.java b/android_icu4j/src/main/java/android/icu/lang/UCharacterEnums.java
index 8f6cd09..3344c43 100644
--- a/android_icu4j/src/main/java/android/icu/lang/UCharacterEnums.java
+++ b/android_icu4j/src/main/java/android/icu/lang/UCharacterEnums.java
@@ -1,7 +1,7 @@
 /* GENERATED SOURCE. DO NOT MODIFY. */
 /**
  *******************************************************************************
- * Copyright (C) 2004-2013, International Business Machines Corporation and
+ * Copyright (C) 2004-2016, International Business Machines Corporation and
  * others. All Rights Reserved.
  *******************************************************************************
  */
@@ -20,7 +20,7 @@
     /**
      * 'Enum' for the CharacterCategory constants.  These constants are 
      * compatible in name <b>but not in value</b> with those defined in
-     * <code>java.lang.Character</code>.
+     * {@link java.lang.Character}.
      * @see UCharacterCategory
      */
     public static interface ECharacterCategory {
@@ -204,10 +204,9 @@
     }
 
     /**
-     * 'Enum' for the CharacterDirection constants.  There are two sets
-     * of names, those used in ICU, and those used in the JDK.  The
-     * JDK constants are compatible in name <b>but not in value</b> 
-     * with those defined in <code>java.lang.Character</code>.
+     * 'Enum' for the CharacterDirection constants. Some constants are
+     * compatible in name <b>but not in value</b> with those defined in
+     * {@link java.lang.Character}.
      * @see UCharacterDirection
      */
     public static interface ECharacterDirection {
@@ -217,7 +216,9 @@
         public static final int LEFT_TO_RIGHT              = 0;
 
         /**
-         * JDK-compatible synonym for LEFT_TO_RIGHT.
+         * Equivalent to {@link
+         * java.lang.Character#DIRECTIONALITY_LEFT_TO_RIGHT}.
+         * Synonym of {@link #LEFT_TO_RIGHT}.
          */
         public static final byte DIRECTIONALITY_LEFT_TO_RIGHT = (byte)LEFT_TO_RIGHT;
 
@@ -227,7 +228,9 @@
         public static final int RIGHT_TO_LEFT              = 1;
 
         /**
-         * JDK-compatible synonym for RIGHT_TO_LEFT.
+         * Equivalent to {@link
+         * java.lang.Character#DIRECTIONALITY_RIGHT_TO_LEFT}.
+         * Synonym of {@link #RIGHT_TO_LEFT}.
          */
         public static final byte DIRECTIONALITY_RIGHT_TO_LEFT = (byte)RIGHT_TO_LEFT;
 
@@ -237,7 +240,9 @@
         public static final int EUROPEAN_NUMBER            = 2;
 
         /**
-         * JDK-compatible synonym for EUROPEAN_NUMBER.
+         * Equivalent to {@link
+         * java.lang.Character#DIRECTIONALITY_EUROPEAN_NUMBER}.
+         * Synonym of {@link #EUROPEAN_NUMBER}.
          */
         public static final byte DIRECTIONALITY_EUROPEAN_NUMBER = (byte)EUROPEAN_NUMBER;
 
@@ -247,7 +252,9 @@
         public static final int EUROPEAN_NUMBER_SEPARATOR  = 3;
 
         /**
-         * JDK-compatible synonym for EUROPEAN_NUMBER_SEPARATOR.
+         * Equivalent to {@link
+         * java.lang.Character#DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR}.
+         * Synonym of {@link #EUROPEAN_NUMBER_SEPARATOR}.
          */
         public static final byte DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR = (byte)EUROPEAN_NUMBER_SEPARATOR;
 
@@ -257,7 +264,9 @@
         public static final int EUROPEAN_NUMBER_TERMINATOR = 4;
 
         /**
-         * JDK-compatible synonym for EUROPEAN_NUMBER_TERMINATOR.
+         * Equivalent to {@link
+         * java.lang.Character#DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR}.
+         * Synonym of {@link #EUROPEAN_NUMBER_TERMINATOR}.
          */
         public static final byte DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR = (byte)EUROPEAN_NUMBER_TERMINATOR;
 
@@ -267,7 +276,9 @@
         public static final int ARABIC_NUMBER              = 5;
 
         /**
-         * JDK-compatible synonym for ARABIC_NUMBER.
+         * Equivalent to {@link
+         * java.lang.Character#DIRECTIONALITY_ARABIC_NUMBER}.
+         * Synonym of {@link #ARABIC_NUMBER}.
          */
         public static final byte DIRECTIONALITY_ARABIC_NUMBER = (byte)ARABIC_NUMBER;
 
@@ -277,7 +288,9 @@
         public static final int COMMON_NUMBER_SEPARATOR    = 6;
 
         /**
-         * JDK-compatible synonym for COMMON_NUMBER_SEPARATOR.
+         * Equivalent to {@link
+         * java.lang.Character#DIRECTIONALITY_COMMON_NUMBER_SEPARATOR}.
+         * Synonym of {@link #COMMON_NUMBER_SEPARATOR}.
          */
         public static final byte DIRECTIONALITY_COMMON_NUMBER_SEPARATOR = (byte)COMMON_NUMBER_SEPARATOR;
 
@@ -287,7 +300,9 @@
         public static final int BLOCK_SEPARATOR            = 7;
 
         /**
-         * JDK-compatible synonym for BLOCK_SEPARATOR.
+         * Equivalent to {@link
+         * java.lang.Character#DIRECTIONALITY_PARAGRAPH_SEPARATOR}.
+         * Synonym of {@link #BLOCK_SEPARATOR}.
          */
         public static final byte DIRECTIONALITY_PARAGRAPH_SEPARATOR = (byte)BLOCK_SEPARATOR;
 
@@ -297,7 +312,9 @@
         public static final int SEGMENT_SEPARATOR          = 8;
 
         /**
-         * JDK-compatible synonym for SEGMENT_SEPARATOR.
+         * Equivalent to {@link
+         * java.lang.Character#DIRECTIONALITY_SEGMENT_SEPARATOR}.
+         * Synonym of {@link #SEGMENT_SEPARATOR}.
          */
         public static final byte DIRECTIONALITY_SEGMENT_SEPARATOR = (byte)SEGMENT_SEPARATOR;
 
@@ -307,7 +324,8 @@
         public static final int WHITE_SPACE_NEUTRAL        = 9;
 
         /**
-         * JDK-compatible synonym for WHITE_SPACE_NEUTRAL.
+         * Equivalent to {@link java.lang.Character#DIRECTIONALITY_WHITESPACE}.
+         * Synonym of {@link #WHITE_SPACE_NEUTRAL}.
          */
         public static final byte DIRECTIONALITY_WHITESPACE = (byte)WHITE_SPACE_NEUTRAL;
 
@@ -317,7 +335,8 @@
         public static final int OTHER_NEUTRAL              = 10;
 
         /**
-         * JDK-compatible synonym for OTHER_NEUTRAL.
+         * Equivalent to {@link java.lang.Character#DIRECTIONALITY_OTHER_NEUTRALS}.
+         * Synonym of {@link #OTHER_NEUTRAL}.
          */
         public static final byte DIRECTIONALITY_OTHER_NEUTRALS = (byte)OTHER_NEUTRAL;
 
@@ -327,7 +346,9 @@
         public static final int LEFT_TO_RIGHT_EMBEDDING    = 11;
 
         /**
-         * JDK-compatible synonym for LEFT_TO_RIGHT_EMBEDDING.
+         * Equivalent to {@link
+         * java.lang.Character#DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING}.
+         * Synonym of {@link #LEFT_TO_RIGHT_EMBEDDING}.
          */
         public static final byte DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING = (byte)LEFT_TO_RIGHT_EMBEDDING;
 
@@ -337,7 +358,9 @@
         public static final int LEFT_TO_RIGHT_OVERRIDE     = 12;  
 
         /**
-         * JDK-compatible synonym for LEFT_TO_RIGHT_OVERRIDE.
+         * Equivalent to {@link
+         * java.lang.Character#DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE}.
+         * Synonym of {@link #LEFT_TO_RIGHT_OVERRIDE}.
          */
         public static final byte DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE = (byte)LEFT_TO_RIGHT_OVERRIDE;
 
@@ -347,7 +370,9 @@
         public static final int RIGHT_TO_LEFT_ARABIC       = 13;
 
         /**
-         * JDK-compatible synonym for RIGHT_TO_LEFT_ARABIC.
+         * Equivalent to {@link
+         * java.lang.Character#DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC}.
+         * Synonym of {@link #RIGHT_TO_LEFT_ARABIC}.
          */
         public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC = (byte)RIGHT_TO_LEFT_ARABIC;
 
@@ -357,7 +382,9 @@
         public static final int RIGHT_TO_LEFT_EMBEDDING    = 14;
 
         /**
-         * JDK-compatible synonym for RIGHT_TO_LEFT_EMBEDDING.
+         * Equivalent to {@link
+         * java.lang.Character#DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING}.
+         * Synonym of {@link #RIGHT_TO_LEFT_EMBEDDING}.
          */
         public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING = (byte)RIGHT_TO_LEFT_EMBEDDING;
 
@@ -367,7 +394,9 @@
         public static final int RIGHT_TO_LEFT_OVERRIDE     = 15;
 
         /**
-         * JDK-compatible synonym for RIGHT_TO_LEFT_OVERRIDE.
+         * Equivalent to {@link
+         * java.lang.Character#DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE}.
+         * Synonym of {@link #RIGHT_TO_LEFT_OVERRIDE}.
          */
         public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE = (byte)RIGHT_TO_LEFT_OVERRIDE;
 
@@ -377,7 +406,9 @@
         public static final int POP_DIRECTIONAL_FORMAT     = 16;
 
         /**
-         * JDK-compatible synonym for POP_DIRECTIONAL_FORMAT.
+         * Equivalent to {@link
+         * java.lang.Character#DIRECTIONALITY_POP_DIRECTIONAL_FORMAT}.
+         * Synonym of {@link #POP_DIRECTIONAL_FORMAT}.
          */
         public static final byte DIRECTIONALITY_POP_DIRECTIONAL_FORMAT = (byte)POP_DIRECTIONAL_FORMAT;
 
@@ -387,7 +418,9 @@
         public static final int DIR_NON_SPACING_MARK       = 17;
 
         /**
-         * JDK-compatible synonym for DIR_NON_SPACING_MARK.
+         * Equivalent to {@link
+         * java.lang.Character#DIRECTIONALITY_NONSPACING_MARK}.
+         * Synonym of {@link #DIR_NON_SPACING_MARK}.
          */
         public static final byte DIRECTIONALITY_NONSPACING_MARK = (byte)DIR_NON_SPACING_MARK;
 
@@ -397,7 +430,9 @@
         public static final int BOUNDARY_NEUTRAL           = 18;
 
         /**
-         * JDK-compatible synonym for BOUNDARY_NEUTRAL.
+         * Equivalent to {@link
+         * java.lang.Character#DIRECTIONALITY_BOUNDARY_NEUTRAL}.
+         * Synonym of {@link #BOUNDARY_NEUTRAL}.
          */
         public static final byte DIRECTIONALITY_BOUNDARY_NEUTRAL = (byte)BOUNDARY_NEUTRAL;
 
diff --git a/android_icu4j/src/main/java/android/icu/text/CurrencyDisplayNames.java b/android_icu4j/src/main/java/android/icu/text/CurrencyDisplayNames.java
index 889d9b4..9f59da2 100644
--- a/android_icu4j/src/main/java/android/icu/text/CurrencyDisplayNames.java
+++ b/android_icu4j/src/main/java/android/icu/text/CurrencyDisplayNames.java
@@ -1,7 +1,7 @@
 /* GENERATED SOURCE. DO NOT MODIFY. */
 /*
  *******************************************************************************
- * Copyright (C) 2009-2015, International Business Machines Corporation and    *
+ * Copyright (C) 2009-2016, International Business Machines Corporation and    *
  * others. All Rights Reserved.                                                *
  *******************************************************************************
  */
@@ -77,7 +77,7 @@
      * for the locale, but not data for the requested ISO code, null is returned
      * from those APIs instead of a substitute value.
      * 
-     * @param locale the JDK locale into which to localize the names
+     * @param locale the {@link java.util.Locale} into which to localize the names
      * @param noSubstitute if true, do not return substitute values.
      * @return a CurrencyDisplayNames
      */
diff --git a/android_icu4j/src/main/java/android/icu/text/DateFormat.java b/android_icu4j/src/main/java/android/icu/text/DateFormat.java
index ecef9ed..a8657ed 100644
--- a/android_icu4j/src/main/java/android/icu/text/DateFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/DateFormat.java
@@ -1,6 +1,6 @@
 /* GENERATED SOURCE. DO NOT MODIFY. */
 /*
- *   Copyright (C) 1996-2015, International Business Machines
+ *   Copyright (C) 1996-2016, International Business Machines
  *   Corporation and others.  All Rights Reserved.
  */
 
@@ -1750,10 +1750,6 @@
     /**
      * Creates a {@link DateFormat} object that can be used to format times in
      * the calendar system specified by <code>cal</code>.
-     * <p>
-     * <b>Note:</b> When this functionality is moved into the core JDK, this method
-     * will probably be replaced by a new overload of {@link DateFormat#getInstance}.
-     * <p>
      * @param cal   The calendar system for which a time format is desired.
      *
      * @param timeStyle The type of time format desired.  This can be
@@ -1772,10 +1768,6 @@
     /**
      * Creates a {@link DateFormat} object that can be used to format times in
      * the calendar system specified by <code>cal</code>.
-     * <p>
-     * <b>Note:</b> When this functionality is moved into the core JDK, this method
-     * will probably be replaced by a new overload of {@link DateFormat#getInstance}.
-     * <p>
      * @param cal   The calendar system for which a time format is desired.
      *
      * @param timeStyle The type of time format desired.  This can be
@@ -1794,10 +1786,6 @@
     /**
      * Creates a {@link DateFormat} object that can be used to format dates and times in
      * the calendar system specified by <code>cal</code>.
-     * <p>
-     * <b>Note:</b> When this functionality is moved into the core JDK, this method
-     * will probably be replaced by a new overload of {@link DateFormat#getInstance}.
-     * <p>
      * @param cal   The calendar system for which a date/time format is desired.
      *
      * @param dateStyle The type of date format desired.  This can be
@@ -1821,10 +1809,6 @@
     /**
      * Creates a {@link DateFormat} object that can be used to format dates and times in
      * the calendar system specified by <code>cal</code>.
-     * <p>
-     * <b>Note:</b> When this functionality is moved into the core JDK, this method
-     * will probably be replaced by a new overload of {@link DateFormat#getInstance}.
-     * <p>
      * @param cal   The calendar system for which a date/time format is desired.
      *
      * @param dateStyle The type of date format desired.  This can be
@@ -1898,10 +1882,6 @@
     /**
      * Creates a {@link DateFormat} object that can be used to format times in
      * the calendar system specified by <code>cal</code>.
-     * <p>
-     * <b>Note:</b> When this functionality is moved into the core JDK, this method
-     * will probably be replaced by a new overload of {@link DateFormat#getInstance}.
-     * <p>
      * @param cal   The calendar system for which a time format is desired.
      *
      * @param timeStyle The type of time format desired.  This can be
@@ -1917,10 +1897,6 @@
     /**
      * Creates a {@link DateFormat} object for the default locale that can be used to format
      * dates and times in the calendar system specified by <code>cal</code>.
-     * <p>
-     * <b>Note:</b> When this functionality is moved into the core JDK, this method
-     * will probably be replaced by a new overload of {@link DateFormat#getInstance}.
-     * <p>
      * @param cal   The calendar system for which a date/time format is desired.
      *
      * @param dateStyle The type of date format desired.  This can be
diff --git a/android_icu4j/src/main/java/android/icu/text/DateFormatSymbols.java b/android_icu4j/src/main/java/android/icu/text/DateFormatSymbols.java
index 2870e46..f34daa9 100644
--- a/android_icu4j/src/main/java/android/icu/text/DateFormatSymbols.java
+++ b/android_icu4j/src/main/java/android/icu/text/DateFormatSymbols.java
@@ -1,7 +1,7 @@
 /* GENERATED SOURCE. DO NOT MODIFY. */
 /*
  *******************************************************************************
- * Copyright (C) 1996-2015, International Business Machines Corporation and
+ * Copyright (C) 1996-2016, International Business Machines Corporation and
  * others. All Rights Reserved.
  *******************************************************************************
  */
@@ -1253,12 +1253,13 @@
      * When a localized display name is not available, the corresponding
      * array element will be <code>null</code>.
      * <p>
-     * <b>Note</b>: ICU implements time zone display name formatting algorithm
+     * <b>Note</b>: ICU implements the time zone display name formatting algorithm
      * specified by <a href="http://www.unicode.org/reports/tr35/">UTS#35 Unicode
      * Locale Data Markup Language(LDML)</a>. The algorithm supports historic
-     * display name changes and various different type of names not available in
-     * JDK. For accessing the full set of time zone string data used by ICU implementation,
-     * you should use {@link TimeZoneNames} APIs instead.
+     * display name changes and various different types of names not available in
+     * {@link java.text.DateFormatSymbols#getZoneStrings()}. For accessing the full
+     * set of time zone string data used by ICU implementation, you should use
+     * {@link TimeZoneNames} APIs instead.
      * 
      * @return the time zone strings.
      */
diff --git a/android_icu4j/src/main/java/android/icu/text/DateIntervalInfo.java b/android_icu4j/src/main/java/android/icu/text/DateIntervalInfo.java
index 38f1d7f..53a1e3a 100644
--- a/android_icu4j/src/main/java/android/icu/text/DateIntervalInfo.java
+++ b/android_icu4j/src/main/java/android/icu/text/DateIntervalInfo.java
@@ -1,7 +1,7 @@
 /* GENERATED SOURCE. DO NOT MODIFY. */
 /*
  *******************************************************************************
- * Copyright (C) 2008-2015, International Business Machines Corporation and    *
+ * Copyright (C) 2008-2016, International Business Machines Corporation and    *
  * others. All Rights Reserved.                                                *
  *******************************************************************************
  */
@@ -352,7 +352,7 @@
 
 
     /** 
-     * Construct DateIntervalInfo for the given JDK locale,
+     * Construct DateIntervalInfo for the given {@link java.util.Locale}.
      * @param locale  the interval patterns are loaded from the appropriate 
      *                calendar data (specified calendar or default calendar)
      *                in this locale.
diff --git a/android_icu4j/src/main/java/android/icu/text/DateTimePatternGenerator.java b/android_icu4j/src/main/java/android/icu/text/DateTimePatternGenerator.java
index cf6e69e..c47e27a 100644
--- a/android_icu4j/src/main/java/android/icu/text/DateTimePatternGenerator.java
+++ b/android_icu4j/src/main/java/android/icu/text/DateTimePatternGenerator.java
@@ -85,7 +85,7 @@
 
     /**
      * Construct a flexible generator according to data for a given locale.
-     * @param locale The JDK locale to pass.
+     * @param locale The {@link java.text.Locale} to pass.
      */
     public static DateTimePatternGenerator getInstance(Locale locale) {
         return getInstance(ULocale.forLocale(locale));
diff --git a/android_icu4j/src/main/java/android/icu/text/DecimalFormatSymbols.java b/android_icu4j/src/main/java/android/icu/text/DecimalFormatSymbols.java
index 872c96e..bec929c 100644
--- a/android_icu4j/src/main/java/android/icu/text/DecimalFormatSymbols.java
+++ b/android_icu4j/src/main/java/android/icu/text/DecimalFormatSymbols.java
@@ -432,8 +432,8 @@
     }
 
     /**
-     * Returns the currency symbol, for JDK 1.4 compatibility only.
-     * ICU clients should use the Currency API directly.
+     * Returns the currency symbol, for {@link DecimalFormatSymbols#getCurrency()} API
+     * compatibility only. ICU clients should use the Currency API directly.
      * @return the currency used, or null
      */
     public Currency getCurrency() {
diff --git a/android_icu4j/src/main/java/android/icu/text/LocaleDisplayNames.java b/android_icu4j/src/main/java/android/icu/text/LocaleDisplayNames.java
index b9020bf..f168d1c 100644
--- a/android_icu4j/src/main/java/android/icu/text/LocaleDisplayNames.java
+++ b/android_icu4j/src/main/java/android/icu/text/LocaleDisplayNames.java
@@ -1,7 +1,7 @@
 /* GENERATED SOURCE. DO NOT MODIFY. */
 /*
  *******************************************************************************
- * Copyright (C) 2009-2015, International Business Machines Corporation and    *
+ * Copyright (C) 2009-2016, International Business Machines Corporation and    *
  * others. All Rights Reserved.                                                *
  *******************************************************************************
  */
@@ -57,7 +57,7 @@
     /**
      * Convenience overload of {@link #getInstance(Locale, DisplayContext...)} that specifies
      * {@link DisplayContext#STANDARD_NAMES}.
-     * @param locale the display JDK locale
+     * @param locale the display {@link java.util.Locale}
      * @return a LocaleDisplayNames instance
      */
     public static LocaleDisplayNames getInstance(Locale locale) {
@@ -116,9 +116,9 @@
     }
 
     /**
-     * Returns an instance of LocaleDisplayNames that returns names formatted for the provided JDK
-     * locale, using the provided DisplayContext settings
-     * @param locale the display JDK locale
+     * Returns an instance of LocaleDisplayNames that returns names formatted for the provided
+     * {@link java.util.Locale}, using the provided DisplayContext settings
+     * @param locale the display {@link java.util.Locale}
      * @param contexts one or more context settings (e.g. for dialect
      *              handling, capitalization, etc.
      * @return a LocaleDisplayNames instance
diff --git a/android_icu4j/src/main/java/android/icu/text/MeasureFormat.java b/android_icu4j/src/main/java/android/icu/text/MeasureFormat.java
index ce090e6..cc3d78d 100644
--- a/android_icu4j/src/main/java/android/icu/text/MeasureFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/MeasureFormat.java
@@ -212,9 +212,9 @@
     }
 
     /**
-     * Create a format from the JDK locale, formatWidth, and format.
+     * Create a format from the {@link java.util.Locale} and formatWidth.
      *
-     * @param locale the JDK locale.
+     * @param locale the {@link java.util.Locale}.
      * @param formatWidth hints how long formatted strings should be.
      * @return The new MeasureFormat object.
      */
@@ -261,9 +261,9 @@
     }
 
     /**
-     * Create a format from the JDK locale, formatWidth, and format.
+     * Create a format from the {@link java.util.Locale}, formatWidth, and format.
      *
-     * @param locale the JDK locale.
+     * @param locale the {@link java.util.Locale}.
      * @param formatWidth hints how long formatted strings should be.
      * @param format This is defensively copied.
      * @return The new MeasureFormat object.
@@ -609,8 +609,8 @@
 
     /**
      * Return a formatter for CurrencyAmount objects in the given
-     * JDK locale.
-     * @param locale desired JDK locale
+     * {@link java.util.Locale}.
+     * @param locale desired {@link java.util.Locale}
      * @return a formatter object
      */
     public static MeasureFormat getCurrencyFormat(Locale locale) {
diff --git a/android_icu4j/src/main/java/android/icu/text/MessageFormat.java b/android_icu4j/src/main/java/android/icu/text/MessageFormat.java
index bb96ad6..28ecbc0 100644
--- a/android_icu4j/src/main/java/android/icu/text/MessageFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/MessageFormat.java
@@ -1,7 +1,7 @@
 /* GENERATED SOURCE. DO NOT MODIFY. */
 /*
 **********************************************************************
-* Copyright (c) 2004-2014, International Business Machines
+* Copyright (c) 2004-2016, International Business Machines
 * Corporation and others.  All Rights Reserved.
 **********************************************************************
 * Author: Alan Liu
@@ -2410,12 +2410,12 @@
      * <strong>[icu]</strong> Converts an 'apostrophe-friendly' pattern into a standard
      * pattern.
      * <em>This is obsolete for ICU 4.8 and higher MessageFormat pattern strings.</em>
-     * It can still be useful together with the JDK MessageFormat.
+     * It can still be useful together with {@link java.text.MessageFormat}.
      *
      * <p>See the class description for more about apostrophes and quoting,
-     * and differences between ICU and the JDK.
+     * and differences between ICU and {@link java.text.MessageFormat}.
      *
-     * <p>The JDK MessageFormat and ICU 4.6 and earlier MessageFormat
+     * <p>{@link java.text.MessageFormat} and ICU 4.6 and earlier MessageFormat
      * treat all ASCII apostrophes as
      * quotes, which is problematic in some languages, e.g.
      * French, where apostrophe is commonly used.  This utility
diff --git a/android_icu4j/src/main/java/android/icu/text/MessagePattern.java b/android_icu4j/src/main/java/android/icu/text/MessagePattern.java
index 73af3fb..beba378 100644
--- a/android_icu4j/src/main/java/android/icu/text/MessagePattern.java
+++ b/android_icu4j/src/main/java/android/icu/text/MessagePattern.java
@@ -1,7 +1,7 @@
 /* GENERATED SOURCE. DO NOT MODIFY. */
 /*
 *******************************************************************************
-*   Copyright (C) 2010-2014, International Business Machines
+*   Copyright (C) 2010-2016, International Business Machines
 *   Corporation and others.  All Rights Reserved.
 *******************************************************************************
 *   created on: 2010aug21
@@ -128,7 +128,7 @@
          * a double apostrophe pattern character.
          * A single apostrophe always starts quoted literal text.
          * <p>
-         * This is the behavior of ICU 4.6 and earlier, and of the JDK.
+         * This is the behavior of ICU 4.6 and earlier, and of {@link java.text.MessageFormat}.
          */
         DOUBLE_REQUIRED
     }
diff --git a/android_icu4j/src/main/java/android/icu/text/NumberFormat.java b/android_icu4j/src/main/java/android/icu/text/NumberFormat.java
index 4840aee..7bc2768 100644
--- a/android_icu4j/src/main/java/android/icu/text/NumberFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/NumberFormat.java
@@ -1,7 +1,7 @@
 /* GENERATED SOURCE. DO NOT MODIFY. */
 /*
  *******************************************************************************
- * Copyright (C) 1996-2015, International Business Machines Corporation and    *
+ * Copyright (C) 1996-2016, International Business Machines Corporation and    *
  * others. All Rights Reserved.                                                *
  *******************************************************************************
  */
@@ -1686,8 +1686,8 @@
     private static final long serialVersionUID = -2308460125733713944L;
 
     /**
-     * Empty constructor.  Public for compatibility with JDK which lets the
-     * compiler generate a default public constructor even though this is
+     * Empty constructor.  Public for API compatibility with historic versions of
+     * {@link java.text.NumberFormat} which had public constructor even though this is
      * an abstract class.
      */
     public NumberFormat() {
diff --git a/android_icu4j/src/main/java/android/icu/text/PluralFormat.java b/android_icu4j/src/main/java/android/icu/text/PluralFormat.java
index ee8f675..78e656d 100644
--- a/android_icu4j/src/main/java/android/icu/text/PluralFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/PluralFormat.java
@@ -1,7 +1,7 @@
 /* GENERATED SOURCE. DO NOT MODIFY. */
 /*
  *******************************************************************************
- * Copyright (C) 2007-2015, International Business Machines Corporation and
+ * Copyright (C) 2007-2016, International Business Machines Corporation and
  * others. All Rights Reserved.
  *******************************************************************************
  */
@@ -199,7 +199,8 @@
     }
 
     /**
-     * Creates a new cardinal-number <code>PluralFormat</code> for a given JDK locale.
+     * Creates a new cardinal-number <code>PluralFormat</code> for a given
+     * {@link java.util.Locale}.
      * @param locale the <code>PluralFormat</code> will be configured with
      *        rules for this locale. This locale will also be used for standard
      *        number formatting.
@@ -256,7 +257,7 @@
 
     /**
      * Creates a new <code>PluralFormat</code> for the plural type.
-     * The standard number formatting will be done using the given JDK locale.
+     * The standard number formatting will be done using the given {@link java.util.Locale}.
      * @param locale the default number formatting will be done using this
      *        locale.
      * @param type The plural type (e.g., cardinal or ordinal).
diff --git a/android_icu4j/src/main/java/android/icu/text/PluralRules.java b/android_icu4j/src/main/java/android/icu/text/PluralRules.java
index 1a5020c..fbee492 100644
--- a/android_icu4j/src/main/java/android/icu/text/PluralRules.java
+++ b/android_icu4j/src/main/java/android/icu/text/PluralRules.java
@@ -1,7 +1,7 @@
 /* GENERATED SOURCE. DO NOT MODIFY. */
 /*
  *******************************************************************************
- * Copyright (C) 2007-2015, International Business Machines Corporation and
+ * Copyright (C) 2007-2016, International Business Machines Corporation and
  * others. All Rights Reserved.
  *******************************************************************************
  */
@@ -1868,14 +1868,14 @@
 
     /**
      * Provides access to the predefined cardinal-number <code>PluralRules</code> for a given
-     * JDK locale.
+     * {@link java.util.Locale}.
      * Same as forLocale(locale, PluralType.CARDINAL).
      *
      * <p>ICU defines plural rules for many locales based on CLDR <i>Language Plural Rules</i>.
      * For these predefined rules, see CLDR page at
      * http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html
      *
-     * @param locale The JDK locale for which a <code>PluralRules</code> object is
+     * @param locale The locale for which a <code>PluralRules</code> object is
      *   returned.
      * @return The predefined <code>PluralRules</code> object for this locale.
      *   If there's no predefined rules for this locale, the rules
@@ -1910,13 +1910,13 @@
 
     /**
      * Provides access to the predefined <code>PluralRules</code> for a given
-     * JDK locale and the plural type.
+     * {@link java.util.Locale} and the plural type.
      *
      * <p>ICU defines plural rules for many locales based on CLDR <i>Language Plural Rules</i>.
      * For these predefined rules, see CLDR page at
      * http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html
      *
-     * @param locale The JDK locale for which a <code>PluralRules</code> object is
+     * @param locale The locale for which a <code>PluralRules</code> object is
      *   returned.
      * @param type The plural type (e.g., cardinal or ordinal).
      * @return The predefined <code>PluralRules</code> object for this locale.
diff --git a/android_icu4j/src/main/java/android/icu/text/RelativeDateTimeFormatter.java b/android_icu4j/src/main/java/android/icu/text/RelativeDateTimeFormatter.java
index ed12766..1846e2c 100644
--- a/android_icu4j/src/main/java/android/icu/text/RelativeDateTimeFormatter.java
+++ b/android_icu4j/src/main/java/android/icu/text/RelativeDateTimeFormatter.java
@@ -272,9 +272,9 @@
     }
 
     /**
-     * Returns a RelativeDateTimeFormatter for a particular JDK locale.
+     * Returns a RelativeDateTimeFormatter for a particular {@link java.util.Locale}.
      * 
-     * @param locale the JDK locale.
+     * @param locale the {@link java.util.Locale}.
      * @return An instance of RelativeDateTimeFormatter.
      */
     public static RelativeDateTimeFormatter getInstance(Locale locale) {
@@ -329,10 +329,10 @@
     }
 
     /**
-     * Returns a RelativeDateTimeFormatter for a particular JDK locale that uses a particular
-     * NumberFormat object.
+     * Returns a RelativeDateTimeFormatter for a particular {@link java.util.Locale} that uses a
+     * particular NumberFormat object.
      * 
-     * @param locale the JDK locale
+     * @param locale the {@link java.util.Locale}
      * @param nf the number format object. It is defensively copied to ensure thread-safety
      * and immutability of this class. 
      * @return An instance of RelativeDateTimeFormatter.
diff --git a/android_icu4j/src/main/java/android/icu/text/SpoofChecker.java b/android_icu4j/src/main/java/android/icu/text/SpoofChecker.java
index e9bf482..4f22146 100644
--- a/android_icu4j/src/main/java/android/icu/text/SpoofChecker.java
+++ b/android_icu4j/src/main/java/android/icu/text/SpoofChecker.java
@@ -1,7 +1,7 @@
 /* GENERATED SOURCE. DO NOT MODIFY. */
 /*
  ***************************************************************************
- * Copyright (C) 2008-2015 International Business Machines Corporation
+ * Copyright (C) 2008-2016 International Business Machines Corporation
  * and others. All Rights Reserved.
  ***************************************************************************
  *
@@ -1454,8 +1454,8 @@
     }
 
     /**
-     * Get a set of JDK locales for the scripts that are acceptable in strings to be checked. If no limitations on scripts
-     * have been specified, an empty set will be returned.
+     * Get a set of {@link java.util.Locale} instances for the scripts that are acceptable in strings to be checked. If no
+     * limitations on scripts have been specified, an empty set will be returned.
      *
      * @return A set of locales corresponding to the acceptable scripts.
      */
diff --git a/android_icu4j/src/main/java/android/icu/text/TimeZoneFormat.java b/android_icu4j/src/main/java/android/icu/text/TimeZoneFormat.java
index 4cadd7a..3e3e52a 100644
--- a/android_icu4j/src/main/java/android/icu/text/TimeZoneFormat.java
+++ b/android_icu4j/src/main/java/android/icu/text/TimeZoneFormat.java
@@ -1,7 +1,7 @@
 /* GENERATED SOURCE. DO NOT MODIFY. */
 /*
  *******************************************************************************
- * Copyright (C) 2011-2015, International Business Machines Corporation and    *
+ * Copyright (C) 2011-2016, International Business Machines Corporation and    *
  * others. All Rights Reserved.                                                *
  *******************************************************************************
  */
@@ -452,12 +452,13 @@
     }
 
     /**
-     * Returns a frozen instance of <code>TimeZoneFormat</code> for the given JDK locale.
+     * Returns a frozen instance of <code>TimeZoneFormat</code> for the given
+     * {@link java.text.Locale}.
      * <p><b>Note</b>: The instance returned by this method is frozen. If you want to
      * customize a TimeZoneFormat, you must use {@link #cloneAsThawed()} to get a
      * thawed copy first.
      * 
-     * @param locale the JDK locale.
+     * @param locale the {@link Locale}.
      * @return a frozen instance of <code>TimeZoneFormat</code> for the given locale.
      */
     public static TimeZoneFormat getInstance(Locale locale) {
diff --git a/android_icu4j/src/main/java/android/icu/text/TimeZoneNames.java b/android_icu4j/src/main/java/android/icu/text/TimeZoneNames.java
index 6bd1cb6..616a094 100644
--- a/android_icu4j/src/main/java/android/icu/text/TimeZoneNames.java
+++ b/android_icu4j/src/main/java/android/icu/text/TimeZoneNames.java
@@ -1,7 +1,7 @@
 /* GENERATED SOURCE. DO NOT MODIFY. */
 /*
  *******************************************************************************
- * Copyright (C) 2011-2015, International Business Machines Corporation and
+ * Copyright (C) 2011-2016, International Business Machines Corporation and
  * others. All Rights Reserved.
  *******************************************************************************
  */
@@ -156,10 +156,11 @@
     }
 
     /**
-     * Returns an instance of <code>TimeZoneNames</code> for the specified JDK locale.
+     * Returns an instance of <code>TimeZoneNames</code> for the specified
+     * {@link java.util.Locale}.
      * 
      * @param locale
-     *            The JDK locale.
+     *            The {@link java.util.Locale}.
      * @return An instance of <code>TimeZoneDisplayNames</code>
      */
     public static TimeZoneNames getInstance(Locale locale) {
diff --git a/android_icu4j/src/main/java/android/icu/util/Currency.java b/android_icu4j/src/main/java/android/icu/util/Currency.java
index 25a718e..da544e0 100644
--- a/android_icu4j/src/main/java/android/icu/util/Currency.java
+++ b/android_icu4j/src/main/java/android/icu/util/Currency.java
@@ -184,10 +184,10 @@
 
     /**
      * Returns an array of Strings which contain the currency
-     * identifiers that are valid for the given JDK locale on the 
+     * identifiers that are valid for the given {@link java.util.Locale} on the
      * given date.  If there are no such identifiers, returns null.
      * Returned identifiers are in preference order.
-     * @param loc the JDK locale for which to retrieve currency codes.
+     * @param loc the {@link java.util.Locale} for which to retrieve currency codes.
      * @param d the date for which to retrieve currency codes for the given locale.
      * @return The array of ISO currency codes.
      */
@@ -572,7 +572,8 @@
      * If the resource data for the default locale contains no entry for this currency,
      * then the ISO 4217 code is returned.
      * <p>
-     * Note: This method was added for JDK compatibility support and equivalent to
+     * Note: This method is a convenience equivalent for
+     * {@link java.util.Currency#getDisplayName()} and is equivalent to
      * <code>getName(Locale.getDefault(), LONG_NAME, null)</code>.
      * 
      * @return The display name of this currency
@@ -588,8 +589,9 @@
      * If the resource data for the given locale contains no entry for this currency,
      * then the ISO 4217 code is returned.
      * <p>
-     * Note: This method was added for JDK compatibility support and equivalent to
-     * <code>getName(locale, LONG_NAME, null)</code>.
+     * Note: This method is a convenience equivalent for
+     * {@link java.util.Currency#getDisplayName(java.util.Locale)} and is equivalent
+     * to <code>getName(locale, LONG_NAME, null)</code>.
      * 
      * @param locale locale in which to display currency
      * @return The display name of this currency for the specified locale
diff --git a/android_icu4j/src/main/java/android/icu/util/TimeZone.java b/android_icu4j/src/main/java/android/icu/util/TimeZone.java
index 314907e..427f32b 100644
--- a/android_icu4j/src/main/java/android/icu/util/TimeZone.java
+++ b/android_icu4j/src/main/java/android/icu/util/TimeZone.java
@@ -124,8 +124,8 @@
      */
     public static final int TIMEZONE_ICU = 0;
     /**
-     * <strong>[icu]</strong> A time zone implementation type indicating JDK TimeZone used by
-     * <code>getTimeZone</code>, <code>setDefaultTimeZoneType</code>
+     * <strong>[icu]</strong> A time zone implementation type indicating the {@link java.util.TimeZone}
+     * used by <code>getTimeZone</code>, <code>setDefaultTimeZoneType</code>
      * and <code>getDefaultTimeZoneType</code>.
      * @hide unsupported on Android
      */
@@ -593,16 +593,16 @@
      * <p>The default implementation in this class returns <code>true</code> if {@link #useDaylightTime()}
      * or {@link #inDaylightTime(Date) inDaylightTime(new Date())} returns <code>true</code>.
      * <p>
-     * <strong>Note:</strong> This method was added for JDK compatibility support.
-     * The JDK's <code>useDaylightTime()</code> only checks the last known rule(s), therefore
-     * it may return false even the zone observes daylight saving time currently. JDK added
-     * <code>observesDaylightTime()</code> to resolve the issue. In ICU, {@link #useDaylightTime()}
-     * works differently. The ICU implementation checks if the zone uses daylight saving time
-     * in the current calendar year. Therefore, it will never return <code>false</code> if
-     * daylight saving time is currently used.
+     * <strong>Note:</strong> This method was added for {@link java.util.TimeZone} compatibility
+     * support. The {@link java.util.TimeZone#useDaylightTime()} method only checks the last known
+     * rule(s), therefore it may return false even the zone observes daylight saving time currently.
+     * {@link java.util.TimeZone} added <code>observesDaylightTime()</code> to resolve the issue.
+     * In ICU, {@link #useDaylightTime()} works differently. The ICU implementation checks if the
+     * zone uses daylight saving time in the current calendar year. Therefore, it will never return
+     * <code>false</code> if daylight saving time is currently used.
      * <p>
      * ICU's TimeZone subclass implementations override this method to support the same behavior
-     * with JDK's <code>observesDaylightSavingTime()</code>. Unlike {@link #useDaylightTime()},
+     * with {@link java.util.TimeZone#observesDaylightTime()}. Unlike {@link #useDaylightTime()},
      * the implementation does not take past daylight saving time into account, so
      * that this method may return <code>false</code> even when {@link #useDaylightTime()} returns
      * <code>true</code>.
diff --git a/android_icu4j/src/main/java/android/icu/util/ULocale.java b/android_icu4j/src/main/java/android/icu/util/ULocale.java
index 7a943b9..883b70a 100644
--- a/android_icu4j/src/main/java/android/icu/util/ULocale.java
+++ b/android_icu4j/src/main/java/android/icu/util/ULocale.java
@@ -385,7 +385,7 @@
 
     /**
      * Construct a ULocale object from a {@link java.util.Locale}.
-     * @param loc a JDK locale
+     * @param loc a {@link java.util.Locale}
      */
     private ULocale(Locale loc) {
         this.localeID = getName(forLocale(loc).toString());
@@ -395,7 +395,7 @@
     /**
      * <strong>[icu]</strong> Returns a ULocale object for a {@link java.util.Locale}.
      * The ULocale is canonicalized.
-     * @param loc a JDK locale
+     * @param loc a {@link java.util.Locale}
      */
     public static ULocale forLocale(Locale loc) {
         if (loc == null) {
@@ -499,7 +499,7 @@
 
     /**
      * <strong>[icu]</strong> Converts this ULocale object to a {@link java.util.Locale}.
-     * @return a JDK locale that either exactly represents this object
+     * @return a {@link java.util.Locale} that either exactly represents this object
      * or is the closest approximation.
      */
     public Locale toLocale() {