class com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState
  super_class: java.lang.Object
{
  public javax.annotation.processing.Processor processor;
    descriptor: Ljavax/annotation/processing/Processor;
    flags: (0x0001) ACC_PUBLIC

  public boolean contributed;
    descriptor: Z
    flags: (0x0001) ACC_PUBLIC

  private java.util.ArrayList<java.util.regex.Pattern> supportedAnnotationPatterns;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Ljava/util/regex/Pattern;>;

  private java.util.ArrayList<java.lang.String> supportedOptionNames;
    descriptor: Ljava/util/ArrayList;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/ArrayList<Ljava/lang/String;>;

  void <init>(javax.annotation.processing.Processor, com.sun.tools.javac.util.Log, com.sun.tools.javac.code.Source, boolean, javax.annotation.processing.ProcessingEnvironment);
    descriptor: (Ljavax/annotation/processing/Processor;Lcom/sun/tools/javac/util/Log;Lcom/sun/tools/javac/code/Source;ZLjavax/annotation/processing/ProcessingEnvironment;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=8, args_size=6
        start local 0 // com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState this
        start local 1 // javax.annotation.processing.Processor p
        start local 2 // com.sun.tools.javac.util.Log log
        start local 3 // com.sun.tools.javac.code.Source source
        start local 4 // boolean allowModules
        start local 5 // javax.annotation.processing.ProcessingEnvironment env
         0: .line 670
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 671
            aload 0 /* this */
            aload 1 /* p */
            putfield com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.processor:Ljavax/annotation/processing/Processor;
         2: .line 672
            aload 0 /* this */
            iconst_0
            putfield com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.contributed:Z
         3: .line 675
            aload 0 /* this */
            getfield com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.processor:Ljavax/annotation/processing/Processor;
            aload 5 /* env */
            invokeinterface javax.annotation.processing.Processor.init:(Ljavax/annotation/processing/ProcessingEnvironment;)V
         4: .line 677
            aload 0 /* this */
            aload 3 /* source */
            aload 2 /* log */
            invokevirtual com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.checkSourceVersionCompatibility:(Lcom/sun/tools/javac/code/Source;Lcom/sun/tools/javac/util/Log;)V
         5: .line 679
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.supportedAnnotationPatterns:Ljava/util/ArrayList;
         6: .line 680
            aload 0 /* this */
            getfield com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.processor:Ljavax/annotation/processing/Processor;
            invokeinterface javax.annotation.processing.Processor.getSupportedAnnotationTypes:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 13
      StackMap locals: com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState javax.annotation.processing.Processor com.sun.tools.javac.util.Log com.sun.tools.javac.code.Source int javax.annotation.processing.ProcessingEnvironment top java.util.Iterator
      StackMap stack:
         7: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* importString */
        start local 6 // java.lang.String importString
         8: .line 681
            aload 0 /* this */
            getfield com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.supportedAnnotationPatterns:Ljava/util/ArrayList;
            iload 4 /* allowModules */
         9: .line 682
            aload 6 /* importString */
        10: .line 683
            aload 0 /* this */
            getfield com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.processor:Ljavax/annotation/processing/Processor;
        11: .line 684
            aload 2 /* log */
        12: .line 681
            invokestatic com.sun.tools.javac.processing.JavacProcessingEnvironment.importStringToPattern:(ZLjava/lang/String;Ljavax/annotation/processing/Processor;Lcom/sun/tools/javac/util/Log;)Ljava/util/regex/Pattern;
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String importString
        13: .line 680
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 7
        14: .line 687
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.supportedOptionNames:Ljava/util/ArrayList;
        15: .line 688
            aload 0 /* this */
            getfield com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.processor:Ljavax/annotation/processing/Processor;
            invokeinterface javax.annotation.processing.Processor.getSupportedOptions:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 19
      StackMap locals:
      StackMap stack:
        16: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 6 /* optionName */
        start local 6 // java.lang.String optionName
        17: .line 689
            aload 0 /* this */
            aload 6 /* optionName */
            aload 2 /* log */
            invokevirtual com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.checkOptionName:(Ljava/lang/String;Lcom/sun/tools/javac/util/Log;)Z
            ifeq 19
        18: .line 690
            aload 0 /* this */
            getfield com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.supportedOptionNames:Ljava/util/ArrayList;
            aload 6 /* optionName */
            invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // java.lang.String optionName
        19: .line 688
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 16
        20: .line 693
            goto 25
      StackMap locals: com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState javax.annotation.processing.Processor com.sun.tools.javac.util.Log com.sun.tools.javac.code.Source int javax.annotation.processing.ProcessingEnvironment
      StackMap stack: com.sun.tools.javac.util.ClientCodeException
        21: astore 6 /* e */
        start local 6 // com.sun.tools.javac.util.ClientCodeException e
        22: .line 694
            aload 6 /* e */
            athrow
        end local 6 // com.sun.tools.javac.util.ClientCodeException e
        23: .line 695
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 6 /* t */
        start local 6 // java.lang.Throwable t
        24: .line 696
            new com.sun.tools.javac.processing.AnnotationProcessingError
            dup
            aload 6 /* t */
            invokespecial com.sun.tools.javac.processing.AnnotationProcessingError.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 6 // java.lang.Throwable t
        25: .line 698
      StackMap locals:
      StackMap stack:
            return
        end local 5 // javax.annotation.processing.ProcessingEnvironment env
        end local 4 // boolean allowModules
        end local 3 // com.sun.tools.javac.code.Source source
        end local 2 // com.sun.tools.javac.util.Log log
        end local 1 // javax.annotation.processing.Processor p
        end local 0 // com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   26     0          this  Lcom/sun/tools/javac/processing/JavacProcessingEnvironment$ProcessorState;
            0   26     1             p  Ljavax/annotation/processing/Processor;
            0   26     2           log  Lcom/sun/tools/javac/util/Log;
            0   26     3        source  Lcom/sun/tools/javac/code/Source;
            0   26     4  allowModules  Z
            0   26     5           env  Ljavax/annotation/processing/ProcessingEnvironment;
            8   13     6  importString  Ljava/lang/String;
           17   19     6    optionName  Ljava/lang/String;
           22   23     6             e  Lcom/sun/tools/javac/util/ClientCodeException;
           24   25     6             t  Ljava/lang/Throwable;
      Exception table:
        from    to  target  type
           3    20      21  Class com.sun.tools.javac.util.ClientCodeException
           3    20      23  Class java.lang.Throwable
    MethodParameters:
              Name  Flags
      p             
      log           
      source        
      allowModules  
      env           

  private void checkSourceVersionCompatibility(com.sun.tools.javac.code.Source, com.sun.tools.javac.util.Log);
    descriptor: (Lcom/sun/tools/javac/code/Source;Lcom/sun/tools/javac/util/Log;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState this
        start local 1 // com.sun.tools.javac.code.Source source
        start local 2 // com.sun.tools.javac.util.Log log
         0: .line 707
            aload 0 /* this */
            getfield com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.processor:Ljavax/annotation/processing/Processor;
            invokeinterface javax.annotation.processing.Processor.getSupportedSourceVersion:()Ljavax/lang/model/SourceVersion;
            astore 3 /* procSourceVersion */
        start local 3 // javax.lang.model.SourceVersion procSourceVersion
         1: .line 709
            aload 3 /* procSourceVersion */
            aload 1 /* source */
            invokestatic com.sun.tools.javac.code.Source.toSourceVersion:(Lcom/sun/tools/javac/code/Source;)Ljavax/lang/model/SourceVersion;
            invokevirtual javax.lang.model.SourceVersion.compareTo:(Ljava/lang/Enum;)I
            ifge 7
         2: .line 710
            aload 2 /* log */
            ldc "proc.processor.incompatible.source.version"
            iconst_3
            anewarray java.lang.Object
            dup
            iconst_0
         3: .line 711
            aload 3 /* procSourceVersion */
            aastore
            dup
            iconst_1
         4: .line 712
            aload 0 /* this */
            getfield com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.processor:Ljavax/annotation/processing/Processor;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
            dup
            iconst_2
         5: .line 713
            aload 1 /* source */
            getfield com.sun.tools.javac.code.Source.name:Ljava/lang/String;
            aastore
         6: .line 710
            invokevirtual com.sun.tools.javac.util.Log.warning:(Ljava/lang/String;[Ljava/lang/Object;)V
         7: .line 715
      StackMap locals: javax.lang.model.SourceVersion
      StackMap stack:
            return
        end local 3 // javax.lang.model.SourceVersion procSourceVersion
        end local 2 // com.sun.tools.javac.util.Log log
        end local 1 // com.sun.tools.javac.code.Source source
        end local 0 // com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    8     0               this  Lcom/sun/tools/javac/processing/JavacProcessingEnvironment$ProcessorState;
            0    8     1             source  Lcom/sun/tools/javac/code/Source;
            0    8     2                log  Lcom/sun/tools/javac/util/Log;
            1    8     3  procSourceVersion  Ljavax/lang/model/SourceVersion;
    MethodParameters:
        Name  Flags
      source  
      log     

  private boolean checkOptionName(java.lang.String, com.sun.tools.javac.util.Log);
    descriptor: (Ljava/lang/String;Lcom/sun/tools/javac/util/Log;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState this
        start local 1 // java.lang.String optionName
        start local 2 // com.sun.tools.javac.util.Log log
         0: .line 718
            aload 1 /* optionName */
            invokestatic com.sun.tools.javac.processing.JavacProcessingEnvironment.isValidOptionName:(Ljava/lang/String;)Z
            istore 3 /* valid */
        start local 3 // boolean valid
         1: .line 719
            iload 3 /* valid */
            ifne 6
         2: .line 720
            aload 2 /* log */
            ldc "proc.processor.bad.option.name"
            iconst_2
            anewarray java.lang.Object
            dup
            iconst_0
         3: .line 721
            aload 1 /* optionName */
            aastore
            dup
            iconst_1
         4: .line 722
            aload 0 /* this */
            getfield com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.processor:Ljavax/annotation/processing/Processor;
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            aastore
         5: .line 720
            invokevirtual com.sun.tools.javac.util.Log.error:(Ljava/lang/String;[Ljava/lang/Object;)V
         6: .line 723
      StackMap locals: int
      StackMap stack:
            iload 3 /* valid */
            ireturn
        end local 3 // boolean valid
        end local 2 // com.sun.tools.javac.util.Log log
        end local 1 // java.lang.String optionName
        end local 0 // com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    7     0        this  Lcom/sun/tools/javac/processing/JavacProcessingEnvironment$ProcessorState;
            0    7     1  optionName  Ljava/lang/String;
            0    7     2         log  Lcom/sun/tools/javac/util/Log;
            1    7     3       valid  Z
    MethodParameters:
            Name  Flags
      optionName  
      log         

  public boolean annotationSupported(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=2
        start local 0 // com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState this
        start local 1 // java.lang.String annotationName
         0: .line 727
            aload 0 /* this */
            getfield com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.supportedAnnotationPatterns:Ljava/util/ArrayList;
            invokevirtual java.util.ArrayList.iterator:()Ljava/util/Iterator;
            astore 3
            goto 4
      StackMap locals: com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState java.lang.String top java.util.Iterator
      StackMap stack:
         1: aload 3
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.regex.Pattern
            astore 2 /* p */
        start local 2 // java.util.regex.Pattern p
         2: .line 728
            aload 2 /* p */
            aload 1 /* annotationName */
            invokevirtual java.util.regex.Pattern.matcher:(Ljava/lang/CharSequence;)Ljava/util/regex/Matcher;
            invokevirtual java.util.regex.Matcher.matches:()Z
            ifeq 4
         3: .line 729
            iconst_1
            ireturn
        end local 2 // java.util.regex.Pattern p
         4: .line 727
      StackMap locals:
      StackMap stack:
            aload 3
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 1
         5: .line 731
            iconst_0
            ireturn
        end local 1 // java.lang.String annotationName
        end local 0 // com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lcom/sun/tools/javac/processing/JavacProcessingEnvironment$ProcessorState;
            0    6     1  annotationName  Ljava/lang/String;
            2    4     2               p  Ljava/util/regex/Pattern;
    MethodParameters:
                Name  Flags
      annotationName  

  public void removeSupportedOptions(java.util.Set<java.lang.String>);
    descriptor: (Ljava/util/Set;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState this
        start local 1 // java.util.Set unmatchedProcessorOptions
         0: .line 738
            aload 1 /* unmatchedProcessorOptions */
            aload 0 /* this */
            getfield com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState.supportedOptionNames:Ljava/util/ArrayList;
            invokeinterface java.util.Set.removeAll:(Ljava/util/Collection;)Z
            pop
         1: .line 739
            return
        end local 1 // java.util.Set unmatchedProcessorOptions
        end local 0 // com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState this
      LocalVariableTable:
        Start  End  Slot                       Name  Signature
            0    2     0                       this  Lcom/sun/tools/javac/processing/JavacProcessingEnvironment$ProcessorState;
            0    2     1  unmatchedProcessorOptions  Ljava/util/Set<Ljava/lang/String;>;
    Signature: (Ljava/util/Set<Ljava/lang/String;>;)V
    MethodParameters:
                           Name  Flags
      unmatchedProcessorOptions  
}
SourceFile: "JavacProcessingEnvironment.java"
NestHost: com.sun.tools.javac.processing.JavacProcessingEnvironment
InnerClasses:
  ProcessorState = com.sun.tools.javac.processing.JavacProcessingEnvironment$ProcessorState of com.sun.tools.javac.processing.JavacProcessingEnvironment