Spec-Zone.ru › OpenJDK 17

Класс DirectExecutionControl

java.lang.Object
jdk.jshell.execution.DirectExecutionControl
Все реализуемые интерфейсы:
AutoCloseable, ExecutionControl
Прямые известные подклассы:
LocalExecutionControl, RemoteExecutionControl
public class DirectExecutionControl extends Object implements ExecutionControl
Реализация ExecutionControl, выполняющаяся в текущем процессе. Может использоваться непосредственно или через канал с помощью Util.forwardExecutionControl(ExecutionControl, java.io.ObjectInput, java.io.ObjectOutput).
С:
9

Краткое описание вложенных классов

Вложенные классы/интерфейсы, объявленные в интерфейсе jdk.jshell.spi.ExecutionControl

ExecutionControl.ClassBytecodes, ExecutionControl.ClassInstallException, ExecutionControl.EngineTerminationException, ExecutionControl.ExecutionControlException, ExecutionControl.InternalException, ExecutionControl.NotImplementedException, ExecutionControl.ResolutionException, ExecutionControl.RunException, ExecutionControl.StoppedException, ExecutionControl.UserException

Краткое описание конструкторов

Конструктор Описание
DirectExecutionControl()
Создаёт экземпляр, используя стандартную загрузку классов.
DirectExecutionControl(LoaderDelegate loaderDelegate)
Создаёт экземпляр, делегируя операции загрузчика указанному делегату.

Краткое описание методов

Модификатор и тип Метод Описание
void addToClasspath(String cp)
Добавляет путь к пути класса выполнения.
protected void classesRedefined(ExecutionControl.ClassBytecodes[] cbcs)
Уведомляет о том, что классы были переопределены.
protected void clientCodeEnter()
Помечает вход в пользовательский код.
protected void clientCodeLeave()
Помечает выход из пользовательского кода.
void close()
Завершает работу этого движка выполнения.
Object extensionCommand(String command, Object arg)
Выполняет нестандартную команду (или стандартную команду из более новой версии).
protected Class<?> findClass(String name)
Находит класс с указанным двоичным именем.
protected String invoke(Method doitMethod)
Вызывает указанный "doit-метод", статический метод без параметров.
String invoke(String className, String methodName)
Вызывает исполняемый фрагмент кода, вызывая метод в указанном классе-обёртке.
void load(ExecutionControl.ClassBytecodes[] cbcs)
Попытка загрузить новые классы.
void redefine(ExecutionControl.ClassBytecodes[] cbcs)
Попытка переопределить ранее загруженные классы.
void stop()
Прерывает выполняемый вызов.
protected String throwConvertedInvocationException(Throwable cause)
Преобразует входящие исключения в пользовательском коде в экземпляры подклассов ExecutionControl.ExecutionControlException и выбрасывает преобразованное исключение.
protected String throwConvertedOtherException(Throwable ex)
Преобразует входящие исключения в коде агента в экземпляры подклассов ExecutionControl.ExecutionControlException и выбрасывает преобразованное исключение.
protected static String valueString(Object value)
Преобразует значение Object из ExecutionControl.invoke(String, String) или ExecutionControl.varValue(String, String) в String.
String varValue(String className, String varName)
Возвращает значение переменной.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание конструкторов

DirectExecutionControl

public DirectExecutionControl(LoaderDelegate loaderDelegate)
Создаёт экземпляр, делегируя операции загрузки указанному делегату.
Параметры:
loaderDelegate - делегат для обработки загрузки классов

DirectExecutionControl

public DirectExecutionControl()
Создаёт экземпляр, используя стандартную загрузку классов.

Подробное описание методов

load

