public final class org.graalvm.polyglot.Engine$Builder
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.graalvm.polyglot.Engine$Builder
  super_class: java.lang.Object
{
  private java.io.OutputStream out;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0002) ACC_PRIVATE

  private java.io.OutputStream err;
    descriptor: Ljava/io/OutputStream;
    flags: (0x0002) ACC_PRIVATE

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

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

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

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

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

  private org.graalvm.polyglot.io.MessageTransport messageTransport;
    descriptor: Lorg/graalvm/polyglot/io/MessageTransport;
    flags: (0x0002) ACC_PRIVATE

  private java.lang.Object customLogHandler;
    descriptor: Ljava/lang/Object;
    flags: (0x0002) ACC_PRIVATE

  final org.graalvm.polyglot.Engine this$0;
    descriptor: Lorg/graalvm/polyglot/Engine;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(org.graalvm.polyglot.Engine);
    descriptor: (Lorg/graalvm/polyglot/Engine;)V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // org.graalvm.polyglot.Engine$Builder this
         0: .line 341
            aload 0 /* this */
            aload 1
            putfield org.graalvm.polyglot.Engine$Builder.this$0:Lorg/graalvm/polyglot/Engine;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 331
            aload 0 /* this */
            getstatic java.lang.System.out:Ljava/io/PrintStream;
            putfield org.graalvm.polyglot.Engine$Builder.out:Ljava/io/OutputStream;
         2: .line 332
            aload 0 /* this */
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            putfield org.graalvm.polyglot.Engine$Builder.err:Ljava/io/OutputStream;
         3: .line 333
            aload 0 /* this */
            getstatic java.lang.System.in:Ljava/io/InputStream;
            putfield org.graalvm.polyglot.Engine$Builder.in:Ljava/io/InputStream;
         4: .line 334
            aload 0 /* this */
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            putfield org.graalvm.polyglot.Engine$Builder.options:Ljava/util/Map;
         5: .line 335
            aload 0 /* this */
            iconst_0
            putfield org.graalvm.polyglot.Engine$Builder.allowExperimentalOptions:Z
         6: .line 336
            aload 0 /* this */
            iconst_1
            putfield org.graalvm.polyglot.Engine$Builder.useSystemProperties:Z
         7: .line 342
            return
        end local 0 // org.graalvm.polyglot.Engine$Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    8     0  this  Lorg/graalvm/polyglot/Engine$Builder;
    MethodParameters:
        Name  Flags
      this$0  final

  org.graalvm.polyglot.Engine$Builder setBoundEngine(boolean);
    descriptor: (Z)Lorg/graalvm/polyglot/Engine$Builder;
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.polyglot.Engine$Builder this
        start local 1 // boolean boundEngine
         0: .line 345
            aload 0 /* this */
            iload 1 /* boundEngine */
            putfield org.graalvm.polyglot.Engine$Builder.boundEngine:Z
         1: .line 346
            aload 0 /* this */
            areturn
        end local 1 // boolean boundEngine
        end local 0 // org.graalvm.polyglot.Engine$Builder this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    2     0         this  Lorg/graalvm/polyglot/Engine$Builder;
            0    2     1  boundEngine  Z
    MethodParameters:
             Name  Flags
      boundEngine  

  public org.graalvm.polyglot.Engine$Builder out(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)Lorg/graalvm/polyglot/Engine$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.polyglot.Engine$Builder this
        start local 1 // java.io.OutputStream out
         0: .line 357
            aload 1 /* out */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 358
            aload 0 /* this */
            aload 1 /* out */
            putfield org.graalvm.polyglot.Engine$Builder.out:Ljava/io/OutputStream;
         2: .line 359
            aload 0 /* this */
            areturn
        end local 1 // java.io.OutputStream out
        end local 0 // org.graalvm.polyglot.Engine$Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/polyglot/Engine$Builder;
            0    3     1   out  Ljava/io/OutputStream;
    MethodParameters:
      Name  Flags
      out   

  public org.graalvm.polyglot.Engine$Builder err(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)Lorg/graalvm/polyglot/Engine$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.polyglot.Engine$Builder this
        start local 1 // java.io.OutputStream err
         0: .line 370
            aload 1 /* err */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 371
            aload 0 /* this */
            aload 1 /* err */
            putfield org.graalvm.polyglot.Engine$Builder.err:Ljava/io/OutputStream;
         2: .line 372
            aload 0 /* this */
            areturn
        end local 1 // java.io.OutputStream err
        end local 0 // org.graalvm.polyglot.Engine$Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/polyglot/Engine$Builder;
            0    3     1   err  Ljava/io/OutputStream;
    MethodParameters:
      Name  Flags
      err   

  public org.graalvm.polyglot.Engine$Builder in(java.io.InputStream);
    descriptor: (Ljava/io/InputStream;)Lorg/graalvm/polyglot/Engine$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.polyglot.Engine$Builder this
        start local 1 // java.io.InputStream in
         0: .line 383
            aload 1 /* in */
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
         1: .line 384
            aload 0 /* this */
            aload 1 /* in */
            putfield org.graalvm.polyglot.Engine$Builder.in:Ljava/io/InputStream;
         2: .line 385
            aload 0 /* this */
            areturn
        end local 1 // java.io.InputStream in
        end local 0 // org.graalvm.polyglot.Engine$Builder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/graalvm/polyglot/Engine$Builder;
            0    3     1    in  Ljava/io/InputStream;
    MethodParameters:
      Name  Flags
      in    

  public org.graalvm.polyglot.Engine$Builder allowExperimentalOptions(boolean);
    descriptor: (Z)Lorg/graalvm/polyglot/Engine$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.polyglot.Engine$Builder this
        start local 1 // boolean enabled
         0: .line 397
            aload 0 /* this */
            iload 1 /* enabled */
            putfield org.graalvm.polyglot.Engine$Builder.allowExperimentalOptions:Z
         1: .line 398
            aload 0 /* this */
            areturn
        end local 1 // boolean enabled
        end local 0 // org.graalvm.polyglot.Engine$Builder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/graalvm/polyglot/Engine$Builder;
            0    2     1  enabled  Z
    MethodParameters:
         Name  Flags
      enabled  

  public org.graalvm.polyglot.Engine$Builder useSystemProperties(boolean);
    descriptor: (Z)Lorg/graalvm/polyglot/Engine$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.polyglot.Engine$Builder this
        start local 1 // boolean enabled
         0: .line 419
            aload 0 /* this */
            iload 1 /* enabled */
            putfield org.graalvm.polyglot.Engine$Builder.useSystemProperties:Z
         1: .line 420
            aload 0 /* this */
            areturn
        end local 1 // boolean enabled
        end local 0 // org.graalvm.polyglot.Engine$Builder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/graalvm/polyglot/Engine$Builder;
            0    2     1  enabled  Z
    MethodParameters:
         Name  Flags
      enabled  

  public org.graalvm.polyglot.Engine$Builder option(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Lorg/graalvm/polyglot/Engine$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.polyglot.Engine$Builder this
        start local 1 // java.lang.String key
        start local 2 // java.lang.String value
         0: .line 438
            aload 1 /* key */
            ldc "Key must not be null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 439
            aload 2 /* value */
            ldc "Value must not be null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         2: .line 440
            aload 0 /* this */
            getfield org.graalvm.polyglot.Engine$Builder.options:Ljava/util/Map;
            aload 1 /* key */
            aload 2 /* value */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         3: .line 441
            aload 0 /* this */
            areturn
        end local 2 // java.lang.String value
        end local 1 // java.lang.String key
        end local 0 // org.graalvm.polyglot.Engine$Builder this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    4     0   this  Lorg/graalvm/polyglot/Engine$Builder;
            0    4     1    key  Ljava/lang/String;
            0    4     2  value  Ljava/lang/String;
    MethodParameters:
       Name  Flags
      key    
      value  

  public org.graalvm.polyglot.Engine$Builder options(java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/util/Map;)Lorg/graalvm/polyglot/Engine$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // org.graalvm.polyglot.Engine$Builder this
        start local 1 // java.util.Map options
         0: .line 453
            aload 1 /* options */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 3
            goto 3
      StackMap locals: org.graalvm.polyglot.Engine$Builder java.util.Map top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 2 /* key */
        start local 2 // java.lang.String key
         2: .line 454
            aload 1 /* options */
            aload 2 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            ldc "All option values must be non-null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
        end local 2 // java.lang.String key
         3: .line 453
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         4: .line 456
            aload 0 /* this */
            getfield org.graalvm.polyglot.Engine$Builder.options:Ljava/util/Map;
            aload 1 /* options */
            invokeinterface java.util.Map.putAll:(Ljava/util/Map;)V
         5: .line 457
            aload 0 /* this */
            areturn
        end local 1 // java.util.Map options
        end local 0 // org.graalvm.polyglot.Engine$Builder this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lorg/graalvm/polyglot/Engine$Builder;
            0    6     1  options  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            2    3     2      key  Ljava/lang/String;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)Lorg/graalvm/polyglot/Engine$Builder;
    MethodParameters:
         Name  Flags
      options  

  public org.graalvm.polyglot.Engine$Builder serverTransport(org.graalvm.polyglot.io.MessageTransport);
    descriptor: (Lorg/graalvm/polyglot/io/MessageTransport;)Lorg/graalvm/polyglot/Engine$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.polyglot.Engine$Builder this
        start local 1 // org.graalvm.polyglot.io.MessageTransport serverTransport
         0: .line 472
            aload 1 /* serverTransport */
            ldc "MessageTransport must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 473
            aload 0 /* this */
            aload 1 /* serverTransport */
            putfield org.graalvm.polyglot.Engine$Builder.messageTransport:Lorg/graalvm/polyglot/io/MessageTransport;
         2: .line 474
            aload 0 /* this */
            areturn
        end local 1 // org.graalvm.polyglot.io.MessageTransport serverTransport
        end local 0 // org.graalvm.polyglot.Engine$Builder this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/graalvm/polyglot/Engine$Builder;
            0    3     1  serverTransport  Lorg/graalvm/polyglot/io/MessageTransport;
    MethodParameters:
                 Name  Flags
      serverTransport  final

  public org.graalvm.polyglot.Engine$Builder logHandler(java.util.logging.Handler);
    descriptor: (Ljava/util/logging/Handler;)Lorg/graalvm/polyglot/Engine$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.polyglot.Engine$Builder this
        start local 1 // java.util.logging.Handler logHandler
         0: .line 501
            aload 1 /* logHandler */
            ldc "Handler must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 502
            aload 0 /* this */
            aload 1 /* logHandler */
            putfield org.graalvm.polyglot.Engine$Builder.customLogHandler:Ljava/lang/Object;
         2: .line 503
            aload 0 /* this */
            areturn
        end local 1 // java.util.logging.Handler logHandler
        end local 0 // org.graalvm.polyglot.Engine$Builder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/graalvm/polyglot/Engine$Builder;
            0    3     1  logHandler  Ljava/util/logging/Handler;
    MethodParameters:
            Name  Flags
      logHandler  final

  public org.graalvm.polyglot.Engine$Builder logHandler(java.io.OutputStream);
    descriptor: (Ljava/io/OutputStream;)Lorg/graalvm/polyglot/Engine$Builder;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.polyglot.Engine$Builder this
        start local 1 // java.io.OutputStream logOut
         0: .line 530
            aload 1 /* logOut */
            ldc "LogOut must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 531
            aload 0 /* this */
            aload 1 /* logOut */
            putfield org.graalvm.polyglot.Engine$Builder.customLogHandler:Ljava/lang/Object;
         2: .line 532
            aload 0 /* this */
            areturn
        end local 1 // java.io.OutputStream logOut
        end local 0 // org.graalvm.polyglot.Engine$Builder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Lorg/graalvm/polyglot/Engine$Builder;
            0    3     1  logOut  Ljava/io/OutputStream;
    MethodParameters:
        Name  Flags
      logOut  final

  public org.graalvm.polyglot.Engine build();
    descriptor: ()Lorg/graalvm/polyglot/Engine;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=11, locals=2, args_size=1
        start local 0 // org.graalvm.polyglot.Engine$Builder this
         0: .line 542
            invokestatic org.graalvm.polyglot.Engine.getImpl:()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;
            astore 1 /* loadedImpl */
        start local 1 // org.graalvm.polyglot.impl.AbstractPolyglotImpl loadedImpl
         1: .line 543
            aload 1 /* loadedImpl */
            ifnonnull 3
         2: .line 544
            new java.lang.IllegalStateException
            dup
            ldc "The Polyglot API implementation failed to load."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 546
      StackMap locals: org.graalvm.polyglot.impl.AbstractPolyglotImpl
      StackMap stack:
            aload 1 /* loadedImpl */
            aload 0 /* this */
            getfield org.graalvm.polyglot.Engine$Builder.out:Ljava/io/OutputStream;
            aload 0 /* this */
            getfield org.graalvm.polyglot.Engine$Builder.err:Ljava/io/OutputStream;
            aload 0 /* this */
            getfield org.graalvm.polyglot.Engine$Builder.in:Ljava/io/InputStream;
            aload 0 /* this */
            getfield org.graalvm.polyglot.Engine$Builder.options:Ljava/util/Map;
            aload 0 /* this */
            getfield org.graalvm.polyglot.Engine$Builder.useSystemProperties:Z
            aload 0 /* this */
            getfield org.graalvm.polyglot.Engine$Builder.allowExperimentalOptions:Z
         4: .line 547
            aload 0 /* this */
            getfield org.graalvm.polyglot.Engine$Builder.boundEngine:Z
            aload 0 /* this */
            getfield org.graalvm.polyglot.Engine$Builder.messageTransport:Lorg/graalvm/polyglot/io/MessageTransport;
            aload 0 /* this */
            getfield org.graalvm.polyglot.Engine$Builder.customLogHandler:Ljava/lang/Object;
            aconst_null
         5: .line 546
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl.buildEngine:(Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map;ZZZLorg/graalvm/polyglot/io/MessageTransport;Ljava/lang/Object;Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Engine;
            areturn
        end local 1 // org.graalvm.polyglot.impl.AbstractPolyglotImpl loadedImpl
        end local 0 // org.graalvm.polyglot.Engine$Builder this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Lorg/graalvm/polyglot/Engine$Builder;
            1    6     1  loadedImpl  Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;
}
SourceFile: "Engine.java"
NestHost: org.graalvm.polyglot.Engine
InnerClasses:
  public final Builder = org.graalvm.polyglot.Engine$Builder of org.graalvm.polyglot.Engine