# HG changeset patch # User darcy # Date 1382395031 25200 # Node ID c64ceb9090aab1cf8b2c6cc6e9f6ee166dfb0cc8 # Parent bda04738a55ace97058b7c15824694e6916b41a8 8026984: Clarity intended use of jdk.Exported Reviewed-by: psandoz, mr, alanb diff -r bda04738a55a -r c64ceb9090aa langtools/src/share/classes/jdk/Exported.java --- a/langtools/src/share/classes/jdk/Exported.java Mon Oct 21 15:55:02 2013 +0100 +++ b/langtools/src/share/classes/jdk/Exported.java Mon Oct 21 15:37:11 2013 -0700 @@ -38,7 +38,30 @@ * com.sun.*} are official parts of the JDK meant to be generally * usable while other portions of {@code com.sun.*} are not. This * annotation type allows those portions to be easily and - * programmaticly distinguished. + * programmatically distinguished. + * + *
If in one release a type or package is
+ * @Exported(true)
, in a subsequent major release such a
+ * type or package can transition to @Exported(false)
.
+ *
+ *
If a type or package is @Exported(false)
in a
+ * release, it may be removed in a subsequent major release.
+ *
+ *
If a top-level type has an @Exported
annotation,
+ * any nested member types with the top-level type should have an
+ * @Exported
annotation with the same value.
+ *
+ * (In exceptional cases, if a nested type is going to be removed
+ * before its enclosing type, the nested type's could be
+ * @Exported(false)
while its enclosing type was
+ * @Exported(true)
.)
+ *
+ * Likewise, if a package has an @Exported
annotation,
+ * top-level types within that package should also have an
+ * @Exported
annotation.
+ *
+ * Sometimes a top-level type may have a different
+ * @Exported
value than its package.
*
* @since 1.8
*/