OpenJDK / portola / portola
changeset 8233:fda68eae1504
7015530: Reiterate API specializations in javax.lang.model.elment subinterfaces
Reviewed-by: jjg
author | darcy |
---|---|
date | Fri, 28 Jan 2011 16:54:18 -0800 |
parents | 7691decfa01b |
children | 5050975e2df0 |
files | langtools/src/share/classes/javax/lang/model/element/Element.java langtools/src/share/classes/javax/lang/model/element/ExecutableElement.java langtools/src/share/classes/javax/lang/model/element/PackageElement.java langtools/src/share/classes/javax/lang/model/element/TypeElement.java langtools/src/share/classes/javax/lang/model/element/TypeParameterElement.java langtools/src/share/classes/javax/lang/model/element/VariableElement.java |
diffstat | 6 files changed, 103 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- 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 { /**