public void load(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.ClassInstallException, ExecutionControl.NotImplementedException, ExecutionControl.EngineTerminationException
Описание скопировано из интерфейса: ExecutionControl
Попытка загрузить новые классы.
Определено в:
load в интерфейсе ExecutionControl
Параметры:
cbcs - имя класса и байткоды для загрузки
Исключения:
ExecutionControl.ClassInstallException - исключение, произошедшее при загрузке классов, некоторые или все не были загружены
ExecutionControl.NotImplementedException - если не реализовано
ExecutionControl.EngineTerminationException - движок выполнения завершился

redefine

public void redefine(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.ClassInstallException, ExecutionControl.NotImplementedException, ExecutionControl.EngineTerminationException
Описание скопировано из интерфейса: ExecutionControl
Попытка переопределить ранее загруженные классы.
Определено в:
redefine в интерфейсе ExecutionControl
Параметры:
cbcs - имя класса и байткоды для переопределения
Исключения:
ExecutionControl.ClassInstallException - исключение, произошедшее при переопределении классов, некоторые или все не были переопределены
ExecutionControl.NotImplementedException - если не реализовано
ExecutionControl.EngineTerminationException - движок выполнения завершился

classesRedefined

protected void classesRedefined(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.NotImplementedException, ExecutionControl.EngineTerminationException
Уведомление о том, что классы были переопределены.
Параметры:
cbcs - имя класса и байткоды для переопределения
Исключения:
ExecutionControl.NotImplementedException - если не реализовано
ExecutionControl.EngineTerminationException - движок выполнения завершился

invoke

public String invoke(String className, String methodName) throws ExecutionControl.RunException, ExecutionControl.InternalException, ExecutionControl.EngineTerminationException
Описание скопировано из интерфейса: ExecutionControl
Вызывает исполняемый фрагмент кода, вызывая метод указанного обертывающего класса. Метод не должен принимать аргументы и возвращать String.
Определено в:
invoke в интерфейсе ExecutionControl
Параметры:
className - класс, метод которого должен быть вызван
methodName - имя вызываемого метода
Возвращает:
результат выполнения или null, если результат отсутствует
Исключения:
ExecutionControl.UserException - вызов вызвал исключение пользователя
ExecutionControl.ResolutionException - вызов попытался напрямую или косвенно вызвать неразрешённый фрагмент кода
ExecutionControl.StoppedException - если выполнение было отменено вызовом ExecutionControl.stop()
ExecutionControl.InternalException - произошла внутренняя проблема
ExecutionControl.EngineTerminationException - движок выполнения завершился
ExecutionControl.RunException

varValue

public String varValue(String className, String varName) throws ExecutionControl.RunException, ExecutionControl.EngineTerminationException, ExecutionControl.InternalException
Описание скопировано из интерфейса: ExecutionControl
Возвращает значение переменной.
Определено в:
varValue в интерфейсе ExecutionControl
Параметры:
className - имя обертывающего класса переменной
varName - имя переменной
Возвращает:
значение переменной
Исключения:
ExecutionControl.UserException - форматирование значения вызвало исключение пользователя
ExecutionControl.ResolutionException - форматирование значения попыталось напрямую или косвенно вызвать неразрешённый фрагмент кода
ExecutionControl.StoppedException - если форматирование значения было отменено вызовом ExecutionControl.stop()
ExecutionControl.EngineTerminationException - движок выполнения завершился
ExecutionControl.InternalException - произошла внутренняя проблема
ExecutionControl.RunException

addToClasspath

public void addToClasspath(String cp) throws ExecutionControl.EngineTerminationException, ExecutionControl.InternalException
Описание скопировано из интерфейса: ExecutionControl
Добавляет путь в путь выполнения класса.
Определено в:
addToClasspath в интерфейсе ExecutionControl
Параметры:
cp - путь для добавления
Исключения:
ExecutionControl.EngineTerminationException - движок выполнения завершился
ExecutionControl.InternalException - произошла внутренняя проблема

stop

public void stop() throws ExecutionControl.EngineTerminationException, ExecutionControl.InternalException
Прерывает выполняемый вызов.

Не поддерживается.

Определено в:
stop в интерфейсе ExecutionControl
Исключения:
ExecutionControl.EngineTerminationException - движок выполнения завершился
ExecutionControl.InternalException - произошла внутренняя проблема

extensionCommand

public Object extensionCommand(String command, Object arg) throws ExecutionControl.RunException, ExecutionControl.EngineTerminationException, ExecutionControl.InternalException
Описание скопировано из интерфейса: ExecutionControl
Выполняет нестандартную команду (или стандартную команду из более новой версии).
Определено в:
extensionCommand в интерфейсе ExecutionControl
Параметры:
command - нестандартная команда
arg - аргумент команды
Возвращает:
значение возврата команды
Исключения:
ExecutionControl.UserException - команда вызвала исключение пользователя
ExecutionControl.ResolutionException - команда попыталась напрямую или косвенно вызвать неразрешённый фрагмент кода
ExecutionControl.StoppedException - если команда была отменена вызовом ExecutionControl.stop()
ExecutionControl.EngineTerminationException - движок выполнения завершился
ExecutionControl.NotImplementedException - если не реализовано
ExecutionControl.InternalException - произошла внутренняя проблема
ExecutionControl.RunException

close

public void close()
Описание скопировано из интерфейса: ExecutionControl
Завершает работу этого движка выполнения. Реализация должна освободить все ресурсы, удерживаемые этим движком выполнения.

После close не следует делать вызовы методов этого интерфейса.

Определено в:
close в интерфейсе AutoCloseable
Определено в:
close в интерфейсе ExecutionControl

findClass

protected Class<?> findClass(String name) throws ClassNotFoundException
Находит класс с указанным бинарным именем.
Параметры:
name - бинарное имя класса
Возвращает:
объект Class
Исключения:
ClassNotFoundException - если класс не был найден

invoke

protected String invoke(Method doitMethod) throws Exception
Вызывает указанный метод "doit-method", статический метод без параметров. invoke(java.lang.String, java.lang.String) в этом классе будет вызывать это для вызова.
Параметры:
doitMethod - вызываемый метод
Возвращает:
значение или null
Исключения:
Exception - любые исключения, сгенерированные вызовом Method.invoke(Object, Object...) или любые исключения ExecutionControl.ExecutionControlException для передачи.

valueString

protected static String valueString(Object value)
Преобразует значение Object из ExecutionControl.invoke(String, String) или ExecutionControl.varValue(String, String) в строковое представление.
Параметры:
value - значение для преобразования
Возвращает:
строковое представление

throwConvertedInvocationException

protected String throwConvertedInvocationException(Throwable cause) throws ExecutionControl.RunException, ExecutionControl.InternalException
Преобразует входящие исключения в пользовательском коде в экземпляры подтипов ExecutionControl.ExecutionControlException и выбрасывает преобразованное исключение.
Параметры:
cause - исключение для преобразования
Возвращает:
никогда не возвращает, так как всегда выбрасывает
Исключения:
ExecutionControl.RunException - для обычных случаев возникновения исключения
ExecutionControl.InternalException - для внутренних проблем

throwConvertedOtherException

protected String throwConvertedOtherException(Throwable ex) throws ExecutionControl.RunException, ExecutionControl.InternalException
Преобразует входящие исключения в коде агента в экземпляры подтипов ExecutionControl.ExecutionControlException и выбрасывает преобразованное исключение.
Параметры:
ex - исключение для преобразования
Возвращает:
никогда не возвращает, так как всегда выбрасывает
Исключения:
ExecutionControl.RunException - для обычных случаев возникновения исключения
ExecutionControl.InternalException - для внутренних проблем

clientCodeEnter

protected void clientCodeEnter() throws ExecutionControl.InternalException
Помечает вход в пользовательский код.
Исключения:
ExecutionControl.InternalException - в случаях неожиданных сбоев

clientCodeLeave

protected void clientCodeLeave() throws ExecutionControl.InternalException
Помечает выход из пользовательского кода.
Исключения:
ExecutionControl.InternalException - в случаях неожиданных сбоев

© 1993, 2021, 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/17/docs/api/jdk.jshell/jdk/jshell/execution/DirectExecutionControl.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API