7015530: Reiterate API specializations in javax.lang.model.elment subinterfaces
Reviewed-by: jjg
--- a/langtools/src/share/classes/javax/lang/model/element/Element.java Fri Jan 28 12:36:34 2011 +0000
+++ b/langtools/src/share/classes/javax/lang/model/element/Element.java Fri Jan 28 16:54:18 2011 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, 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
@@ -159,18 +159,26 @@
Set<Modifier> getModifiers();
/**
- * Returns the simple (unqualified) name of this element.
- * The name of a generic type does not include any reference
- * to its formal type parameters.
- * For example, the simple name of the type element
- * {@code java.util.Set<E>} is {@code "Set"}.
- * If this element represents an unnamed package, an empty name is
- * returned. If it represents a constructor, the name "{@code
- * <init>}" is returned. If it represents a static initializer,
- * the name "{@code <clinit>}" is returned. If it represents an
- * anonymous class or instance initializer, an empty name is
+ * Returns the simple (unqualified) name of this element. The
+ * name of a generic type does not include any reference to its
+ * formal type parameters.
+ *
+ * For example, the simple name of the type element {@code
+ * java.util.Set<E>} is {@code "Set"}.
+ *
+ * If this element represents an unnamed {@linkplain
+ * PackageElement#getSimpleName package}, an empty name is
* returned.
*
+ * If it represents a {@linkplain ExecutableElement#getSimpleName
+ * constructor}, the name "{@code <init>}" is returned. If it
+ * represents a {@linkplain ExecutableElement#getSimpleName static
+ * initializer}, the name "{@code <clinit>}" is returned.
+ *
+ * If it represents an {@linkplain TypeElement#getSimpleName
+ * anonymous class} or {@linkplain ExecutableElement#getSimpleName
+ * instance initializer}, an empty name is returned.
+ *
* @return the simple name of this element
*/
Name getSimpleName();
@@ -182,9 +190,18 @@
* <li> If this element is one whose declaration is lexically enclosed
* immediately within the declaration of another element, that other
* element is returned.
- * <li> If this is a top-level type, its package is returned.
- * <li> If this is a package, {@code null} is returned.
- * <li> If this is a type parameter, {@code null} is returned.
+ *
+ * <li> If this is a {@linkplain TypeElement#getEnclosingElement
+ * top-level type}, its package is returned.
+ *
+ * <li> If this is a {@linkplain
+ * PackageElement#getEnclosingElement package}, {@code null} is
+ * returned.
+
+ * <li> If this is a {@linkplain
+ * TypeParameterElement#getEnclosingElement type parameter},
+ * {@code null} is returned.
+
* </ul>
*
* @return the enclosing element, or {@code null} if there is none
--- a/langtools/src/share/classes/javax/lang/model/element/ExecutableElement.java Fri Jan 28 12:36:34 2011 +0000
+++ b/langtools/src/share/classes/javax/lang/model/element/ExecutableElement.java Fri Jan 28 16:54:18 2011 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, 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
@@ -97,4 +97,17 @@
* @return the default value, or {@code null} if none
*/
AnnotationValue getDefaultValue();
+
+ /**
+ * Returns the simple name of a constructor, method, or
+ * initializer. For a constructor, the name {@code "<init>"} is
+ * returned, for a static initializer, the name {@code "<clinit>"}
+ * is returned, and for an anonymous class or instance
+ * initializer, an empty name is returned.
+ *
+ * @return the simple name of a constructor, method, or
+ * initializer
+ */
+ @Override
+ Name getSimpleName();
}
--- a/langtools/src/share/classes/javax/lang/model/element/PackageElement.java Fri Jan 28 12:36:34 2011 +0000
+++ b/langtools/src/share/classes/javax/lang/model/element/PackageElement.java Fri Jan 28 16:54:18 2011 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, 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
@@ -48,6 +48,16 @@
Name getQualifiedName();
/**
+ * Returns the simple name of this package. For an unnamed
+ * package, an empty name is returned
+ *
+ * @return the simple name of this package or an empty name if
+ * this is an unnamed package
+ */
+ @Override
+ Name getSimpleName();
+
+ /**
* Returns {@code true} is this is an unnamed package and {@code
* false} otherwise.
*
@@ -56,4 +66,13 @@
* @jls3 7.4.2 Unnamed Packages
*/
boolean isUnnamed();
+
+ /**
+ * Returns {@code null} since a package is not enclosed by another
+ * element.
+ *
+ * @return {@code null}
+ */
+ @Override
+ Element getEnclosingElement();
}
--- a/langtools/src/share/classes/javax/lang/model/element/TypeElement.java Fri Jan 28 12:36:34 2011 +0000
+++ b/langtools/src/share/classes/javax/lang/model/element/TypeElement.java Fri Jan 28 16:54:18 2011 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, 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
@@ -105,6 +105,19 @@
*/
Name getQualifiedName();
+
+ /**
+ * Returns the simple name of this type element.
+ *
+ * For an anonymous class, an empty name is returned.
+ *
+ * @return the simple name of this class or interface,
+ * an empty name for an anonymous class
+ *
+ */
+ @Override
+ Name getSimpleName();
+
/**
* Returns the direct superclass of this type element.
* If this type element represents an interface or the class
@@ -132,4 +145,16 @@
* if there are none
*/
List<? extends TypeParameterElement> getTypeParameters();
+
+
+ /**
+ * Returns the package of a top-level type and returns the
+ * immediately lexically enclosing element for a {@linkplain
+ * NestingKind#isNested nested} type.
+ *
+ * @return the package of a top-level type, the immediately
+ * lexically enclosing element for a nested type
+ */
+ @Override
+ Element getEnclosingElement();
}
--- a/langtools/src/share/classes/javax/lang/model/element/TypeParameterElement.java Fri Jan 28 12:36:34 2011 +0000
+++ b/langtools/src/share/classes/javax/lang/model/element/TypeParameterElement.java Fri Jan 28 16:54:18 2011 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, 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
@@ -62,4 +62,12 @@
* there are none
*/
List<? extends TypeMirror> getBounds();
+
+ /**
+ * Returns {@code null}.
+ *
+ * @return {@code null}
+ */
+ @Override
+ Element getEnclosingElement();
}
--- a/langtools/src/share/classes/javax/lang/model/element/VariableElement.java Fri Jan 28 12:36:34 2011 +0000
+++ b/langtools/src/share/classes/javax/lang/model/element/VariableElement.java Fri Jan 28 16:54:18 2011 -0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2005, 2011, 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
@@ -28,17 +28,16 @@
import javax.lang.model.type.TypeMirror;
import javax.lang.model.util.Elements;
-
/**
* Represents a field, {@code enum} constant, method or constructor
- * parameter, local variable, or exception parameter.
+ * parameter, local variable, resource variable, or exception
+ * parameter.
*
* @author Joseph D. Darcy
* @author Scott Seligman
* @author Peter von der Ahé
* @since 1.6
*/
-
public interface VariableElement extends Element {
/**