提交 056f95d7 编写于 作者: D darcy

7130768: Clarify behavior of Element.getEnclosingElements in subtypes

Reviewed-by: mcimadamore, jjg
上级 ffc17fe6
/* /*
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -214,14 +214,13 @@ public interface Element { ...@@ -214,14 +214,13 @@ public interface Element {
* Returns the elements that are, loosely speaking, directly * Returns the elements that are, loosely speaking, directly
* enclosed by this element. * enclosed by this element.
* *
* A class or interface is considered to enclose the fields, * A {@linkplain TypeElement#getEnclosedElements class or
* methods, constructors, and member types that it directly * interface} is considered to enclose the fields, methods,
* declares. This includes any (implicit) default constructor and * constructors, and member types that it directly declares.
* the implicit {@code values} and {@code valueOf} methods of an
* enum type.
* *
* A package encloses the top-level classes and interfaces within * A {@linkplain PackageElement#getEnclosedElements package}
* it, but is not considered to enclose subpackages. * encloses the top-level classes and interfaces within it, but is
* not considered to enclose subpackages.
* *
* Other kinds of elements are not currently considered to enclose * Other kinds of elements are not currently considered to enclose
* any elements; however, that may change as this API or the * any elements; however, that may change as this API or the
...@@ -231,6 +230,8 @@ public interface Element { ...@@ -231,6 +230,8 @@ public interface Element {
* methods in {@link ElementFilter}. * methods in {@link ElementFilter}.
* *
* @return the enclosed elements, or an empty list if none * @return the enclosed elements, or an empty list if none
* @see PackageElement#getEnclosedElements
* @see TypeElement#getEnclosedElements
* @see Elements#getAllMembers * @see Elements#getAllMembers
* @jls 8.8.9 Default Constructor * @jls 8.8.9 Default Constructor
* @jls 8.9 Enums * @jls 8.9 Enums
......
/* /*
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -25,6 +25,8 @@ ...@@ -25,6 +25,8 @@
package javax.lang.model.element; package javax.lang.model.element;
import java.util.List;
/** /**
* Represents a package program element. Provides access to information * Represents a package program element. Provides access to information
* about the package and its members. * about the package and its members.
...@@ -49,7 +51,7 @@ public interface PackageElement extends Element, QualifiedNameable { ...@@ -49,7 +51,7 @@ public interface PackageElement extends Element, QualifiedNameable {
/** /**
* Returns the simple name of this package. For an unnamed * Returns the simple name of this package. For an unnamed
* package, an empty name is returned * package, an empty name is returned.
* *
* @return the simple name of this package or an empty name if * @return the simple name of this package or an empty name if
* this is an unnamed package * this is an unnamed package
...@@ -57,6 +59,18 @@ public interface PackageElement extends Element, QualifiedNameable { ...@@ -57,6 +59,18 @@ public interface PackageElement extends Element, QualifiedNameable {
@Override @Override
Name getSimpleName(); Name getSimpleName();
/**
* Returns the {@linkplain NestingKind#TOP_LEVEL top-level}
* classes and interfaces within this package. Note that
* subpackages are <em>not</em> considered to be enclosed by a
* package.
*
* @return the top-level classes and interfaces within this
* package
*/
@Override
List<? extends Element> getEnclosedElements();
/** /**
* Returns {@code true} is this is an unnamed package and {@code * Returns {@code true} is this is an unnamed package and {@code
* false} otherwise. * false} otherwise.
......
/* /*
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
...@@ -61,7 +61,12 @@ import javax.lang.model.util.*; ...@@ -61,7 +61,12 @@ import javax.lang.model.util.*;
*/ */
public interface TypeElement extends Element, Parameterizable, QualifiedNameable { public interface TypeElement extends Element, Parameterizable, QualifiedNameable {
/** /**
* {@inheritDoc} * Returns the fields, methods, constructors, and member types
* that are directly declared in this class or interface.
*
* This includes any (implicit) default constructor and
* the implicit {@code values} and {@code valueOf} methods of an
* enum type.
* *
* <p> Note that as a particular instance of the {@linkplain * <p> Note that as a particular instance of the {@linkplain
* javax.lang.model.element general accuracy requirements} and the * javax.lang.model.element general accuracy requirements} and the
...@@ -75,6 +80,7 @@ public interface TypeElement extends Element, Parameterizable, QualifiedNameable ...@@ -75,6 +80,7 @@ public interface TypeElement extends Element, Parameterizable, QualifiedNameable
* *
* @return the enclosed elements in proper order, or an empty list if none * @return the enclosed elements in proper order, or an empty list if none
*/ */
@Override
List<? extends Element> getEnclosedElements(); List<? extends Element> getEnclosedElements();
/** /**
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册