public abstract class jdk.incubator.jpackage.internal.AbstractAppImageBuilder
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: jdk.incubator.jpackage.internal.AbstractAppImageBuilder
  super_class: java.lang.Object
{
  private final java.nio.file.Path root;
    descriptor: Ljava/nio/file/Path;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  protected final jdk.incubator.jpackage.internal.ApplicationLayout appLayout;
    descriptor: Ljdk/incubator/jpackage/internal/ApplicationLayout;
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  public void <init>(java.nio.file.Path);
    descriptor: (Ljava/nio/file/Path;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // jdk.incubator.jpackage.internal.AbstractAppImageBuilder this
        start local 1 // java.nio.file.Path root
         0: .line 50
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 51
            aload 0 /* this */
            aload 1 /* root */
            putfield jdk.incubator.jpackage.internal.AbstractAppImageBuilder.root:Ljava/nio/file/Path;
         2: .line 52
            aload 0 /* this */
            invokestatic jdk.incubator.jpackage.internal.ApplicationLayout.platformAppImage:()Ljdk/incubator/jpackage/internal/ApplicationLayout;
            aload 1 /* root */
            invokevirtual jdk.incubator.jpackage.internal.ApplicationLayout.resolveAt:(Ljava/nio/file/Path;)Ljdk/incubator/jpackage/internal/ApplicationLayout;
            putfield jdk.incubator.jpackage.internal.AbstractAppImageBuilder.appLayout:Ljdk/incubator/jpackage/internal/ApplicationLayout;
         3: .line 53
            return
        end local 1 // java.nio.file.Path root
        end local 0 // jdk.incubator.jpackage.internal.AbstractAppImageBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Ljdk/incubator/jpackage/internal/AbstractAppImageBuilder;
            0    4     1  root  Ljava/nio/file/Path;
    MethodParameters:
      Name  Flags
      root  

  public java.io.InputStream getResourceAsStream(java.lang.String);
    descriptor: (Ljava/lang/String;)Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.incubator.jpackage.internal.AbstractAppImageBuilder this
        start local 1 // java.lang.String name
         0: .line 56
            ldc Ljdk/incubator/jpackage/internal/resources/ResourceLocator;
            aload 1 /* name */
            invokevirtual java.lang.Class.getResourceAsStream:(Ljava/lang/String;)Ljava/io/InputStream;
            areturn
        end local 1 // java.lang.String name
        end local 0 // jdk.incubator.jpackage.internal.AbstractAppImageBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/incubator/jpackage/internal/AbstractAppImageBuilder;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public abstract void prepareApplicationFiles(java.util.Map<java.lang.String, ? super java.lang.Object>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/Map<Ljava/lang/String;-Ljava/lang/Object;>;)V
    MethodParameters:
        Name  Flags
      params  

  protected void writeCfgFile(java.util.Map<java.lang.String, ? super java.lang.Object>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // jdk.incubator.jpackage.internal.AbstractAppImageBuilder this
        start local 1 // java.util.Map params
         0: .line 64
            new jdk.incubator.jpackage.internal.CfgFile
            dup
            invokespecial jdk.incubator.jpackage.internal.CfgFile.<init>:()V
            aload 1 /* params */
            invokevirtual jdk.incubator.jpackage.internal.CfgFile.initFromParams:(Ljava/util/Map;)Ljdk/incubator/jpackage/internal/CfgFile;
            aload 0 /* this */
            getfield jdk.incubator.jpackage.internal.AbstractAppImageBuilder.root:Ljava/nio/file/Path;
            invokevirtual jdk.incubator.jpackage.internal.CfgFile.create:(Ljava/nio/file/Path;)V
         1: .line 65
            return
        end local 1 // java.util.Map params
        end local 0 // jdk.incubator.jpackage.internal.AbstractAppImageBuilder this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Ljdk/incubator/jpackage/internal/AbstractAppImageBuilder;
            0    2     1  params  Ljava/util/Map<Ljava/lang/String;-Ljava/lang/Object;>;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/Map<Ljava/lang/String;-Ljava/lang/Object;>;)V
    MethodParameters:
        Name  Flags
      params  

  jdk.incubator.jpackage.internal.ApplicationLayout getAppLayout();
    descriptor: ()Ljdk/incubator/jpackage/internal/ApplicationLayout;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // jdk.incubator.jpackage.internal.AbstractAppImageBuilder this
         0: .line 68
            aload 0 /* this */
            getfield jdk.incubator.jpackage.internal.AbstractAppImageBuilder.appLayout:Ljdk/incubator/jpackage/internal/ApplicationLayout;
            areturn
        end local 0 // jdk.incubator.jpackage.internal.AbstractAppImageBuilder this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Ljdk/incubator/jpackage/internal/AbstractAppImageBuilder;

  protected void copyApplication(java.util.Map<java.lang.String, ? super java.lang.Object>);
    descriptor: (Ljava/util/Map;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // jdk.incubator.jpackage.internal.AbstractAppImageBuilder this
        start local 1 // java.util.Map params
         0: .line 73
            getstatic jdk.incubator.jpackage.internal.StandardBundlerParam.SOURCE_DIR:Ljdk/incubator/jpackage/internal/StandardBundlerParam;
            aload 1 /* params */
            invokevirtual jdk.incubator.jpackage.internal.StandardBundlerParam.fetchFrom:(Ljava/util/Map;)Ljava/lang/Object;
            checkcast java.nio.file.Path
            astore 2 /* inputPath */
        start local 2 // java.nio.file.Path inputPath
         1: .line 74
            aload 2 /* inputPath */
            ifnull 5
         2: .line 75
            getstatic jdk.incubator.jpackage.internal.StandardBundlerParam.SOURCE_DIR:Ljdk/incubator/jpackage/internal/StandardBundlerParam;
            aload 1 /* params */
            invokevirtual jdk.incubator.jpackage.internal.StandardBundlerParam.fetchFrom:(Ljava/util/Map;)Ljava/lang/Object;
            checkcast java.nio.file.Path
         3: .line 76
            aload 0 /* this */
            getfield jdk.incubator.jpackage.internal.AbstractAppImageBuilder.appLayout:Ljdk/incubator/jpackage/internal/ApplicationLayout;
            invokevirtual jdk.incubator.jpackage.internal.ApplicationLayout.appDirectory:()Ljava/nio/file/Path;
         4: .line 75
            invokestatic jdk.incubator.jpackage.internal.IOUtils.copyRecursive:(Ljava/nio/file/Path;Ljava/nio/file/Path;)V
         5: .line 78
      StackMap locals: java.nio.file.Path
      StackMap stack:
            aload 0 /* this */
            getfield jdk.incubator.jpackage.internal.AbstractAppImageBuilder.root:Ljava/nio/file/Path;
            aload 1 /* params */
            invokestatic jdk.incubator.jpackage.internal.AppImageFile.save:(Ljava/nio/file/Path;Ljava/util/Map;)V
         6: .line 79
            return
        end local 2 // java.nio.file.Path inputPath
        end local 1 // java.util.Map params
        end local 0 // jdk.incubator.jpackage.internal.AbstractAppImageBuilder this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    7     0       this  Ljdk/incubator/jpackage/internal/AbstractAppImageBuilder;
            0    7     1     params  Ljava/util/Map<Ljava/lang/String;-Ljava/lang/Object;>;
            1    7     2  inputPath  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/util/Map<Ljava/lang/String;-Ljava/lang/Object;>;)V
    MethodParameters:
        Name  Flags
      params  

  public static jdk.incubator.jpackage.internal.OverridableResource createIconResource(java.lang.String, jdk.incubator.jpackage.internal.BundlerParamInfo<java.io.File>, java.util.Map<java.lang.String, ? super java.lang.Object>, java.util.Map<java.lang.String, ? super java.lang.Object>);
    descriptor: (Ljava/lang/String;Ljdk/incubator/jpackage/internal/BundlerParamInfo;Ljava/util/Map;Ljava/util/Map;)Ljdk/incubator/jpackage/internal/OverridableResource;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=8, args_size=4
        start local 0 // java.lang.String defaultIconName
        start local 1 // jdk.incubator.jpackage.internal.BundlerParamInfo iconParam
        start local 2 // java.util.Map params
        start local 3 // java.util.Map mainParams
         0: .line 85
            aload 3 /* mainParams */
            ifnull 4
         1: .line 86
            aload 3 /* mainParams */
            aload 2 /* params */
            iconst_2
            anewarray java.lang.String
            dup
            iconst_0
            getstatic jdk.incubator.jpackage.internal.StandardBundlerParam.ICON:Ljdk/incubator/jpackage/internal/StandardBundlerParam;
            invokevirtual jdk.incubator.jpackage.internal.StandardBundlerParam.getID:()Ljava/lang/String;
            aastore
            dup
            iconst_1
         2: .line 87
            aload 1 /* iconParam */
            invokevirtual jdk.incubator.jpackage.internal.BundlerParamInfo.getID:()Ljava/lang/String;
            aastore
         3: .line 86
            invokestatic jdk.incubator.jpackage.internal.AddLauncherArguments.merge:(Ljava/util/Map;Ljava/util/Map;[Ljava/lang/String;)Ljava/util/Map;
            astore 2 /* params */
         4: .line 90
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            getstatic jdk.incubator.jpackage.internal.StandardBundlerParam.APP_NAME:Ljdk/incubator/jpackage/internal/StandardBundlerParam;
            aload 2 /* params */
            invokevirtual jdk.incubator.jpackage.internal.StandardBundlerParam.fetchFrom:(Ljava/util/Map;)Ljava/lang/Object;
            checkcast java.lang.String
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         5: .line 91
            aload 0 /* defaultIconName */
            iconst_0
            anewarray java.lang.String
            invokestatic java.nio.file.Path.of:(Ljava/lang/String;[Ljava/lang/String;)Ljava/nio/file/Path;
            invokestatic jdk.incubator.jpackage.internal.IOUtils.getSuffix:(Ljava/nio/file/Path;)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 90
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 4 /* resourcePublicName */
        start local 4 // java.lang.String resourcePublicName
         7: .line 93
            aload 2 /* params */
            invokestatic jdk.incubator.jpackage.internal.AbstractAppImageBuilder.getLauncherIconType:(Ljava/util/Map;)Ljdk/incubator/jpackage/internal/AbstractAppImageBuilder$IconType;
            astore 5 /* iconType */
        start local 5 // jdk.incubator.jpackage.internal.AbstractAppImageBuilder$IconType iconType
         8: .line 94
            aload 5 /* iconType */
            getstatic jdk.incubator.jpackage.internal.AbstractAppImageBuilder$IconType.NoIcon:Ljdk/incubator/jpackage/internal/AbstractAppImageBuilder$IconType;
            if_acmpne 10
         9: .line 95
            aconst_null
            areturn
        10: .line 98
      StackMap locals: java.lang.String jdk.incubator.jpackage.internal.AbstractAppImageBuilder$IconType
      StackMap stack:
            aload 0 /* defaultIconName */
            aload 2 /* params */
            invokestatic jdk.incubator.jpackage.internal.OverridableResource.createResource:(Ljava/lang/String;Ljava/util/Map;)Ljdk/incubator/jpackage/internal/OverridableResource;
        11: .line 99
            ldc "icon"
            invokevirtual jdk.incubator.jpackage.internal.OverridableResource.setCategory:(Ljava/lang/String;)Ljdk/incubator/jpackage/internal/OverridableResource;
        12: .line 100
            aload 1 /* iconParam */
            aload 2 /* params */
            invokevirtual jdk.incubator.jpackage.internal.BundlerParamInfo.fetchFrom:(Ljava/util/Map;)Ljava/lang/Object;
            checkcast java.io.File
            invokevirtual jdk.incubator.jpackage.internal.OverridableResource.setExternal:(Ljava/io/File;)Ljdk/incubator/jpackage/internal/OverridableResource;
        13: .line 101
            aload 4 /* resourcePublicName */
            invokevirtual jdk.incubator.jpackage.internal.OverridableResource.setPublicName:(Ljava/lang/String;)Ljdk/incubator/jpackage/internal/OverridableResource;
        14: .line 98
            astore 6 /* resource */
        start local 6 // jdk.incubator.jpackage.internal.OverridableResource resource
        15: .line 103
            aload 5 /* iconType */
            getstatic jdk.incubator.jpackage.internal.AbstractAppImageBuilder$IconType.DefaultOrResourceDirIcon:Ljdk/incubator/jpackage/internal/AbstractAppImageBuilder$IconType;
            if_acmpne 25
            aload 3 /* mainParams */
            ifnull 25
        16: .line 106
            aconst_null
            astore 7 /* nullPath */
        start local 7 // java.nio.file.Path nullPath
        17: .line 107
            aload 6 /* resource */
            aload 7 /* nullPath */
            invokevirtual jdk.incubator.jpackage.internal.OverridableResource.saveToFile:(Ljava/nio/file/Path;)Ljdk/incubator/jpackage/internal/OverridableResource$Source;
        18: .line 108
            getstatic jdk.incubator.jpackage.internal.OverridableResource$Source.ResourceDir:Ljdk/incubator/jpackage/internal/OverridableResource$Source;
        19: .line 107
            if_acmpeq 25
        20: .line 111
            aload 0 /* defaultIconName */
            aload 1 /* iconParam */
        21: .line 112
            aload 3 /* mainParams */
            aconst_null
        22: .line 111
            invokestatic jdk.incubator.jpackage.internal.AbstractAppImageBuilder.createIconResource:(Ljava/lang/String;Ljdk/incubator/jpackage/internal/BundlerParamInfo;Ljava/util/Map;Ljava/util/Map;)Ljdk/incubator/jpackage/internal/OverridableResource;
        23: .line 112
            aload 4 /* resourcePublicName */
            invokevirtual jdk.incubator.jpackage.internal.OverridableResource.setLogPublicName:(Ljava/lang/String;)Ljdk/incubator/jpackage/internal/OverridableResource;
        24: .line 111
            astore 6 /* resource */
        end local 7 // java.nio.file.Path nullPath
        25: .line 116
      StackMap locals: jdk.incubator.jpackage.internal.OverridableResource
      StackMap stack:
            aload 6 /* resource */
            areturn
        end local 6 // jdk.incubator.jpackage.internal.OverridableResource resource
        end local 5 // jdk.incubator.jpackage.internal.AbstractAppImageBuilder$IconType iconType
        end local 4 // java.lang.String resourcePublicName
        end local 3 // java.util.Map mainParams
        end local 2 // java.util.Map params
        end local 1 // jdk.incubator.jpackage.internal.BundlerParamInfo iconParam
        end local 0 // java.lang.String defaultIconName
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   26     0     defaultIconName  Ljava/lang/String;
            0   26     1           iconParam  Ljdk/incubator/jpackage/internal/BundlerParamInfo<Ljava/io/File;>;
            0   26     2              params  Ljava/util/Map<Ljava/lang/String;-Ljava/lang/Object;>;
            0   26     3          mainParams  Ljava/util/Map<Ljava/lang/String;-Ljava/lang/Object;>;
            7   26     4  resourcePublicName  Ljava/lang/String;
            8   26     5            iconType  Ljdk/incubator/jpackage/internal/AbstractAppImageBuilder$IconType;
           15   26     6            resource  Ljdk/incubator/jpackage/internal/OverridableResource;
           17   25     7            nullPath  Ljava/nio/file/Path;
    Exceptions:
      throws java.io.IOException
    Signature: (Ljava/lang/String;Ljdk/incubator/jpackage/internal/BundlerParamInfo<Ljava/io/File;>;Ljava/util/Map<Ljava/lang/String;-Ljava/lang/Object;>;Ljava/util/Map<Ljava/lang/String;-Ljava/lang/Object;>;)Ljdk/incubator/jpackage/internal/OverridableResource;
    MethodParameters:
                 Name  Flags
      defaultIconName  
      iconParam        
      params           
      mainParams       

  private static jdk.incubator.jpackage.internal.AbstractAppImageBuilder$IconType getLauncherIconType(java.util.Map<java.lang.String, ? super java.lang.Object>);
    descriptor: (Ljava/util/Map;)Ljdk/incubator/jpackage/internal/AbstractAppImageBuilder$IconType;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // java.util.Map params
         0: .line 122
            getstatic jdk.incubator.jpackage.internal.StandardBundlerParam.ICON:Ljdk/incubator/jpackage/internal/StandardBundlerParam;
            aload 0 /* params */
            invokevirtual jdk.incubator.jpackage.internal.StandardBundlerParam.fetchFrom:(Ljava/util/Map;)Ljava/lang/Object;
            checkcast java.io.File
            astore 1 /* launcherIcon */
        start local 1 // java.io.File launcherIcon
         1: .line 123
            aload 1 /* launcherIcon */
            ifnonnull 3
         2: .line 124
            getstatic jdk.incubator.jpackage.internal.AbstractAppImageBuilder$IconType.DefaultOrResourceDirIcon:Ljdk/incubator/jpackage/internal/AbstractAppImageBuilder$IconType;
            areturn
         3: .line 127
      StackMap locals: java.io.File
      StackMap stack:
            aload 1 /* launcherIcon */
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            invokevirtual java.lang.String.isEmpty:()Z
            ifeq 5
         4: .line 128
            getstatic jdk.incubator.jpackage.internal.AbstractAppImageBuilder$IconType.NoIcon:Ljdk/incubator/jpackage/internal/AbstractAppImageBuilder$IconType;
            areturn
         5: .line 131
      StackMap locals:
      StackMap stack:
            getstatic jdk.incubator.jpackage.internal.AbstractAppImageBuilder$IconType.CustomIcon:Ljdk/incubator/jpackage/internal/AbstractAppImageBuilder$IconType;
            areturn
        end local 1 // java.io.File launcherIcon
        end local 0 // java.util.Map params
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    6     0        params  Ljava/util/Map<Ljava/lang/String;-Ljava/lang/Object;>;
            1    6     1  launcherIcon  Ljava/io/File;
    Signature: (Ljava/util/Map<Ljava/lang/String;-Ljava/lang/Object;>;)Ljdk/incubator/jpackage/internal/AbstractAppImageBuilder$IconType;
    MethodParameters:
        Name  Flags
      params  
}
SourceFile: "AbstractAppImageBuilder.java"
NestMembers:
  jdk.incubator.jpackage.internal.AbstractAppImageBuilder$IconType
InnerClasses:
  private final IconType = jdk.incubator.jpackage.internal.AbstractAppImageBuilder$IconType of jdk.incubator.jpackage.internal.AbstractAppImageBuilder
  final Source = jdk.incubator.jpackage.internal.OverridableResource$Source of jdk.incubator.jpackage.internal.OverridableResource