179 *
180 * A {@linkplain ModuleElement#getEnclosedElements module}
181 * encloses packages within it.
182 *
183 * Enclosed elements may include implicitly declared {@linkplain
184 * Elements.Origin#MANDATED mandated} elements.
185 *
186 * Other kinds of elements are not currently considered to enclose
187 * any elements; however, that may change as this API or the
188 * programming language evolves.
189 *
190 * @apiNote Elements of certain kinds can be isolated using
191 * methods in {@link ElementFilter}.
192 *
193 * @return the enclosed elements, or an empty list if none
194 * @see TypeElement#getEnclosedElements
195 * @see PackageElement#getEnclosedElements
196 * @see ModuleElement#getEnclosedElements
197 * @see Elements#getAllMembers
198 * @jls 8.8.9 Default Constructor
199 * @jls 8.9 Enums
200 * @revised 9
201 * @spec JPMS
202 */
203 List<? extends Element> getEnclosedElements();
204
205 /**
206 * Returns {@code true} if the argument represents the same
207 * element as {@code this}, or {@code false} otherwise.
208 *
209 * @apiNote The identity of an element involves implicit state
210 * not directly accessible from the element's methods, including
211 * state about the presence of unrelated types. Element objects
212 * created by different implementations of these interfaces should
213 * <i>not</i> be expected to be equal even if "the same"
214 * element is being modeled; this is analogous to the inequality
215 * of {@code Class} objects for the same class file loaded through
216 * different class loaders.
217 *
218 * @param obj the object to be compared with this element
219 * @return {@code true} if the specified object represents the same
|
179 *
180 * A {@linkplain ModuleElement#getEnclosedElements module}
181 * encloses packages within it.
182 *
183 * Enclosed elements may include implicitly declared {@linkplain
184 * Elements.Origin#MANDATED mandated} elements.
185 *
186 * Other kinds of elements are not currently considered to enclose
187 * any elements; however, that may change as this API or the
188 * programming language evolves.
189 *
190 * @apiNote Elements of certain kinds can be isolated using
191 * methods in {@link ElementFilter}.
192 *
193 * @return the enclosed elements, or an empty list if none
194 * @see TypeElement#getEnclosedElements
195 * @see PackageElement#getEnclosedElements
196 * @see ModuleElement#getEnclosedElements
197 * @see Elements#getAllMembers
198 * @jls 8.8.9 Default Constructor
199 * @jls 8.9 Enum Types
200 * @revised 9
201 * @spec JPMS
202 */
203 List<? extends Element> getEnclosedElements();
204
205 /**
206 * Returns {@code true} if the argument represents the same
207 * element as {@code this}, or {@code false} otherwise.
208 *
209 * @apiNote The identity of an element involves implicit state
210 * not directly accessible from the element's methods, including
211 * state about the presence of unrelated types. Element objects
212 * created by different implementations of these interfaces should
213 * <i>not</i> be expected to be equal even if "the same"
214 * element is being modeled; this is analogous to the inequality
215 * of {@code Class} objects for the same class file loaded through
216 * different class loaders.
217 *
218 * @param obj the object to be compared with this element
219 * @return {@code true} if the specified object represents the same
|