Module jdk.jshell
Package jdk.jshell.execution

# Interface LoaderDelegate

public interface LoaderDelegate
This interface specifies the loading specific subset of `ExecutionControl`. For use in encapsulating the `ClassLoader` implementation.

Since:
  9

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addToClasspath(String path)`
  Adds the path to the execution class path.
  `void`
  `classesRedefined(ExecutionControl.ClassBytecodes[] cbcs)`
  Notify that classes have been redefined.
  `Class<?>`
  `findClass(String name)`
  Finds the class with the specified binary name.
  `void`
  `load(ExecutionControl.ClassBytecodes[] cbcs)`
  Attempts to load new classes.

- ## Method Details

  - ### load

    void load(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.ClassInstallException, ExecutionControl.NotImplementedException, ExecutionControl.EngineTerminationException
    Attempts to load new classes.
    Parameters:
      `cbcs` - the class name and bytecodes to load
    Throws:
      `ExecutionControl.ClassInstallException` - exception occurred loading the classes, some or all were not loaded
      `ExecutionControl.NotImplementedException` - if not implemented
      `ExecutionControl.EngineTerminationException` - the execution engine has terminated

  - ### classesRedefined

    void classesRedefined(ExecutionControl.ClassBytecodes[] cbcs)
    Notify that classes have been redefined.
    Parameters:
      `cbcs` - the class names and bytecodes that have been redefined

  - ### addToClasspath

    void addToClasspath(String path) throws ExecutionControl.EngineTerminationException, ExecutionControl.InternalException
    Adds the path to the execution class path.
    Parameters:
      `path` - the path to add
    Throws:
      `ExecutionControl.EngineTerminationException` - the execution engine has terminated
      `ExecutionControl.InternalException` - an internal problem occurred

  - ### findClass

    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