Class DirectExecutionControl
- java.lang.Object
-
- jdk.jshell.execution.DirectExecutionControl
- All Implemented Interfaces:
-
AutoCloseable
,ExecutionControl
- Direct Known Subclasses:
-
LocalExecutionControl
,RemoteExecutionControl
public class DirectExecutionControl extends Object implements ExecutionControl
An ExecutionControl
implementation that runs in the current process. May be used directly, or over a channel with Util.forwardExecutionControl(ExecutionControl, java.io.ObjectInput, java.io.ObjectOutput)
.
- Since:
- 9
Nested Classes
Nested classes/interfaces declared in interface jdk.jshell.spi.ExecutionControl
ExecutionControl.ClassBytecodes, ExecutionControl.ClassInstallException, ExecutionControl.EngineTerminationException, ExecutionControl.ExecutionControlException, ExecutionControl.InternalException, ExecutionControl.NotImplementedException, ExecutionControl.ResolutionException, ExecutionControl.RunException, ExecutionControl.StoppedException, ExecutionControl.UserException
Constructors
Constructor | Description |
---|---|
DirectExecutionControl() | Create an instance using the default class loading. |
DirectExecutionControl(LoaderDelegate loaderDelegate) | Creates an instance, delegating loader operations to the specified delegate. |
Methods
Modifier and Type | Method | Description |
---|---|---|
protected void | classesRedefined(ExecutionControl.ClassBytecodes[] cbcs) | Notify that classes have been redefined. |
protected void | clientCodeEnter() | Marks entry into user code. |
protected void | clientCodeLeave() | Marks departure from user code. |
protected Class<?> | findClass(String name) | Finds the class with the specified binary name. |
protected String | invoke(Method doitMethod) | Invoke the specified "doit-method", a static method with no parameters. |
void | stop() | Interrupts a running invoke. |
protected String | throwConvertedInvocationException(Throwable cause) | Converts incoming exceptions in user code into instances of subtypes of |
protected String | throwConvertedOtherException(Throwable ex) | Converts incoming exceptions in agent code into instances of subtypes of |
protected static String | valueString(Object value) | Converts the |
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods declared in interface jdk.jshell.spi.ExecutionControl
addToClasspath, close, extensionCommand, invoke, load, redefine, varValue
Constructors
DirectExecutionControl
public DirectExecutionControl(LoaderDelegate loaderDelegate)
Creates an instance, delegating loader operations to the specified delegate.
- Parameters:
-
loaderDelegate
- the delegate to handle loading classes
DirectExecutionControl
public DirectExecutionControl()
Create an instance using the default class loading.
Methods
classesRedefined
protected void classesRedefined(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.NotImplementedException, ExecutionControl.EngineTerminationException
Notify that classes have been redefined.
- Parameters:
-
cbcs
- the class name and bytecodes to redefine - Throws:
-
ExecutionControl.NotImplementedException
- if not implemented -
ExecutionControl.EngineTerminationException
- the execution engine has terminated
stop
public void stop() throws ExecutionControl.EngineTerminationException, ExecutionControl.InternalException
Interrupts a running invoke.
Not supported.
- Specified by:
-
stop
in interfaceExecutionControl
- Throws:
-
ExecutionControl.EngineTerminationException
- the execution engine has terminated -
ExecutionControl.InternalException
- an internal problem occurred
findClass
protected Class<?> findClass(String name) throws ClassNotFoundException
Finds the class with the specified binary name.
- Parameters:
-
name
- the binary name of the class - Returns:
- the Class Object
- Throws:
-
ClassNotFoundException
- if the class could not be found
invoke
protected String invoke(Method doitMethod) throws Exception
Invoke the specified "doit-method", a static method with no parameters. The ExecutionControl.invoke(java.lang.String, java.lang.String)
in this class will call this to invoke.
- Parameters:
-
doitMethod
- the Method to invoke - Returns:
- the value or null
- Throws:
-
Exception
- any exceptions thrown byMethod.invoke(Object, Object...)
or anyExecutionControl.ExecutionControlException
to pass-through.
valueString
protected static String valueString(Object value)
Converts the Object
value from ExecutionControl.invoke(String, String)
or ExecutionControl.varValue(String, String)
to String
.
- Parameters:
-
value
- the value to convert - Returns:
- the
String
representation
throwConvertedInvocationException
protected String throwConvertedInvocationException(Throwable cause) throws ExecutionControl.RunException, ExecutionControl.InternalException
Converts incoming exceptions in user code into instances of subtypes of ExecutionControl.ExecutionControlException
and throws the converted exception.
- Parameters:
-
cause
- the exception to convert - Returns:
- never returns as it always throws
- Throws:
-
ExecutionControl.RunException
- for normal exception occurrences -
ExecutionControl.InternalException
- for internal problems
throwConvertedOtherException
protected String throwConvertedOtherException(Throwable ex) throws ExecutionControl.RunException, ExecutionControl.InternalException
Converts incoming exceptions in agent code into instances of subtypes of ExecutionControl.ExecutionControlException
and throws the converted exception.
- Parameters:
-
ex
- the exception to convert - Returns:
- never returns as it always throws
- Throws:
-
ExecutionControl.RunException
- for normal exception occurrences -
ExecutionControl.InternalException
- for internal problems
clientCodeEnter
protected void clientCodeEnter() throws ExecutionControl.InternalException
Marks entry into user code.
- Throws:
-
ExecutionControl.InternalException
- in unexpected failure cases
clientCodeLeave
protected void clientCodeLeave() throws ExecutionControl.InternalException
Marks departure from user code.
- Throws:
-
ExecutionControl.InternalException
- in unexpected failure cases
© 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