public abstract class org.graalvm.polyglot.impl.AbstractPolyglotImpl
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.graalvm.polyglot.impl.AbstractPolyglotImpl
  super_class: java.lang.Object
{
  org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess api;
    descriptor: Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
    flags: (0x0000) 

  org.graalvm.polyglot.impl.AbstractPolyglotImpl$ManagementAccess management;
    descriptor: Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$ManagementAccess;
    flags: (0x0000) 

  org.graalvm.polyglot.impl.AbstractPolyglotImpl$IOAccess io;
    descriptor: Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$IOAccess;
    flags: (0x0000) 

  protected void <init>();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.impl.AbstractPolyglotImpl this
         0: .line 96
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 97
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "com.oracle.truffle.polyglot.PolyglotImpl"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "org.graalvm.polyglot.Engine$PolyglotInvalid"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 3
         2: .line 98
            new java.lang.AssertionError
            dup
            ldc "Only one implementation Engine.Impl allowed."
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
         3: .line 100
      StackMap locals: org.graalvm.polyglot.impl.AbstractPolyglotImpl
      StackMap stack:
            return
        end local 0 // org.graalvm.polyglot.impl.AbstractPolyglotImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;

  public final void setMonitoring(org.graalvm.polyglot.impl.AbstractPolyglotImpl$ManagementAccess);
    descriptor: (Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$ManagementAccess;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.polyglot.impl.AbstractPolyglotImpl this
        start local 1 // org.graalvm.polyglot.impl.AbstractPolyglotImpl$ManagementAccess monitoring
         0: .line 203
            aload 0 /* this */
            aload 1 /* monitoring */
            putfield org.graalvm.polyglot.impl.AbstractPolyglotImpl.management:Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$ManagementAccess;
         1: .line 204
            return
        end local 1 // org.graalvm.polyglot.impl.AbstractPolyglotImpl$ManagementAccess monitoring
        end local 0 // org.graalvm.polyglot.impl.AbstractPolyglotImpl this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;
            0    2     1  monitoring  Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$ManagementAccess;
    MethodParameters:
            Name  Flags
      monitoring  

  public final void setConstructors(org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess);
    descriptor: (Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.polyglot.impl.AbstractPolyglotImpl this
        start local 1 // org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess constructors
         0: .line 207
            aload 0 /* this */
            aload 1 /* constructors */
            putfield org.graalvm.polyglot.impl.AbstractPolyglotImpl.api:Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
         1: .line 208
            aload 0 /* this */
            invokevirtual org.graalvm.polyglot.impl.AbstractPolyglotImpl.initialize:()V
         2: .line 209
            return
        end local 1 // org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess constructors
        end local 0 // org.graalvm.polyglot.impl.AbstractPolyglotImpl this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;
            0    3     1  constructors  Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
    MethodParameters:
              Name  Flags
      constructors  

  public final void setIO(org.graalvm.polyglot.impl.AbstractPolyglotImpl$IOAccess);
    descriptor: (Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$IOAccess;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.graalvm.polyglot.impl.AbstractPolyglotImpl this
        start local 1 // org.graalvm.polyglot.impl.AbstractPolyglotImpl$IOAccess ioAccess
         0: .line 212
            aload 1 /* ioAccess */
            ldc "IOAccess must be non null."
            invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
            pop
         1: .line 213
            aload 0 /* this */
            aload 1 /* ioAccess */
            putfield org.graalvm.polyglot.impl.AbstractPolyglotImpl.io:Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$IOAccess;
         2: .line 214
            return
        end local 1 // org.graalvm.polyglot.impl.AbstractPolyglotImpl$IOAccess ioAccess
        end local 0 // org.graalvm.polyglot.impl.AbstractPolyglotImpl this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    3     0      this  Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;
            0    3     1  ioAccess  Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$IOAccess;
    MethodParameters:
          Name  Flags
      ioAccess  

  public org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess getAPIAccess();
    descriptor: ()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.impl.AbstractPolyglotImpl this
         0: .line 217
            aload 0 /* this */
            getfield org.graalvm.polyglot.impl.AbstractPolyglotImpl.api:Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$APIAccess;
            areturn
        end local 0 // org.graalvm.polyglot.impl.AbstractPolyglotImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;

  public org.graalvm.polyglot.impl.AbstractPolyglotImpl$ManagementAccess getManagement();
    descriptor: ()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$ManagementAccess;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.impl.AbstractPolyglotImpl this
         0: .line 221
            aload 0 /* this */
            getfield org.graalvm.polyglot.impl.AbstractPolyglotImpl.management:Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$ManagementAccess;
            areturn
        end local 0 // org.graalvm.polyglot.impl.AbstractPolyglotImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;

  public final org.graalvm.polyglot.impl.AbstractPolyglotImpl$IOAccess getIO();
    descriptor: ()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$IOAccess;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // org.graalvm.polyglot.impl.AbstractPolyglotImpl this
         0: .line 225
            aload 0 /* this */
            getfield org.graalvm.polyglot.impl.AbstractPolyglotImpl.io:Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$IOAccess;
            ifnonnull 5
         1: .line 227
            ldc "org.graalvm.polyglot.io.IOHelper"
            iconst_1
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            pop
         2: .line 228
            goto 5
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
         3: astore 1 /* e */
        start local 1 // java.lang.ClassNotFoundException e
         4: .line 229
            new java.lang.IllegalStateException
            dup
            aload 1 /* e */
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 1 // java.lang.ClassNotFoundException e
         5: .line 232
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.graalvm.polyglot.impl.AbstractPolyglotImpl.io:Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$IOAccess;
            areturn
        end local 0 // org.graalvm.polyglot.impl.AbstractPolyglotImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;
            4    5     1     e  Ljava/lang/ClassNotFoundException;
      Exception table:
        from    to  target  type
           1     2       3  Class java.lang.ClassNotFoundException

  protected void initialize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=0, locals=1, args_size=1
        start local 0 // org.graalvm.polyglot.impl.AbstractPolyglotImpl this
         0: .line 236
            return
        end local 0 // org.graalvm.polyglot.impl.AbstractPolyglotImpl this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl;

  public abstract org.graalvm.polyglot.Engine buildEngine(java.io.OutputStream, java.io.OutputStream, java.io.InputStream, java.util.Map<java.lang.String, java.lang.String>, boolean, boolean, boolean, org.graalvm.polyglot.io.MessageTransport, , org.graalvm.polyglot.HostAccess);
    descriptor: (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;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Ljava/io/OutputStream;Ljava/io/OutputStream;Ljava/io/InputStream;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;ZZZLorg/graalvm/polyglot/io/MessageTransport;Ljava/lang/Object;Lorg/graalvm/polyglot/HostAccess;)Lorg/graalvm/polyglot/Engine;
    MethodParameters:
                          Name  Flags
      out                       
      err                       
      in                        
      arguments                 
      useSystemProperties       
      allowExperimentalOptions  
      boundEngine               
      messageInterceptor        
      logHandlerOrStream        
      conf                      

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

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

  public abstract org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractSourceImpl getSourceImpl();
    descriptor: ()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractSourceImpl;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractSourceSectionImpl getSourceSectionImpl();
    descriptor: ()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractSourceSectionImpl;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractManagementImpl getManagementImpl();
    descriptor: ()Lorg/graalvm/polyglot/impl/AbstractPolyglotImpl$AbstractManagementImpl;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.lang.Class<?> loadLanguageClass(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/lang/Class;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (Ljava/lang/String;)Ljava/lang/Class<*>;
    MethodParameters:
           Name  Flags
      className  

  public abstract org.graalvm.polyglot.Context getCurrentContext();
    descriptor: ()Lorg/graalvm/polyglot/Context;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract java.util.Collection<org.graalvm.polyglot.Engine> findActiveEngines();
    descriptor: ()Ljava/util/Collection;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: ()Ljava/util/Collection<Lorg/graalvm/polyglot/Engine;>;

  public abstract org.graalvm.polyglot.Value asValue(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      o     

  public abstract <S, T>  newTargetTypeMapping(java.lang.Class<S>, java.lang.Class<T>, java.util.function.Predicate<S>, java.util.function.Function<S, T>, org.graalvm.polyglot.HostAccess$TargetMappingPrecedence);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;Ljava/util/function/Predicate;Ljava/util/function/Function;Lorg/graalvm/polyglot/HostAccess$TargetMappingPrecedence;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: <S:Ljava/lang/Object;T:Ljava/lang/Object;>(Ljava/lang/Class<TS;>;Ljava/lang/Class<TT;>;Ljava/util/function/Predicate<TS;>;Ljava/util/function/Function<TS;TT;>;Lorg/graalvm/polyglot/HostAccess$TargetMappingPrecedence;)Ljava/lang/Object;
    MethodParameters:
              Name  Flags
      sourceType    
      targetType    
      acceptsValue  
      convertValue  
      precedence    

  public abstract  buildLimits(long, java.util.function.Predicate<org.graalvm.polyglot.Source>, java.util.function.Consumer<org.graalvm.polyglot.ResourceLimitEvent>);
    descriptor: (JLjava/util/function/Predicate;Ljava/util/function/Consumer;)Ljava/lang/Object;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Signature: (JLjava/util/function/Predicate<Lorg/graalvm/polyglot/Source;>;Ljava/util/function/Consumer<Lorg/graalvm/polyglot/ResourceLimitEvent;>;)Ljava/lang/Object;
    MethodParameters:
                            Name  Flags
      statementLimit              
      statementLimitSourceFilter  
      onLimit                     

  public abstract org.graalvm.polyglot.Context getLimitEventContext(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Lorg/graalvm/polyglot/Context;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      impl  

  public abstract org.graalvm.polyglot.io.FileSystem newDefaultFileSystem();
    descriptor: ()Lorg/graalvm/polyglot/io/FileSystem;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
}
SourceFile: "AbstractPolyglotImpl.java"
NestMembers:
  org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess  org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractContextImpl  org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractEngineImpl  org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractExceptionImpl  org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractInstrumentImpl  org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractLanguageImpl  org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractManagementImpl  org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractSourceImpl  org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractSourceSectionImpl  org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractStackFrameImpl  org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractValueImpl  org.graalvm.polyglot.impl.AbstractPolyglotImpl$IOAccess  org.graalvm.polyglot.impl.AbstractPolyglotImpl$ManagementAccess
InnerClasses:
  public final TargetMappingPrecedence = org.graalvm.polyglot.HostAccess$TargetMappingPrecedence of org.graalvm.polyglot.HostAccess
  public abstract APIAccess = org.graalvm.polyglot.impl.AbstractPolyglotImpl$APIAccess of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractContextImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractContextImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractEngineImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractEngineImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractExceptionImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractExceptionImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractInstrumentImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractInstrumentImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractLanguageImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractLanguageImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractManagementImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractManagementImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractSourceImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractSourceImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractSourceSectionImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractSourceSectionImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractStackFrameImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractStackFrameImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract AbstractValueImpl = org.graalvm.polyglot.impl.AbstractPolyglotImpl$AbstractValueImpl of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract IOAccess = org.graalvm.polyglot.impl.AbstractPolyglotImpl$IOAccess of org.graalvm.polyglot.impl.AbstractPolyglotImpl
  public abstract ManagementAccess = org.graalvm.polyglot.impl.AbstractPolyglotImpl$ManagementAccess of org.graalvm.polyglot.impl.AbstractPolyglotImpl