public final class org.springframework.boot.devtools.filewatch.ChangedFile
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: org.springframework.boot.devtools.filewatch.ChangedFile
  super_class: java.lang.Object
{
  private final java.io.File sourceDirectory;
    descriptor: Ljava/io/File;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.io.File file;
    descriptor: Ljava/io/File;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final org.springframework.boot.devtools.filewatch.ChangedFile$Type type;
    descriptor: Lorg/springframework/boot/devtools/filewatch/ChangedFile$Type;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  public void <init>(java.io.File, java.io.File, org.springframework.boot.devtools.filewatch.ChangedFile$Type);
    descriptor: (Ljava/io/File;Ljava/io/File;Lorg/springframework/boot/devtools/filewatch/ChangedFile$Type;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // org.springframework.boot.devtools.filewatch.ChangedFile this
        start local 1 // java.io.File sourceDirectory
        start local 2 // java.io.File file
        start local 3 // org.springframework.boot.devtools.filewatch.ChangedFile$Type type
         0: .line 45
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 46
            aload 1 /* sourceDirectory */
            ldc "SourceDirectory must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         2: .line 47
            aload 2 /* file */
            ldc "File must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         3: .line 48
            aload 3 /* type */
            ldc "Type must not be null"
            invokestatic org.springframework.util.Assert.notNull:(Ljava/lang/Object;Ljava/lang/String;)V
         4: .line 49
            aload 0 /* this */
            aload 1 /* sourceDirectory */
            putfield org.springframework.boot.devtools.filewatch.ChangedFile.sourceDirectory:Ljava/io/File;
         5: .line 50
            aload 0 /* this */
            aload 2 /* file */
            putfield org.springframework.boot.devtools.filewatch.ChangedFile.file:Ljava/io/File;
         6: .line 51
            aload 0 /* this */
            aload 3 /* type */
            putfield org.springframework.boot.devtools.filewatch.ChangedFile.type:Lorg/springframework/boot/devtools/filewatch/ChangedFile$Type;
         7: .line 52
            return
        end local 3 // org.springframework.boot.devtools.filewatch.ChangedFile$Type type
        end local 2 // java.io.File file
        end local 1 // java.io.File sourceDirectory
        end local 0 // org.springframework.boot.devtools.filewatch.ChangedFile this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0             this  Lorg/springframework/boot/devtools/filewatch/ChangedFile;
            0    8     1  sourceDirectory  Ljava/io/File;
            0    8     2             file  Ljava/io/File;
            0    8     3             type  Lorg/springframework/boot/devtools/filewatch/ChangedFile$Type;
    MethodParameters:
                 Name  Flags
      sourceDirectory  
      file             
      type             

  public java.io.File getFile();
    descriptor: ()Ljava/io/File;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.boot.devtools.filewatch.ChangedFile this
         0: .line 59
            aload 0 /* this */
            getfield org.springframework.boot.devtools.filewatch.ChangedFile.file:Ljava/io/File;
            areturn
        end local 0 // org.springframework.boot.devtools.filewatch.ChangedFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/devtools/filewatch/ChangedFile;

  public org.springframework.boot.devtools.filewatch.ChangedFile$Type getType();
    descriptor: ()Lorg/springframework/boot/devtools/filewatch/ChangedFile$Type;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.springframework.boot.devtools.filewatch.ChangedFile this
         0: .line 67
            aload 0 /* this */
            getfield org.springframework.boot.devtools.filewatch.ChangedFile.type:Lorg/springframework/boot/devtools/filewatch/ChangedFile$Type;
            areturn
        end local 0 // org.springframework.boot.devtools.filewatch.ChangedFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/devtools/filewatch/ChangedFile;

  public java.lang.String getRelativeName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // org.springframework.boot.devtools.filewatch.ChangedFile this
         0: .line 75
            aload 0 /* this */
            getfield org.springframework.boot.devtools.filewatch.ChangedFile.sourceDirectory:Ljava/io/File;
            invokevirtual java.io.File.getAbsoluteFile:()Ljava/io/File;
            astore 1 /* directory */
        start local 1 // java.io.File directory
         1: .line 76
            aload 0 /* this */
            getfield org.springframework.boot.devtools.filewatch.ChangedFile.file:Ljava/io/File;
            invokevirtual java.io.File.getAbsoluteFile:()Ljava/io/File;
            astore 2 /* file */
        start local 2 // java.io.File file
         2: .line 77
            aload 1 /* directory */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            invokestatic org.springframework.util.StringUtils.cleanPath:(Ljava/lang/String;)Ljava/lang/String;
            astore 3 /* directoryName */
        start local 3 // java.lang.String directoryName
         3: .line 78
            aload 2 /* file */
            invokevirtual java.io.File.getPath:()Ljava/lang/String;
            invokestatic org.springframework.util.StringUtils.cleanPath:(Ljava/lang/String;)Ljava/lang/String;
            astore 4 /* fileName */
        start local 4 // java.lang.String fileName
         4: .line 79
            aload 4 /* fileName */
            aload 3 /* directoryName */
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
         5: .line 80
            aload 4 /* fileName */
            aload 3 /* directoryName */
            invokedynamic get(Ljava/lang/String;Ljava/lang/String;)Ljava/util/function/Supplier;
              Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
                Method arguments:
                  ()Ljava/lang/Object;
                  org/springframework/boot/devtools/filewatch/ChangedFile.lambda$0(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; (6)
                  ()Ljava/lang/String;
         6: .line 79
            invokestatic org.springframework.util.Assert.state:(ZLjava/util/function/Supplier;)V
         7: .line 81
            aload 4 /* fileName */
            aload 3 /* directoryName */
            invokevirtual java.lang.String.length:()I
            iconst_1
            iadd
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            areturn
        end local 4 // java.lang.String fileName
        end local 3 // java.lang.String directoryName
        end local 2 // java.io.File file
        end local 1 // java.io.File directory
        end local 0 // org.springframework.boot.devtools.filewatch.ChangedFile this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lorg/springframework/boot/devtools/filewatch/ChangedFile;
            1    8     1      directory  Ljava/io/File;
            2    8     2           file  Ljava/io/File;
            3    8     3  directoryName  Ljava/lang/String;
            4    8     4       fileName  Ljava/lang/String;

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.springframework.boot.devtools.filewatch.ChangedFile this
        start local 1 // java.lang.Object obj
         0: .line 86
            aload 1 /* obj */
            aload 0 /* this */
            if_acmpne 2
         1: .line 87
            iconst_1
            ireturn
         2: .line 89
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            ifnonnull 4
         3: .line 90
            iconst_0
            ireturn
         4: .line 92
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            instanceof org.springframework.boot.devtools.filewatch.ChangedFile
            ifeq 8
         5: .line 93
            aload 1 /* obj */
            checkcast org.springframework.boot.devtools.filewatch.ChangedFile
            astore 2 /* other */
        start local 2 // org.springframework.boot.devtools.filewatch.ChangedFile other
         6: .line 94
            aload 0 /* this */
            getfield org.springframework.boot.devtools.filewatch.ChangedFile.file:Ljava/io/File;
            aload 2 /* other */
            getfield org.springframework.boot.devtools.filewatch.ChangedFile.file:Ljava/io/File;
            invokevirtual java.io.File.equals:(Ljava/lang/Object;)Z
            ifeq 7
            aload 0 /* this */
            getfield org.springframework.boot.devtools.filewatch.ChangedFile.type:Lorg/springframework/boot/devtools/filewatch/ChangedFile$Type;
            aload 2 /* other */
            getfield org.springframework.boot.devtools.filewatch.ChangedFile.type:Lorg/springframework/boot/devtools/filewatch/ChangedFile$Type;
            invokevirtual org.springframework.boot.devtools.filewatch.ChangedFile$Type.equals:(Ljava/lang/Object;)Z
            ifeq 7
            iconst_1
            ireturn
      StackMap locals: org.springframework.boot.devtools.filewatch.ChangedFile
      StackMap stack:
         7: iconst_0
            ireturn
        end local 2 // org.springframework.boot.devtools.filewatch.ChangedFile other
         8: .line 96
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* obj */
            invokespecial java.lang.Object.equals:(Ljava/lang/Object;)Z
            ireturn
        end local 1 // java.lang.Object obj
        end local 0 // org.springframework.boot.devtools.filewatch.ChangedFile this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0   this  Lorg/springframework/boot/devtools/filewatch/ChangedFile;
            0    9     1    obj  Ljava/lang/Object;
            6    8     2  other  Lorg/springframework/boot/devtools/filewatch/ChangedFile;
    MethodParameters:
      Name  Flags
      obj   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.boot.devtools.filewatch.ChangedFile this
         0: .line 101
            aload 0 /* this */
            getfield org.springframework.boot.devtools.filewatch.ChangedFile.file:Ljava/io/File;
            invokevirtual java.io.File.hashCode:()I
            bipush 31
            imul
            aload 0 /* this */
            getfield org.springframework.boot.devtools.filewatch.ChangedFile.type:Lorg/springframework/boot/devtools/filewatch/ChangedFile$Type;
            invokevirtual org.springframework.boot.devtools.filewatch.ChangedFile$Type.hashCode:()I
            iadd
            ireturn
        end local 0 // org.springframework.boot.devtools.filewatch.ChangedFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/devtools/filewatch/ChangedFile;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.springframework.boot.devtools.filewatch.ChangedFile this
         0: .line 106
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            aload 0 /* this */
            getfield org.springframework.boot.devtools.filewatch.ChangedFile.file:Ljava/io/File;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.springframework.boot.devtools.filewatch.ChangedFile.type:Lorg/springframework/boot/devtools/filewatch/ChangedFile$Type;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)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 // org.springframework.boot.devtools.filewatch.ChangedFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/springframework/boot/devtools/filewatch/ChangedFile;

  private static java.lang.String lambda$0(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
    flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
    Code:
      stack=3, locals=2, args_size=2
         0: .line 80
            new java.lang.StringBuilder
            dup
            ldc "The file "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc " is not contained in the source directory "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 1
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "ChangedFile.java"
NestMembers:
  org.springframework.boot.devtools.filewatch.ChangedFile$Type
InnerClasses:
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
  public final Type = org.springframework.boot.devtools.filewatch.ChangedFile$Type of org.springframework.boot.devtools.filewatch.ChangedFile