abstract class jdk.nashorn.tools.jjs.PackagesHelper
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: jdk.nashorn.tools.jjs.PackagesHelper
  super_class: java.lang.Object
{
  private final jdk.nashorn.internal.runtime.Context context;
    descriptor: Ljdk/nashorn/internal/runtime/Context;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.util.LinkedHashMap<java.lang.String, java.util.List<java.lang.String>> propsCache;
    descriptor: Ljava/util/LinkedHashMap;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/LinkedHashMap<Ljava/lang/String;Ljava/util/List<Ljava/lang/String;>;>;

  void <init>(jdk.nashorn.internal.runtime.Context);
    descriptor: (Ljdk/nashorn/internal/runtime/Context;)V
    flags: (0x0000) 
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // jdk.nashorn.tools.jjs.PackagesHelper this
        start local 1 // jdk.nashorn.internal.runtime.Context context
         0: .line 51
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 60
            aload 0 /* this */
         2: .line 61
            new jdk.nashorn.tools.jjs.PackagesHelper$1
            dup
            aload 0 /* this */
            bipush 32
            ldc 0.75
            iconst_1
            invokespecial jdk.nashorn.tools.jjs.PackagesHelper$1.<init>:(Ljdk/nashorn/tools/jjs/PackagesHelper;IFZ)V
            putfield jdk.nashorn.tools.jjs.PackagesHelper.propsCache:Ljava/util/LinkedHashMap;
         3: .line 52
            aload 0 /* this */
            aload 1 /* context */
            putfield jdk.nashorn.tools.jjs.PackagesHelper.context:Ljdk/nashorn/internal/runtime/Context;
         4: .line 53
            return
        end local 1 // jdk.nashorn.internal.runtime.Context context
        end local 0 // jdk.nashorn.tools.jjs.PackagesHelper this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Ljdk/nashorn/tools/jjs/PackagesHelper;
            0    5     1  context  Ljdk/nashorn/internal/runtime/Context;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      context  final

  static jdk.nashorn.tools.jjs.PackagesHelper create(jdk.nashorn.internal.runtime.Context);
    descriptor: (Ljdk/nashorn/internal/runtime/Context;)Ljdk/nashorn/tools/jjs/PackagesHelper;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // jdk.nashorn.internal.runtime.Context context
         0: .line 56
            invokestatic jdk.nashorn.tools.jjs.PackagesHelper.isJavacHelperAvailable:()Z
            ifeq 1
            new jdk.nashorn.tools.jjs.JavacPackagesHelper
            dup
            aload 0 /* context */
            invokespecial jdk.nashorn.tools.jjs.JavacPackagesHelper.<init>:(Ljdk/nashorn/internal/runtime/Context;)V
            goto 2
      StackMap locals:
      StackMap stack:
         1: new jdk.nashorn.tools.jjs.JrtPackagesHelper
            dup
            aload 0 /* context */
            invokespecial jdk.nashorn.tools.jjs.JrtPackagesHelper.<init>:(Ljdk/nashorn/internal/runtime/Context;)V
      StackMap locals:
      StackMap stack: jdk.nashorn.tools.jjs.PackagesHelper
         2: areturn
        end local 0 // jdk.nashorn.internal.runtime.Context context
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    3     0  context  Ljdk/nashorn/internal/runtime/Context;
    Exceptions:
      throws java.io.IOException
    MethodParameters:
         Name  Flags
      context  final

  final java.util.List<java.lang.String> getPackageProperties(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/List;
    flags: (0x0010) ACC_FINAL
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // jdk.nashorn.tools.jjs.PackagesHelper this
        start local 1 // java.lang.String pkg
         0: .line 79
            aload 0 /* this */
            getfield jdk.nashorn.tools.jjs.PackagesHelper.propsCache:Ljava/util/LinkedHashMap;
            aload 1 /* pkg */
            invokevirtual java.util.LinkedHashMap.containsKey:(Ljava/lang/Object;)Z
            ifeq 2
         1: .line 80
            aload 0 /* this */
            getfield jdk.nashorn.tools.jjs.PackagesHelper.propsCache:Ljava/util/LinkedHashMap;
            aload 1 /* pkg */
            invokevirtual java.util.LinkedHashMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.util.List
            areturn
         2: .line 85
      StackMap locals:
      StackMap stack:
            new java.util.ArrayList
            dup
            aload 0 /* this */
            aload 1 /* pkg */
            invokevirtual jdk.nashorn.tools.jjs.PackagesHelper.listPackage:(Ljava/lang/String;)Ljava/util/Set;
            invokespecial java.util.ArrayList.<init>:(Ljava/util/Collection;)V
            astore 2 /* props */
        start local 2 // java.util.List props
         3: .line 86
            aload 2 /* props */
            invokestatic java.util.Collections.sort:(Ljava/util/List;)V
         4: .line 87
            aload 0 /* this */
            getfield jdk.nashorn.tools.jjs.PackagesHelper.propsCache:Ljava/util/LinkedHashMap;
            aload 1 /* pkg */
            aload 2 /* props */
            invokevirtual java.util.LinkedHashMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
         5: .line 88
            aload 2 /* props */
         6: areturn
        end local 2 // java.util.List props
         7: .line 89
      StackMap locals:
      StackMap stack: java.io.IOException
            astore 2 /* exp */
        start local 2 // java.io.IOException exp
         8: .line 90
            getstatic jdk.nashorn.tools.jjs.Main.DEBUG:Z
            ifeq 10
         9: .line 91
            aload 2 /* exp */
            invokevirtual java.io.IOException.printStackTrace:()V
        10: .line 93
      StackMap locals: java.io.IOException
      StackMap stack:
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            areturn
        end local 2 // java.io.IOException exp
        end local 1 // java.lang.String pkg
        end local 0 // jdk.nashorn.tools.jjs.PackagesHelper this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   11     0   this  Ljdk/nashorn/tools/jjs/PackagesHelper;
            0   11     1    pkg  Ljava/lang/String;
            3    7     2  props  Ljava/util/List<Ljava/lang/String;>;
            8   11     2    exp  Ljava/io/IOException;
      Exception table:
        from    to  target  type
           2     6       7  Class java.io.IOException
    Signature: (Ljava/lang/String;)Ljava/util/List<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      pkg   final

  abstract void close();
    descriptor: ()V
    flags: (0x0400) ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException

  abstract java.util.Set<java.lang.String> listPackage(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/util/Set;
    flags: (0x0400) ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/String;)Ljava/util/Set<Ljava/lang/String;>;
    MethodParameters:
      Name  Flags
      pkg   final

  final boolean isClassAccessible(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // jdk.nashorn.tools.jjs.PackagesHelper this
        start local 1 // java.lang.String className
         0: .line 112
            aload 0 /* this */
            getfield jdk.nashorn.tools.jjs.PackagesHelper.context:Ljdk/nashorn/internal/runtime/Context;
            aload 1 /* className */
            invokevirtual jdk.nashorn.internal.runtime.Context.findClass:(Ljava/lang/String;)Ljava/lang/Class;
            astore 2 /* clz */
        start local 2 // java.lang.Class clz
         1: .line 113
            aload 2 /* clz */
            invokevirtual java.lang.Class.getModifiers:()I
            invokestatic java.lang.reflect.Modifier.isPublic:(I)Z
         2: ireturn
        end local 2 // java.lang.Class clz
         3: .line 114
      StackMap locals:
      StackMap stack: java.lang.ClassNotFoundException
            pop
         4: .line 116
            iconst_0
            ireturn
        end local 1 // java.lang.String className
        end local 0 // jdk.nashorn.tools.jjs.PackagesHelper this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    5     0       this  Ljdk/nashorn/tools/jjs/PackagesHelper;
            0    5     1  className  Ljava/lang/String;
            1    3     2        clz  Ljava/lang/Class<*>;
      Exception table:
        from    to  target  type
           0     2       3  Class java.lang.ClassNotFoundException
    MethodParameters:
           Name  Flags
      className  final

  final boolean isPackageAccessible(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0010) ACC_FINAL
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // jdk.nashorn.tools.jjs.PackagesHelper this
        start local 1 // java.lang.String pkgName
         0: .line 121
            aload 1 /* pkgName */
            invokestatic jdk.nashorn.internal.runtime.Context.checkPackageAccess:(Ljava/lang/String;)V
         1: .line 122
            iconst_1
            ireturn
         2: .line 123
      StackMap locals:
      StackMap stack: java.lang.SecurityException
            pop
         3: .line 124
            iconst_0
            ireturn
        end local 1 // java.lang.String pkgName
        end local 0 // jdk.nashorn.tools.jjs.PackagesHelper this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Ljdk/nashorn/tools/jjs/PackagesHelper;
            0    4     1  pkgName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           0     1       2  Class java.lang.SecurityException
    MethodParameters:
         Name  Flags
      pkgName  final

  private static boolean isJavacHelperAvailable();
    descriptor: ()Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=0
         0: .line 130
            invokestatic jdk.nashorn.tools.jjs.JavacPackagesHelper.isAvailable:()Z
            istore 0 /* result */
        start local 0 // boolean result
         1: .line 131
            getstatic jdk.nashorn.tools.jjs.Main.DEBUG:Z
            ifeq 3
            iload 0 /* result */
            ifne 3
         2: .line 132
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "javac packages helper is not available"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         3: .line 134
      StackMap locals: int
      StackMap stack:
            iload 0 /* result */
         4: ireturn
        end local 0 // boolean result
         5: .line 135
      StackMap locals:
      StackMap stack: java.lang.LinkageError
            astore 0 /* err */
        start local 0 // java.lang.LinkageError err
         6: .line 136
            getstatic jdk.nashorn.tools.jjs.Main.DEBUG:Z
            ifeq 9
         7: .line 137
            getstatic java.lang.System.err:Ljava/io/PrintStream;
            ldc "javac packages helper is not available"
            invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
         8: .line 138
            aload 0 /* err */
            invokevirtual java.lang.LinkageError.printStackTrace:()V
         9: .line 140
      StackMap locals: java.lang.LinkageError
      StackMap stack:
            iconst_0
            ireturn
        end local 0 // java.lang.LinkageError err
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            1    5     0  result  Z
            6   10     0     err  Ljava/lang/LinkageError;
      Exception table:
        from    to  target  type
           0     4       5  Class java.lang.LinkageError
}
SourceFile: "PackagesHelper.java"
NestMembers:
  jdk.nashorn.tools.jjs.PackagesHelper$1
InnerClasses:
  jdk.nashorn.tools.jjs.PackagesHelper$1