public class sun.tools.java.ClassFile
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: sun.tools.java.ClassFile
  super_class: java.lang.Object
{
  private java.io.File file;
    descriptor: Ljava/io/File;
    flags: (0x0002) ACC_PRIVATE

  private java.util.zip.ZipFile zipFile;
    descriptor: Ljava/util/zip/ZipFile;
    flags: (0x0002) ACC_PRIVATE

  private java.util.zip.ZipEntry zipEntry;
    descriptor: Ljava/util/zip/ZipEntry;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.io.File);
    descriptor: (Ljava/io/File;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // sun.tools.java.ClassFile this
        start local 1 // java.io.File file
         0: .line 58
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 59
            aload 0 /* this */
            aload 1 /* file */
            putfield sun.tools.java.ClassFile.file:Ljava/io/File;
         2: .line 60
            return
        end local 1 // java.io.File file
        end local 0 // sun.tools.java.ClassFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/tools/java/ClassFile;
            0    3     1  file  Ljava/io/File;
    MethodParameters:
      Name  Flags
      file  

  public void <init>(java.util.zip.ZipFile, java.util.zip.ZipEntry);
    descriptor: (Ljava/util/zip/ZipFile;Ljava/util/zip/ZipEntry;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // sun.tools.java.ClassFile this
        start local 1 // java.util.zip.ZipFile zf
        start local 2 // java.util.zip.ZipEntry ze
         0: .line 65
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 66
            aload 0 /* this */
            aload 1 /* zf */
            putfield sun.tools.java.ClassFile.zipFile:Ljava/util/zip/ZipFile;
         2: .line 67
            aload 0 /* this */
            aload 2 /* ze */
            putfield sun.tools.java.ClassFile.zipEntry:Ljava/util/zip/ZipEntry;
         3: .line 68
            return
        end local 2 // java.util.zip.ZipEntry ze
        end local 1 // java.util.zip.ZipFile zf
        end local 0 // sun.tools.java.ClassFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/tools/java/ClassFile;
            0    4     1    zf  Ljava/util/zip/ZipFile;
            0    4     2    ze  Ljava/util/zip/ZipEntry;
    MethodParameters:
      Name  Flags
      zf    
      ze    

  public boolean isZipped();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.tools.java.ClassFile this
         0: .line 74
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.zipFile:Ljava/util/zip/ZipFile;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // sun.tools.java.ClassFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lsun/tools/java/ClassFile;

  public java.io.InputStream getInputStream();
    descriptor: ()Ljava/io/InputStream;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.tools.java.ClassFile this
         0: .line 81
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            ifnull 2
         1: .line 82
            new java.io.FileInputStream
            dup
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            invokespecial java.io.FileInputStream.<init>:(Ljava/io/File;)V
            areturn
         2: .line 85
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.zipFile:Ljava/util/zip/ZipFile;
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.zipEntry:Ljava/util/zip/ZipEntry;
            invokevirtual java.util.zip.ZipFile.getInputStream:(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
         3: areturn
         4: .line 86
      StackMap locals:
      StackMap stack: java.util.zip.ZipException
            astore 1 /* e */
        start local 1 // java.util.zip.ZipException e
         5: .line 87
            new java.io.IOException
            dup
            aload 1 /* e */
            invokevirtual java.util.zip.ZipException.getMessage:()Ljava/lang/String;
            invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // java.util.zip.ZipException e
        end local 0 // sun.tools.java.ClassFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    6     0  this  Lsun/tools/java/ClassFile;
            5    6     1     e  Ljava/util/zip/ZipException;
      Exception table:
        from    to  target  type
           2     3       4  Class java.util.zip.ZipException
    Exceptions:
      throws java.io.IOException

  public boolean exists();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.tools.java.ClassFile this
         0: .line 96
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            ifnull 1
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            invokevirtual java.io.File.exists:()Z
            goto 2
      StackMap locals:
      StackMap stack:
         1: iconst_1
      StackMap locals:
      StackMap stack: int
         2: ireturn
        end local 0 // sun.tools.java.ClassFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/tools/java/ClassFile;

  public boolean isDirectory();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.tools.java.ClassFile this
         0: .line 103
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            ifnull 1
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            invokevirtual java.io.File.isDirectory:()Z
            goto 2
         1: .line 104
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.zipEntry:Ljava/util/zip/ZipEntry;
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            ldc "/"
            invokevirtual java.lang.String.endsWith:(Ljava/lang/String;)Z
         2: .line 103
      StackMap locals:
      StackMap stack: int
            ireturn
        end local 0 // sun.tools.java.ClassFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/tools/java/ClassFile;

  public long lastModified();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.tools.java.ClassFile this
         0: .line 111
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            ifnull 1
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            invokevirtual java.io.File.lastModified:()J
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield sun.tools.java.ClassFile.zipEntry:Ljava/util/zip/ZipEntry;
            invokevirtual java.util.zip.ZipEntry.getTime:()J
      StackMap locals:
      StackMap stack: long
         2: lreturn
        end local 0 // sun.tools.java.ClassFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/tools/java/ClassFile;

  public java.lang.String getPath();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.tools.java.ClassFile this
         0: .line 119
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            ifnull 2
         1: .line 120
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            areturn
         2: .line 122
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.zipFile:Ljava/util/zip/ZipFile;
            invokevirtual java.util.zip.ZipFile.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.zipEntry:Ljava/util/zip/ZipEntry;
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // sun.tools.java.ClassFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/tools/java/ClassFile;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.tools.java.ClassFile this
         0: .line 130
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            ifnull 1
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            invokevirtual java.io.File.getName:()Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield sun.tools.java.ClassFile.zipEntry:Ljava/util/zip/ZipEntry;
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // sun.tools.java.ClassFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/tools/java/ClassFile;

  public java.lang.String getAbsoluteName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // sun.tools.java.ClassFile this
         0: .line 139
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            ifnull 6
         1: .line 141
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            invokevirtual java.io.File.getCanonicalPath:()Ljava/lang/String;
            astore 1 /* absoluteName */
        start local 1 // java.lang.String absoluteName
         2: .line 142
            goto 7
        end local 1 // java.lang.String absoluteName
      StackMap locals:
      StackMap stack: java.io.IOException
         3: pop
         4: .line 143
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            invokevirtual java.io.File.getAbsolutePath:()Ljava/lang/String;
            astore 1 /* absoluteName */
        start local 1 // java.lang.String absoluteName
         5: .line 145
            goto 7
        end local 1 // java.lang.String absoluteName
         6: .line 146
      StackMap locals:
      StackMap stack:
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.zipFile:Ljava/util/zip/ZipFile;
            invokevirtual java.util.zip.ZipFile.getName:()Ljava/lang/String;
            invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc "("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.zipEntry:Ljava/util/zip/ZipEntry;
            invokevirtual java.util.zip.ZipEntry.getName:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc ")"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 1 /* absoluteName */
        start local 1 // java.lang.String absoluteName
         7: .line 148
      StackMap locals: java.lang.String
      StackMap stack:
            aload 1 /* absoluteName */
            areturn
        end local 1 // java.lang.String absoluteName
        end local 0 // sun.tools.java.ClassFile this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0          this  Lsun/tools/java/ClassFile;
            2    3     1  absoluteName  Ljava/lang/String;
            5    6     1  absoluteName  Ljava/lang/String;
            7    8     1  absoluteName  Ljava/lang/String;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException

  public long length();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // sun.tools.java.ClassFile this
         0: .line 156
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            ifnull 1
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            invokevirtual java.io.File.length:()J
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield sun.tools.java.ClassFile.zipEntry:Ljava/util/zip/ZipEntry;
            invokevirtual java.util.zip.ZipEntry.getSize:()J
      StackMap locals:
      StackMap stack: long
         2: lreturn
        end local 0 // sun.tools.java.ClassFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/tools/java/ClassFile;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // sun.tools.java.ClassFile this
         0: .line 160
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            ifnull 1
            aload 0 /* this */
            getfield sun.tools.java.ClassFile.file:Ljava/io/File;
            invokevirtual java.io.File.toString:()Ljava/lang/String;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield sun.tools.java.ClassFile.zipEntry:Ljava/util/zip/ZipEntry;
            invokevirtual java.util.zip.ZipEntry.toString:()Ljava/lang/String;
      StackMap locals:
      StackMap stack: java.lang.String
         2: areturn
        end local 0 // sun.tools.java.ClassFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lsun/tools/java/ClassFile;
}
SourceFile: "ClassFile.java"