abstract class jdk.internal.jshell.tool.IOContext implements java.lang.AutoCloseable
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: jdk.internal.jshell.tool.IOContext
  super_class: java.lang.Object
{
  void <init>();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.internal.jshell.tool.IOContext this
         0: .line 34
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // jdk.internal.jshell.tool.IOContext this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/internal/jshell/tool/IOContext;

  public abstract void close();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  public abstract java.lang.String readLine(java.lang.String, java.lang.String, boolean, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;)Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException, jdk.internal.jshell.tool.IOContext$InputInterruptedException
    MethodParameters:
                    Name  Flags
      firstLinePrompt     
      continuationPrompt  
      firstLine           
      prefix              

  public abstract boolean interactiveOutput();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.Iterable<java.lang.String> history(boolean);
    descriptor: (Z)Ljava/lang/Iterable;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Z)Ljava/lang/Iterable<Ljava/lang/String;>;
    MethodParameters:
                Name  Flags
      currentSession  

  public abstract boolean terminalEditorRunning();
    descriptor: ()Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void suspend();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void resume();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void beforeUserCode();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void afterUserCode();
    descriptor: ()V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract void replaceLastHistoryEntry(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      source  

  public abstract int readUserInput();
    descriptor: ()I
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
}
SourceFile: "IOContext.java"
NestMembers:
  jdk.internal.jshell.tool.IOContext$InputInterruptedException
InnerClasses:
  InputInterruptedException = jdk.internal.jshell.tool.IOContext$InputInterruptedException of jdk.internal.jshell.tool.IOContext