public class jdk.internal.jshell.tool.JShellToolBuilder implements jdk.jshell.tool.JavaShellToolBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: jdk.internal.jshell.tool.JShellToolBuilder
  super_class: java.lang.Object
{
  private static final java.lang.String PREFERENCES_NODE;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "tool/JShell"

  private java.io.InputStream cmdIn;
    descriptor: Ljava/io/InputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.InputStream userIn;
    descriptor: Ljava/io/InputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.PrintStream cmdOut;
    descriptor: Ljava/io/PrintStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.PrintStream console;
    descriptor: Ljava/io/PrintStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.PrintStream userOut;
    descriptor: Ljava/io/PrintStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.PrintStream cmdErr;
    descriptor: Ljava/io/PrintStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.PrintStream userErr;
    descriptor: Ljava/io/PrintStream;
    flags: (0x0002) ACC_PRIVATE

  private jdk.internal.jshell.tool.PersistentStorage prefs;
    descriptor: Ljdk/internal/jshell/tool/PersistentStorage;
    flags: (0x0002) ACC_PRIVATE

  private java.util.Map<java.lang.String, java.lang.String> vars;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;

  private java.util.Locale locale;
    descriptor: Ljava/util/Locale;
    flags: (0x0002) ACC_PRIVATE

  private boolean capturePrompt;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
         0: .line 41
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 44
            aload 0 /* this */
            getstatic java.lang.System.in:Ljava/io/InputStream;
            putfield jdk.internal.jshell.tool.JShellToolBuilder.cmdIn:Ljava/io/InputStream;
         2: .line 45
            aload 0 /* this */
            aconst_null
            putfield jdk.internal.jshell.tool.JShellToolBuilder.userIn:Ljava/io/InputStream;
         3: .line 46
            aload 0 /* this */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            putfield jdk.internal.jshell.tool.JShellToolBuilder.cmdOut:Ljava/io/PrintStream;
         4: .line 47
            aload 0 /* this */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            putfield jdk.internal.jshell.tool.JShellToolBuilder.console:Ljava/io/PrintStream;
         5: .line 48
            aload 0 /* this */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            putfield jdk.internal.jshell.tool.JShellToolBuilder.userOut:Ljava/io/PrintStream;
         6: .line 49
            aload 0 /* this */
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            putfield jdk.internal.jshell.tool.JShellToolBuilder.cmdErr:Ljava/io/PrintStream;
         7: .line 50
            aload 0 /* this */
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            putfield jdk.internal.jshell.tool.JShellToolBuilder.userErr:Ljava/io/PrintStream;
         8: .line 51
            aload 0 /* this */
            aconst_null
            putfield jdk.internal.jshell.tool.JShellToolBuilder.prefs:Ljdk/internal/jshell/tool/PersistentStorage;
         9: .line 52
            aload 0 /* this */
            aconst_null
            putfield jdk.internal.jshell.tool.JShellToolBuilder.vars:Ljava/util/Map;
        10: .line 53
            aload 0 /* this */
            invokestatic java.util.Locale.getDefault:()Ljava/util/Locale;
            putfield jdk.internal.jshell.tool.JShellToolBuilder.locale:Ljava/util/Locale;
        11: .line 54
            aload 0 /* this */
            iconst_0
            putfield jdk.internal.jshell.tool.JShellToolBuilder.capturePrompt:Z
        12: .line 41
            return
        end local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   13     0  this  Ljdk/internal/jshell/tool/JShellToolBuilder;

  public jdk.jshell.tool.JavaShellToolBuilder in(java.io.InputStream, java.io.InputStream);
    descriptor: (Ljava/io/InputStream;Ljava/io/InputStream;)Ljdk/jshell/tool/JavaShellToolBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
        start local 1 // java.io.InputStream cmdIn
        start local 2 // java.io.InputStream userIn
         0: .line 67
            aload 0 /* this */
            aload 1 /* cmdIn */
            putfield jdk.internal.jshell.tool.JShellToolBuilder.cmdIn:Ljava/io/InputStream;
         1: .line 68
            aload 0 /* this */
            aload 2 /* userIn */
            putfield jdk.internal.jshell.tool.JShellToolBuilder.userIn:Ljava/io/InputStream;
         2: .line 69
            aload 0 /* this */
            areturn
        end local 2 // java.io.InputStream userIn
        end local 1 // java.io.InputStream cmdIn
        end local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Ljdk/internal/jshell/tool/JShellToolBuilder;
            0    3     1   cmdIn  Ljava/io/InputStream;
            0    3     2  userIn  Ljava/io/InputStream;
    MethodParameters:
        Name  Flags
      cmdIn   
      userIn  

  public jdk.jshell.tool.JavaShellToolBuilder out(java.io.PrintStream);
    descriptor: (Ljava/io/PrintStream;)Ljdk/jshell/tool/JavaShellToolBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
        start local 1 // java.io.PrintStream output
         0: .line 82
            aload 0 /* this */
            aload 1 /* output */
            putfield jdk.internal.jshell.tool.JShellToolBuilder.cmdOut:Ljava/io/PrintStream;
         1: .line 83
            aload 0 /* this */
            aload 1 /* output */
            putfield jdk.internal.jshell.tool.JShellToolBuilder.console:Ljava/io/PrintStream;
         2: .line 84
            aload 0 /* this */
            aload 1 /* output */
            putfield jdk.internal.jshell.tool.JShellToolBuilder.userOut:Ljava/io/PrintStream;
         3: .line 85
            aload 0 /* this */
            areturn
        end local 1 // java.io.PrintStream output
        end local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Ljdk/internal/jshell/tool/JShellToolBuilder;
            0    4     1  output  Ljava/io/PrintStream;
    MethodParameters:
        Name  Flags
      output  

  public jdk.jshell.tool.JavaShellToolBuilder out(java.io.PrintStream, java.io.PrintStream, java.io.PrintStream);
    descriptor: (Ljava/io/PrintStream;Ljava/io/PrintStream;Ljava/io/PrintStream;)Ljdk/jshell/tool/JavaShellToolBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
        start local 1 // java.io.PrintStream cmdOut
        start local 2 // java.io.PrintStream console
        start local 3 // java.io.PrintStream userOut
         0: .line 102
            aload 0 /* this */
            aload 1 /* cmdOut */
            putfield jdk.internal.jshell.tool.JShellToolBuilder.cmdOut:Ljava/io/PrintStream;
         1: .line 103
            aload 0 /* this */
            aload 2 /* console */
            putfield jdk.internal.jshell.tool.JShellToolBuilder.console:Ljava/io/PrintStream;
         2: .line 104
            aload 0 /* this */
            aload 3 /* userOut */
            putfield jdk.internal.jshell.tool.JShellToolBuilder.userOut:Ljava/io/PrintStream;
         3: .line 105
            aload 0 /* this */
            areturn
        end local 3 // java.io.PrintStream userOut
        end local 2 // java.io.PrintStream console
        end local 1 // java.io.PrintStream cmdOut
        end local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Ljdk/internal/jshell/tool/JShellToolBuilder;
            0    4     1   cmdOut  Ljava/io/PrintStream;
            0    4     2  console  Ljava/io/PrintStream;
            0    4     3  userOut  Ljava/io/PrintStream;
    MethodParameters:
         Name  Flags
      cmdOut   
      console  
      userOut  

  public jdk.jshell.tool.JavaShellToolBuilder err(java.io.PrintStream);
    descriptor: (Ljava/io/PrintStream;)Ljdk/jshell/tool/JavaShellToolBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
        start local 1 // java.io.PrintStream error
         0: .line 118
            aload 0 /* this */
            aload 1 /* error */
            putfield jdk.internal.jshell.tool.JShellToolBuilder.cmdErr:Ljava/io/PrintStream;
         1: .line 119
            aload 0 /* this */
            aload 1 /* error */
            putfield jdk.internal.jshell.tool.JShellToolBuilder.userErr:Ljava/io/PrintStream;
         2: .line 120
            aload 0 /* this */
            areturn
        end local 1 // java.io.PrintStream error
        end local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Ljdk/internal/jshell/tool/JShellToolBuilder;
            0    3     1  error  Ljava/io/PrintStream;
    MethodParameters:
       Name  Flags
      error  

  public jdk.jshell.tool.JavaShellToolBuilder err(java.io.PrintStream, java.io.PrintStream);
    descriptor: (Ljava/io/PrintStream;Ljava/io/PrintStream;)Ljdk/jshell/tool/JavaShellToolBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
        start local 1 // java.io.PrintStream cmdErr
        start local 2 // java.io.PrintStream userErr
         0: .line 135
            aload 0 /* this */
            aload 1 /* cmdErr */
            putfield jdk.internal.jshell.tool.JShellToolBuilder.cmdErr:Ljava/io/PrintStream;
         1: .line 136
            aload 0 /* this */
            aload 2 /* userErr */
            putfield jdk.internal.jshell.tool.JShellToolBuilder.userErr:Ljava/io/PrintStream;
         2: .line 137
            aload 0 /* this */
            areturn
        end local 2 // java.io.PrintStream userErr
        end local 1 // java.io.PrintStream cmdErr
        end local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0     this  Ljdk/internal/jshell/tool/JShellToolBuilder;
            0    3     1   cmdErr  Ljava/io/PrintStream;
            0    3     2  userErr  Ljava/io/PrintStream;
    MethodParameters:
         Name  Flags
      cmdErr   
      userErr  

  public jdk.jshell.tool.JavaShellToolBuilder persistence(java.util.prefs.Preferences);
    descriptor: (Ljava/util/prefs/Preferences;)Ljdk/jshell/tool/JavaShellToolBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
        start local 1 // java.util.prefs.Preferences prefs
         0: .line 151
            aload 0 /* this */
            new jdk.internal.jshell.tool.JShellToolBuilder$PreferencesStorage
            dup
            aload 1 /* prefs */
            invokespecial jdk.internal.jshell.tool.JShellToolBuilder$PreferencesStorage.<init>:(Ljava/util/prefs/Preferences;)V
            putfield jdk.internal.jshell.tool.JShellToolBuilder.prefs:Ljdk/internal/jshell/tool/PersistentStorage;
         1: .line 152
            aload 0 /* this */
            areturn
        end local 1 // java.util.prefs.Preferences prefs
        end local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    2     0   this  Ljdk/internal/jshell/tool/JShellToolBuilder;
            0    2     1  prefs  Ljava/util/prefs/Preferences;
    MethodParameters:
       Name  Flags
      prefs  

  public jdk.jshell.tool.JavaShellToolBuilder persistence(java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/Map;)Ljdk/jshell/tool/JavaShellToolBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
        start local 1 // java.util.Map prefsMap
         0: .line 166
            aload 0 /* this */
            new jdk.internal.jshell.tool.JShellToolBuilder$MapStorage
            dup
            aload 1 /* prefsMap */
            invokespecial jdk.internal.jshell.tool.JShellToolBuilder$MapStorage.<init>:(Ljava/util/Map;)V
            putfield jdk.internal.jshell.tool.JShellToolBuilder.prefs:Ljdk/internal/jshell/tool/PersistentStorage;
         1: .line 167
            aload 0 /* this */
            areturn
        end local 1 // java.util.Map prefsMap
        end local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Ljdk/internal/jshell/tool/JShellToolBuilder;
            0    2     1  prefsMap  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)Ljdk/jshell/tool/JavaShellToolBuilder;
    MethodParameters:
          Name  Flags
      prefsMap  

  public jdk.jshell.tool.JavaShellToolBuilder env(java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/Map;)Ljdk/jshell/tool/JavaShellToolBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
        start local 1 // java.util.Map vars
         0: .line 179
            aload 0 /* this */
            aload 1 /* vars */
            putfield jdk.internal.jshell.tool.JShellToolBuilder.vars:Ljava/util/Map;
         1: .line 180
            aload 0 /* this */
            areturn
        end local 1 // java.util.Map vars
        end local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Ljdk/internal/jshell/tool/JShellToolBuilder;
            0    2     1  vars  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)Ljdk/jshell/tool/JavaShellToolBuilder;
    MethodParameters:
      Name  Flags
      vars  

  public jdk.jshell.tool.JavaShellToolBuilder locale(java.util.Locale);
    descriptor: (Ljava/util/Locale;)Ljdk/jshell/tool/JavaShellToolBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
        start local 1 // java.util.Locale locale
         0: .line 192
            aload 0 /* this */
            aload 1 /* locale */
            putfield jdk.internal.jshell.tool.JShellToolBuilder.locale:Ljava/util/Locale;
         1: .line 193
            aload 0 /* this */
            areturn
        end local 1 // java.util.Locale locale
        end local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljdk/internal/jshell/tool/JShellToolBuilder;
            0    2     1  locale  Ljava/util/Locale;
    MethodParameters:
        Name  Flags
      locale  

  public jdk.jshell.tool.JavaShellToolBuilder promptCapture(boolean);
    descriptor: (Z)Ljdk/jshell/tool/JavaShellToolBuilder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
        start local 1 // boolean capture
         0: .line 207
            aload 0 /* this */
            iload 1 /* capture */
            putfield jdk.internal.jshell.tool.JShellToolBuilder.capturePrompt:Z
         1: .line 208
            aload 0 /* this */
            areturn
        end local 1 // boolean capture
        end local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Ljdk/internal/jshell/tool/JShellToolBuilder;
            0    2     1  capture  Z
    MethodParameters:
         Name  Flags
      capture  

  public jdk.internal.jshell.tool.JShellTool rawTool();
    descriptor: ()Ljdk/internal/jshell/tool/JShellTool;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=12, locals=2, args_size=1
        start local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
         0: .line 217
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellToolBuilder.prefs:Ljdk/internal/jshell/tool/PersistentStorage;
            ifnonnull 2
         1: .line 218
            aload 0 /* this */
            new jdk.internal.jshell.tool.JShellToolBuilder$PreferencesStorage
            dup
            invokestatic java.util.prefs.Preferences.userRoot:()Ljava/util/prefs/Preferences;
            ldc "tool/JShell"
            invokevirtual java.util.prefs.Preferences.node:(Ljava/lang/String;)Ljava/util/prefs/Preferences;
            invokespecial jdk.internal.jshell.tool.JShellToolBuilder$PreferencesStorage.<init>:(Ljava/util/prefs/Preferences;)V
            putfield jdk.internal.jshell.tool.JShellToolBuilder.prefs:Ljdk/internal/jshell/tool/PersistentStorage;
         2: .line 220
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellToolBuilder.vars:Ljava/util/Map;
            ifnonnull 4
         3: .line 221
            aload 0 /* this */
            invokestatic java.lang.System.getenv:()Ljava/util/Map;
            putfield jdk.internal.jshell.tool.JShellToolBuilder.vars:Ljava/util/Map;
         4: .line 223
      StackMap locals:
      StackMap stack:
            new jdk.internal.jshell.tool.JShellTool
            dup
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellToolBuilder.cmdIn:Ljava/io/InputStream;
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellToolBuilder.cmdOut:Ljava/io/PrintStream;
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellToolBuilder.cmdErr:Ljava/io/PrintStream;
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellToolBuilder.console:Ljava/io/PrintStream;
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellToolBuilder.userIn:Ljava/io/InputStream;
         5: .line 224
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellToolBuilder.userOut:Ljava/io/PrintStream;
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellToolBuilder.userErr:Ljava/io/PrintStream;
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellToolBuilder.prefs:Ljdk/internal/jshell/tool/PersistentStorage;
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellToolBuilder.vars:Ljava/util/Map;
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellToolBuilder.locale:Ljava/util/Locale;
         6: .line 223
            invokespecial jdk.internal.jshell.tool.JShellTool.<init>:(Ljava/io/InputStream;Ljava/io/PrintStream;Ljava/io/PrintStream;Ljava/io/PrintStream;Ljava/io/InputStream;Ljava/io/PrintStream;Ljava/io/PrintStream;Ljdk/internal/jshell/tool/PersistentStorage;Ljava/util/Map;Ljava/util/Locale;)V
            astore 1 /* sh */
        start local 1 // jdk.internal.jshell.tool.JShellTool sh
         7: .line 225
            aload 1 /* sh */
            aload 0 /* this */
            getfield jdk.internal.jshell.tool.JShellToolBuilder.capturePrompt:Z
            putfield jdk.internal.jshell.tool.JShellTool.testPrompt:Z
         8: .line 226
            aload 1 /* sh */
            areturn
        end local 1 // jdk.internal.jshell.tool.JShellTool sh
        end local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    9     0  this  Ljdk/internal/jshell/tool/JShellToolBuilder;
            7    9     1    sh  Ljdk/internal/jshell/tool/JShellTool;

  public void run(java.lang.String[]);
    descriptor: ([Ljava/lang/String;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
        start local 1 // java.lang.String[] arguments
         0: .line 239
            aload 0 /* this */
            invokevirtual jdk.internal.jshell.tool.JShellToolBuilder.rawTool:()Ljdk/internal/jshell/tool/JShellTool;
            aload 1 /* arguments */
            invokevirtual jdk.internal.jshell.tool.JShellTool.start:([Ljava/lang/String;)V
         1: .line 240
            return
        end local 1 // java.lang.String[] arguments
        end local 0 // jdk.internal.jshell.tool.JShellToolBuilder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Ljdk/internal/jshell/tool/JShellToolBuilder;
            0    2     1  arguments  [Ljava/lang/String;
    Exceptions:
      throws java.lang.Exception
    MethodParameters:
           Name  Flags
      arguments  
}
SourceFile: "JShellToolBuilder.java"
NestMembers:
  jdk.internal.jshell.tool.JShellToolBuilder$MapStorage  jdk.internal.jshell.tool.JShellToolBuilder$PreferencesStorage
InnerClasses:
  private MapStorage = jdk.internal.jshell.tool.JShellToolBuilder$MapStorage of jdk.internal.jshell.tool.JShellToolBuilder
  private PreferencesStorage = jdk.internal.jshell.tool.JShellToolBuilder$PreferencesStorage of jdk.internal.jshell.tool.JShellToolBuilder