Класс 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) | Создаёт экземпляр, делегируя операции загрузчика указанному делегату. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
protected void | classesRedefined(ExecutionControl.ClassBytecodes[] cbcs) | Уведомляет о переопределении классов. |
protected void | clientCodeEnter() | Помечает вход в пользовательский код. |
protected void | clientCodeLeave() | Помечает выход из пользовательского кода. |
protected Class<?> | findClass(String name) | Находит класс с указанным двоичным именем. |
protected String | invoke(Method doitMethod) | Вызывает указанный метод "doit-метод", статический метод без параметров. |
void | stop() | Прерывает выполняемый вызов. |
protected String | throwConvertedInvocationException(Throwable cause) | Преобразует исключения, поступающие из пользовательского кода, в экземпляры подтипов |
protected String | throwConvertedOtherException(Throwable ex) | Преобразует исключения, поступающие из кода агента, в экземпляры подтипов |
protected static String | valueString(Object value) | Преобразует значение |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitМетоды, объявленные в интерфейсе jdk.jshell.spi.ExecutionControl
addToClasspath, close, extensionCommand, invoke, load, redefine, varValueКонструкторы
DirectExecutionControl
public DirectExecutionControl(LoaderDelegate loaderDelegate)
Создаёт экземпляр, делегируя операции загрузчика указанному делегату.
- Параметры:
-
loaderDelegate- делегат для обработки загрузки классов
DirectExecutionControl
public DirectExecutionControl()
Создаёт экземпляр, используя стандартную загрузку классов.
Методы
classesRedefined
protected void classesRedefined(ExecutionControl.ClassBytecodes[] cbcs)
throws ExecutionControl.NotImplementedException,
ExecutionControl.EngineTerminationExceptionУведомляет о переопределении классов.
- Параметры:
-
cbcs- имя класса и байткоды для переопределения - Исключения:
-
ExecutionControl.NotImplementedException- если не реализовано -
ExecutionControl.EngineTerminationException- движок выполнения завершился
stop
public void stop()
throws ExecutionControl.EngineTerminationException,
ExecutionControl.InternalExceptionПрерывает выполняемый вызов.
Не поддерживается.
- Определено в:
-
stopв интерфейсеExecutionControl - Исключения:
-
ExecutionControl.EngineTerminationException- движок выполнения завершился -
ExecutionControl.InternalException- произошла внутренняя ошибка
findClass
protected Class<?> findClass(String name)
throws ClassNotFoundExceptionНаходит класс с указанным двоичным именем.
- Параметры:
-
name- двоичное имя класса - Возвращает:
- объект Class
- Исключения:
-
ClassNotFoundException- если класс не был найден
invoke
protected String invoke(Method doitMethod)
throws ExceptionВызывает указанный "doit-метод", статический метод без параметров. ExecutionControl.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) в String.
- Параметры:
-
value- значение для преобразования - Возвращает:
- представление
String
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, 2020, 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/11/docs/api/jdk.jshell/jdk/jshell/execution/DirectExecutionControl.html