W3cubDocs

/OpenJDK 21

Interface SourceCodeAnalysis.SnippetWrapper

Enclosing class:
SourceCodeAnalysis
public static interface SourceCodeAnalysis.SnippetWrapper
The wrapping of a snippet of Java source into valid top-level Java source. The wrapping will always either be an import or include a synthetic class at the top-level. If a synthetic class is generated, it will be proceeded by the package and import declarations, and may contain synthetic class members.

This interface, in addition to the mapped form, provides the context and position mapping information.

Method Summary

Modifier and Type Method Description
String fullClassName()
Returns the fully qualified class name of the wrapped() class.
Snippet.Kind kind()
Returns the Snippet.Kind of the source().
String source()
Returns the input that is wrapped.
int sourceToWrappedPosition(int pos)
Maps character position within the source to character position within the wrapped.
String wrapped()
Returns a Java class definition that wraps the source() or, if an import, the import source.
int wrappedToSourcePosition(int pos)
Maps character position within the wrapped to character position within the source.

Method Details

source

String source()
Returns the input that is wrapped. For wrappers(String), this is the source of the snippet within the input. A variable declaration of N variables will map to N wrappers with the source separated.

For wrapper(Snippet), this is Snippet.source().

Returns:
the input source corresponding to the wrapper.

wrapped

String wrapped()
Returns a Java class definition that wraps the source() or, if an import, the import source.

If the input is not a valid Snippet, this will not be a valid class/import definition.

The source may be divided and mapped to different locations within the wrapped source.

Returns:
the source wrapped into top-level Java code

fullClassName

String fullClassName()
Returns the fully qualified class name of the wrapped() class. For erroneous input, a best guess is returned.
Returns:
the name of the synthetic wrapped class; if an import, the name is not defined

kind

Snippet.Kind kind()
Returns the Snippet.Kind of the source().
Returns:
an enum representing the general kind of snippet.

sourceToWrappedPosition

int sourceToWrappedPosition(int pos)
Maps character position within the source to character position within the wrapped.
Parameters:
pos - the position in source()
Returns:
the corresponding position in wrapped()

wrappedToSourcePosition

int wrappedToSourcePosition(int pos)
Maps character position within the wrapped to character position within the source.
Parameters:
pos - the position in wrapped()
Returns:
the corresponding position in source()

© 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.jshell/jdk/jshell/SourceCodeAnalysis.SnippetWrapper.html