Класс SourceCodeAnalysis
public abstract class SourceCodeAnalysis extends Object
- С момента:
- 9
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static enum |
SourceCodeAnalysis.Attribute |
Атрибут диапазона, который можно использовать для определения цвета. |
static enum |
SourceCodeAnalysis.Completeness |
Описывает полноту заданных входных данных. |
static enum |
SourceCodeAnalysis.CompletionContext |
Различные флаги, описывающие контекст выполнения дополнения. |
static interface |
SourceCodeAnalysis.CompletionInfo |
Результат analyzeCompletion(String input). |
static interface |
SourceCodeAnalysis.CompletionState |
Предоставляет доступ к состоянию дополнения. |
static interface |
SourceCodeAnalysis.Documentation |
Описание варианта продолжения ввода пользователя. |
static interface |
SourceCodeAnalysis.ElementSuggestion |
Описание Element, который может быть продолжением заданного фрагмента. |
static interface |
SourceCodeAnalysis.ElementSuggestionConvertor<S> |
Преобразователь списка SourceCodeAnalysis.ElementSuggestion в список элементов дополнения пользовательского целевого типа. |
static final record |
SourceCodeAnalysis.Highlight |
Назначает диапазонам внутри фрагмента атрибуты, которые можно использовать для раскрашивания. |
static final class |
SourceCodeAnalysis.QualifiedNames |
Список возможных квалифицированных имён. |
static interface |
SourceCodeAnalysis.SnippetWrapper |
Обёртка фрагмента исходного кода Java в допустимый исходный код верхнего уровня Java. |
static interface |
SourceCodeAnalysis.Suggestion |
Вариант продолжения ввода пользователя. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract SourceCodeAnalysis.CompletionInfo |
analyzeCompletion |
Для заданной входной строки находит первый фрагмент кода (один оператор, объявление, директиву импорта или выражение) и определяет, является ли он полным. |
abstract String |
analyzeType |
Определяет тип заданного выражения. |
abstract List |
completionSuggestions |
Вычисляет возможные продолжения заданных входных данных. |
abstract <S> List |
completionSuggestions |
Вычисляет возможные продолжения заданных входных данных. |
abstract Collection |
dependents |
Возвращает коллекцию Snippet, которые, возможно, потребуется обновить при обновлении заданного Snippet. |
abstract List |
documentation |
Создаёт документацию для заданного пользовательского ввода. |
abstract List |
highlights |
Возвращает коллекцию Highlight, которые можно использовать для раскрашивания заданного фрагмента. |
abstract SourceCodeAnalysis.QualifiedNames |
listQualifiedNames |
Перечисляет квалифицированные имена, известные для простого имени в заданном коде непосредственно слева от указанной позиции курсора. |
abstract List |
sourceToSnippets |
Преобразует исходный код фрагмента в объект Snippet (или в список объектов Snippet в случае некоторых объявлений var, например: int x, y, z;). |
abstract SourceCodeAnalysis.SnippetWrapper |
wrapper |
Возвращает сведения об обёртке для Snippet. |
abstract List |
wrappers |
Возвращает сведения об обёртке для фрагмента внутри исходной входной строки. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создаёт и возвращает копию этого объекта. |
boolean |
equals |
Указывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии. Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает значение хеш-кода этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени. |
Подробное описание методов
analyzeCompletion
public abstract SourceCodeAnalysis.CompletionInfo analyzeCompletion(String input)
- Параметры:
-
input— входная исходная строка - Возвращает:
- экземпляр CompletionInfo со сведениями о расположении и полноте
completionSuggestions
public abstract List<SourceCodeAnalysis.Suggestion> completionSuggestions(String input, int cursor, int[] anchor)
JShell, включая информацию о типах, для фильтрации подсказок.- Параметры:
-
input— введённые пользователем данные на текущий момент -
cursor— текущая позиция курсора в заданном текстеinput -
anchor— выходной параметр: при выборе варианта текст между якорем и курсором будет удалён и заменён выбранным вариантом - Возвращает:
- список возможных продолжений заданных входных данных.
completionSuggestions
public abstract <S> List<S> completionSuggestions(String input, int cursor, SourceCodeAnalysis.ElementSuggestionConvertor<S> convertor)
JShell, включая информацию о типах, для фильтрации подсказок.- Параметры:
-
input— введённые пользователем данные на текущий момент -
cursor— текущая позиция курсора в заданном текстеinput -
convertor— преобразователь заданного SourceCodeAnalysis.ElementSuggestion в пользовательские подсказки дополнения. - Возвращает:
- список возможных продолжений заданных входных данных.
- С момента:
- 26
documentation
public abstract List<SourceCodeAnalysis.Documentation> documentation(String input, int cursor, boolean computeJavadoc)
Documentation.- Параметры:
-
input— фрагмент, введённый пользователем на текущий момент -
cursor— текущая позиция курсора в заданном текстеinput -
computeJavadoc— true, если вместе с сигнатурой следует создать документацию Javadoc для заданных входных данных - Возвращает:
- документацию для заданного пользовательского ввода; если ему соответствуют несколько элементов, возвращается несколько объектов
Documentation.
analyzeType
public abstract String analyzeType(String code, int cursor)
code и заканчивается в указанной позиции cursor. Возвращает null, если тип выражения невозможно определить.- Параметры:
-
code— выражение, тип которого необходимо определить -
cursor— текущая позиция курсора в заданном коде - Возвращает:
- определённый тип или null, если его невозможно определить
listQualifiedNames
public abstract SourceCodeAnalysis.QualifiedNames listQualifiedNames(String code, int cursor)
JShell.addToClasspath(java.lang.String)).- Параметры:
-
code— выражение, для которого требуется вычислить возможные квалифицированные имена -
cursor— текущая позиция курсора в заданном коде - Возвращает:
- известные квалифицированные имена
wrapper
public abstract SourceCodeAnalysis.SnippetWrapper wrapper(Snippet snippet)
Snippet. Обёртка меняется вместе с окружением, поэтому вызовы этого метода в разное время могут возвращать разные результаты.- Параметры:
-
snippet—Snippet, для которого требуется получить обёртку - Возвращает:
- сведения об обёртке
wrappers
public abstract List<SourceCodeAnalysis.SnippetWrapper> wrappers(String input)
Для некорректных и неполных фрагментов также создаются обёртки. Список упорядочен по порядку появления фрагментов. Обёртка меняется вместе с окружением, поэтому вызовы этого метода в разное время могут возвращать разные результаты.
Входные данные должны содержать ровно один полный фрагмент исходного кода: выражение, оператор, объявление переменной, объявление метода, объявление класса или директиву импорта. Чтобы разбить произвольные входные данные на отдельные полные фрагменты, используйте analyzeCompletion(String).
Обёртка может отличаться от той, что возвращается методом wrapper(Snippet), если исходный код преобразовать в Snippet.
- Параметры:
-
input— исходные входные данные, для которых необходимо создать обёртки - Возвращает:
- список сведений об обёртках
sourceToSnippets
public abstract List<Snippet> sourceToSnippets(String input)
Snippet (или в список объектов Snippet в случае некоторых объявлений var, например: int x, y, z;). Фрагменты не устанавливаются: объявления недоступны другим фрагментам, импорты не добавляются. Фрагменты не выполняются. К объекту Snippet можно применять запросы. Значение Snippet.id() будет "*UNASSOCIATED*". Возвращённые фрагменты не связаны с экземпляром JShell, поэтому попытки передать их методам JShell приведут к исключению IllegalArgumentException, если не указано иное. Они не будут отображаться в результатах запросов фрагментов, например, JShell.snippets().
На входные данные распространяются те же ограничения, что и на JShell.eval(String).
Выполняется только предварительная компиляция, достаточная для создания Snippet. Фрагменты, заведомо содержащие ошибки, возвращаются как ErroneousSnippet; в остальных фрагментах ошибки могут присутствовать или отсутствовать.
- Параметры:
-
input— входная строка для преобразования - Возвращает:
- обычно список Snippet из одного элемента, но список может быть пустым или содержать несколько элементов
- Выбрасывает:
-
IllegalStateException— если экземплярJShellзакрыт. - С момента:
- 10
dependents
public abstract Collection<Snippet> dependents(Snippet snippet)
Snippet, которые, возможно, потребуется обновить при обновлении заданного Snippet. Возвращаемая коллекция намеренно включает все возможные варианты и может содержать множество ложноположительных результатов.- Параметры:
-
snippet—Snippet, для которого требуется получить зависимые элементы - Возвращает:
- коллекцию зависимых элементов
highlights
public abstract List<SourceCodeAnalysis.Highlight> highlights(String snippet)
Highlight, которые можно использовать для раскрашивания заданного фрагмента. Возвращённые Highlight не перекрываются и отсортированы по начальной позиции.
- Параметры:
-
snippet— фрагмент, для которого необходимо вычислитьHighlight - Возвращает:
- вычисленные
Highlight. - С момента:
- 19
© 1993, 2025, 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.