W3cubDocs

/OpenJDK 21

Interface Scope

public interface Scope
Interface for determining locally available program elements, such as local variables and imports. Upon creation, a Scope is associated with a given program position; for example, a tree node. This position may be used to infer an enclosing method and/or class.

A Scope does not itself contain the details of the elements corresponding to the parameters, methods and fields of the methods and classes containing its position. However, these elements can be determined from the enclosing elements.

Scopes may be contained in an enclosing scope. The outermost scope contains those elements available via "star import" declarations; the scope within that contains the top level elements of the compilation unit, including any named imports.

Since:
1.6

Method Summary

Modifier and Type Method Description
TypeElement getEnclosingClass()
Returns the innermost type element containing the position of this scope.
ExecutableElement getEnclosingMethod()
Returns the innermost executable element containing the position of this scope.
Scope getEnclosingScope()
Returns the enclosing scope.
Iterable<? extends Element> getLocalElements()
Returns the elements directly contained in this scope.

Method Details

getEnclosingScope

Scope getEnclosingScope()
Returns the enclosing scope.
Returns:
the enclosing scope

getEnclosingClass

TypeElement getEnclosingClass()
Returns the innermost type element containing the position of this scope.
Returns:
the innermost enclosing type element

getEnclosingMethod

ExecutableElement getEnclosingMethod()
Returns the innermost executable element containing the position of this scope.
Returns:
the innermost enclosing method declaration

getLocalElements

Iterable<? extends Element> getLocalElements()
Returns the elements directly contained in this scope.
Returns:
the elements contained in this scope

© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/jdk.compiler/com/sun/source/tree/Scope.html