public class org.hamcrest.generator.FactoryMethod
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.hamcrest.generator.FactoryMethod
  super_class: java.lang.Object
{
  private final java.lang.String matcherClass;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String factoryMethod;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final java.lang.String returnType;
    descriptor: Ljava/lang/String;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private java.lang.String generifiedType;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private java.util.List<org.hamcrest.generator.FactoryMethod$Parameter> parameters;
    descriptor: Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/List<Lorg/hamcrest/generator/FactoryMethod$Parameter;>;

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

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

  private java.lang.String javaDoc;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  public void <init>(java.lang.String, java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.hamcrest.generator.FactoryMethod this
        start local 1 // java.lang.String matcherClass
        start local 2 // java.lang.String factoryMethod
        start local 3 // java.lang.String returnType
         0: .line 29
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 24
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.hamcrest.generator.FactoryMethod.parameters:Ljava/util/List;
         2: .line 25
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.hamcrest.generator.FactoryMethod.exceptions:Ljava/util/List;
         3: .line 26
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield org.hamcrest.generator.FactoryMethod.genericTypeParameters:Ljava/util/List;
         4: .line 30
            aload 0 /* this */
            aload 1 /* matcherClass */
            putfield org.hamcrest.generator.FactoryMethod.matcherClass:Ljava/lang/String;
         5: .line 31
            aload 0 /* this */
            aload 2 /* factoryMethod */
            putfield org.hamcrest.generator.FactoryMethod.factoryMethod:Ljava/lang/String;
         6: .line 32
            aload 0 /* this */
            aload 3 /* returnType */
            putfield org.hamcrest.generator.FactoryMethod.returnType:Ljava/lang/String;
         7: .line 33
            return
        end local 3 // java.lang.String returnType
        end local 2 // java.lang.String factoryMethod
        end local 1 // java.lang.String matcherClass
        end local 0 // org.hamcrest.generator.FactoryMethod this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lorg/hamcrest/generator/FactoryMethod;
            0    8     1   matcherClass  Ljava/lang/String;
            0    8     2  factoryMethod  Ljava/lang/String;
            0    8     3     returnType  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      matcherClass   
      factoryMethod  
      returnType     

  public java.lang.String getMatcherClass();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hamcrest.generator.FactoryMethod this
         0: .line 39
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.matcherClass:Ljava/lang/String;
            areturn
        end local 0 // org.hamcrest.generator.FactoryMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hamcrest/generator/FactoryMethod;

  public java.lang.String getReturnType();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hamcrest.generator.FactoryMethod this
         0: .line 47
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.returnType:Ljava/lang/String;
            areturn
        end local 0 // org.hamcrest.generator.FactoryMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hamcrest/generator/FactoryMethod;

  public java.lang.String getName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hamcrest.generator.FactoryMethod this
         0: .line 54
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.factoryMethod:Ljava/lang/String;
            areturn
        end local 0 // org.hamcrest.generator.FactoryMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hamcrest/generator/FactoryMethod;

  public void setGenerifiedType(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hamcrest.generator.FactoryMethod this
        start local 1 // java.lang.String generifiedType
         0: .line 58
            aload 0 /* this */
            aload 1 /* generifiedType */
            putfield org.hamcrest.generator.FactoryMethod.generifiedType:Ljava/lang/String;
         1: .line 59
            return
        end local 1 // java.lang.String generifiedType
        end local 0 // org.hamcrest.generator.FactoryMethod this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    2     0            this  Lorg/hamcrest/generator/FactoryMethod;
            0    2     1  generifiedType  Ljava/lang/String;
    MethodParameters:
                Name  Flags
      generifiedType  

  public java.lang.String getGenerifiedType();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hamcrest.generator.FactoryMethod this
         0: .line 66
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.generifiedType:Ljava/lang/String;
            areturn
        end local 0 // org.hamcrest.generator.FactoryMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hamcrest/generator/FactoryMethod;

  public void addParameter(java.lang.String, java.lang.String);
    descriptor: (Ljava/lang/String;Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // org.hamcrest.generator.FactoryMethod this
        start local 1 // java.lang.String type
        start local 2 // java.lang.String name
         0: .line 70
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.parameters:Ljava/util/List;
            new org.hamcrest.generator.FactoryMethod$Parameter
            dup
            aload 1 /* type */
            aload 2 /* name */
            invokespecial org.hamcrest.generator.FactoryMethod$Parameter.<init>:(Ljava/lang/String;Ljava/lang/String;)V
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 71
            return
        end local 2 // java.lang.String name
        end local 1 // java.lang.String type
        end local 0 // org.hamcrest.generator.FactoryMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/hamcrest/generator/FactoryMethod;
            0    2     1  type  Ljava/lang/String;
            0    2     2  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      type  
      name  

  public java.util.List<org.hamcrest.generator.FactoryMethod$Parameter> getParameters();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hamcrest.generator.FactoryMethod this
         0: .line 78
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.parameters:Ljava/util/List;
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 0 // org.hamcrest.generator.FactoryMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hamcrest/generator/FactoryMethod;
    Signature: ()Ljava/util/List<Lorg/hamcrest/generator/FactoryMethod$Parameter;>;

  public void addException(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hamcrest.generator.FactoryMethod this
        start local 1 // java.lang.String exception
         0: .line 82
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.exceptions:Ljava/util/List;
            aload 1 /* exception */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 83
            return
        end local 1 // java.lang.String exception
        end local 0 // org.hamcrest.generator.FactoryMethod this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    2     0       this  Lorg/hamcrest/generator/FactoryMethod;
            0    2     1  exception  Ljava/lang/String;
    MethodParameters:
           Name  Flags
      exception  

  public java.util.List<java.lang.String> getExceptions();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hamcrest.generator.FactoryMethod this
         0: .line 90
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.exceptions:Ljava/util/List;
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 0 // org.hamcrest.generator.FactoryMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hamcrest/generator/FactoryMethod;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public void addGenericTypeParameter(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hamcrest.generator.FactoryMethod this
        start local 1 // java.lang.String genericTypeParameter
         0: .line 94
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.genericTypeParameters:Ljava/util/List;
            aload 1 /* genericTypeParameter */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         1: .line 95
            return
        end local 1 // java.lang.String genericTypeParameter
        end local 0 // org.hamcrest.generator.FactoryMethod this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0    2     0                  this  Lorg/hamcrest/generator/FactoryMethod;
            0    2     1  genericTypeParameter  Ljava/lang/String;
    MethodParameters:
                      Name  Flags
      genericTypeParameter  

  public java.util.List<java.lang.String> getGenericTypeParameters();
    descriptor: ()Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hamcrest.generator.FactoryMethod this
         0: .line 102
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.genericTypeParameters:Ljava/util/List;
            invokestatic java.util.Collections.unmodifiableList:(Ljava/util/List;)Ljava/util/List;
            areturn
        end local 0 // org.hamcrest.generator.FactoryMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hamcrest/generator/FactoryMethod;
    Signature: ()Ljava/util/List<Ljava/lang/String;>;

  public void setJavaDoc(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.hamcrest.generator.FactoryMethod this
        start local 1 // java.lang.String javaDoc
         0: .line 106
            aload 0 /* this */
            aload 1 /* javaDoc */
            putfield org.hamcrest.generator.FactoryMethod.javaDoc:Ljava/lang/String;
         1: .line 107
            return
        end local 1 // java.lang.String javaDoc
        end local 0 // org.hamcrest.generator.FactoryMethod this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Lorg/hamcrest/generator/FactoryMethod;
            0    2     1  javaDoc  Ljava/lang/String;
    MethodParameters:
         Name  Flags
      javaDoc  

  public java.lang.String getJavaDoc();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.hamcrest.generator.FactoryMethod this
         0: .line 116
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.javaDoc:Ljava/lang/String;
            areturn
        end local 0 // org.hamcrest.generator.FactoryMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/hamcrest/generator/FactoryMethod;

  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.hamcrest.generator.FactoryMethod this
        start local 1 // java.lang.Object obj
         0: .line 123
            aload 0 /* this */
            aload 1 /* obj */
            if_acmpne 1
            iconst_1
            ireturn
         1: .line 124
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            ifnonnull 2
            iconst_0
            ireturn
         2: .line 125
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            aload 1 /* obj */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            if_acmpeq 3
            iconst_0
            ireturn
         3: .line 126
      StackMap locals:
      StackMap stack:
            aload 1 /* obj */
            checkcast org.hamcrest.generator.FactoryMethod
            astore 2 /* other */
        start local 2 // org.hamcrest.generator.FactoryMethod other
         4: .line 127
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.exceptions:Ljava/util/List;
            ifnonnull 6
         5: .line 128
            aload 2 /* other */
            getfield org.hamcrest.generator.FactoryMethod.exceptions:Ljava/util/List;
            ifnull 7
            iconst_0
            ireturn
         6: .line 129
      StackMap locals: org.hamcrest.generator.FactoryMethod
      StackMap stack:
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.exceptions:Ljava/util/List;
            aload 2 /* other */
            getfield org.hamcrest.generator.FactoryMethod.exceptions:Ljava/util/List;
            invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
            ifne 7
            iconst_0
            ireturn
         7: .line 130
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.factoryMethod:Ljava/lang/String;
            ifnonnull 9
         8: .line 131
            aload 2 /* other */
            getfield org.hamcrest.generator.FactoryMethod.factoryMethod:Ljava/lang/String;
            ifnull 10
            iconst_0
            ireturn
         9: .line 132
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.factoryMethod:Ljava/lang/String;
            aload 2 /* other */
            getfield org.hamcrest.generator.FactoryMethod.factoryMethod:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 10
            iconst_0
            ireturn
        10: .line 133
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.genericTypeParameters:Ljava/util/List;
            ifnonnull 12
        11: .line 134
            aload 2 /* other */
            getfield org.hamcrest.generator.FactoryMethod.genericTypeParameters:Ljava/util/List;
            ifnull 13
            iconst_0
            ireturn
        12: .line 135
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.genericTypeParameters:Ljava/util/List;
            aload 2 /* other */
            getfield org.hamcrest.generator.FactoryMethod.genericTypeParameters:Ljava/util/List;
            invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
            ifne 13
            iconst_0
            ireturn
        13: .line 136
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.generifiedType:Ljava/lang/String;
            ifnonnull 15
        14: .line 137
            aload 2 /* other */
            getfield org.hamcrest.generator.FactoryMethod.generifiedType:Ljava/lang/String;
            ifnull 16
            iconst_0
            ireturn
        15: .line 138
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.generifiedType:Ljava/lang/String;
            aload 2 /* other */
            getfield org.hamcrest.generator.FactoryMethod.generifiedType:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 16
            iconst_0
            ireturn
        16: .line 139
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.javaDoc:Ljava/lang/String;
            ifnonnull 18
        17: .line 140
            aload 2 /* other */
            getfield org.hamcrest.generator.FactoryMethod.javaDoc:Ljava/lang/String;
            ifnull 19
            iconst_0
            ireturn
        18: .line 141
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.javaDoc:Ljava/lang/String;
            aload 2 /* other */
            getfield org.hamcrest.generator.FactoryMethod.javaDoc:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 19
            iconst_0
            ireturn
        19: .line 142
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.matcherClass:Ljava/lang/String;
            ifnonnull 21
        20: .line 143
            aload 2 /* other */
            getfield org.hamcrest.generator.FactoryMethod.matcherClass:Ljava/lang/String;
            ifnull 22
            iconst_0
            ireturn
        21: .line 144
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.matcherClass:Ljava/lang/String;
            aload 2 /* other */
            getfield org.hamcrest.generator.FactoryMethod.matcherClass:Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 22
            iconst_0
            ireturn
        22: .line 145
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.parameters:Ljava/util/List;
            ifnonnull 24
        23: .line 146
            aload 2 /* other */
            getfield org.hamcrest.generator.FactoryMethod.parameters:Ljava/util/List;
            ifnull 25
            iconst_0
            ireturn
        24: .line 147
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.parameters:Ljava/util/List;
            aload 2 /* other */
            getfield org.hamcrest.generator.FactoryMethod.parameters:Ljava/util/List;
            invokeinterface java.util.List.equals:(Ljava/lang/Object;)Z
            ifne 25
            iconst_0
            ireturn
        25: .line 148
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 2 // org.hamcrest.generator.FactoryMethod other
        end local 1 // java.lang.Object obj
        end local 0 // org.hamcrest.generator.FactoryMethod this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   26     0   this  Lorg/hamcrest/generator/FactoryMethod;
            0   26     1    obj  Ljava/lang/Object;
            4   26     2  other  Lorg/hamcrest/generator/FactoryMethod;
    MethodParameters:
      Name  Flags
      obj   

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // org.hamcrest.generator.FactoryMethod this
         0: .line 155
            iconst_1
            istore 1 /* result */
        start local 1 // int result
         1: .line 156
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.exceptions:Ljava/util/List;
            ifnonnull 2
            iconst_0
            goto 3
      StackMap locals: org.hamcrest.generator.FactoryMethod int
      StackMap stack: int
         2: aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.exceptions:Ljava/util/List;
            invokeinterface java.util.List.hashCode:()I
      StackMap locals: org.hamcrest.generator.FactoryMethod int
      StackMap stack: int int
         3: iadd
            istore 1 /* result */
         4: .line 157
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.factoryMethod:Ljava/lang/String;
            ifnonnull 5
            iconst_0
            goto 6
      StackMap locals:
      StackMap stack: int
         5: aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.factoryMethod:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
      StackMap locals: org.hamcrest.generator.FactoryMethod int
      StackMap stack: int int
         6: iadd
            istore 1 /* result */
         7: .line 158
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.genericTypeParameters:Ljava/util/List;
            ifnonnull 8
            iconst_0
            goto 9
      StackMap locals:
      StackMap stack: int
         8: aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.genericTypeParameters:Ljava/util/List;
            invokeinterface java.util.List.hashCode:()I
      StackMap locals: org.hamcrest.generator.FactoryMethod int
      StackMap stack: int int
         9: iadd
            istore 1 /* result */
        10: .line 159
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.generifiedType:Ljava/lang/String;
            ifnonnull 11
            iconst_0
            goto 12
      StackMap locals:
      StackMap stack: int
        11: aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.generifiedType:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
      StackMap locals: org.hamcrest.generator.FactoryMethod int
      StackMap stack: int int
        12: iadd
            istore 1 /* result */
        13: .line 160
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.javaDoc:Ljava/lang/String;
            ifnonnull 14
            iconst_0
            goto 15
      StackMap locals:
      StackMap stack: int
        14: aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.javaDoc:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
      StackMap locals: org.hamcrest.generator.FactoryMethod int
      StackMap stack: int int
        15: iadd
            istore 1 /* result */
        16: .line 161
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.matcherClass:Ljava/lang/String;
            ifnonnull 17
            iconst_0
            goto 18
      StackMap locals:
      StackMap stack: int
        17: aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.matcherClass:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
      StackMap locals: org.hamcrest.generator.FactoryMethod int
      StackMap stack: int int
        18: iadd
            istore 1 /* result */
        19: .line 162
            bipush 31
            iload 1 /* result */
            imul
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.parameters:Ljava/util/List;
            ifnonnull 20
            iconst_0
            goto 21
      StackMap locals:
      StackMap stack: int
        20: aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.parameters:Ljava/util/List;
            invokeinterface java.util.List.hashCode:()I
      StackMap locals: org.hamcrest.generator.FactoryMethod int
      StackMap stack: int int
        21: iadd
            istore 1 /* result */
        22: .line 163
            iload 1 /* result */
            ireturn
        end local 1 // int result
        end local 0 // org.hamcrest.generator.FactoryMethod this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   23     0    this  Lorg/hamcrest/generator/FactoryMethod;
            1   23     1  result  I

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.hamcrest.generator.FactoryMethod this
         0: .line 168
            new java.lang.StringBuilder
            dup
            ldc "{FactoryMethod: \n  matcherClass = "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 169
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.matcherClass:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 170
            ldc "  factoryMethod = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.factoryMethod:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 171
            ldc "  generifiedType = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.generifiedType:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         4: .line 172
            ldc "  parameters = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.parameters:Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         5: .line 173
            ldc "  exceptions = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.exceptions:Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         6: .line 174
            ldc "  genericTypeParameters = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.genericTypeParameters:Ljava/util/List;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         7: .line 175
            ldc "  javaDoc = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield org.hamcrest.generator.FactoryMethod.javaDoc:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            ldc "\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 176
            ldc "}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         9: .line 168
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.hamcrest.generator.FactoryMethod this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0  this  Lorg/hamcrest/generator/FactoryMethod;
}
SourceFile: "FactoryMethod.java"
NestMembers:
  org.hamcrest.generator.FactoryMethod$Parameter
InnerClasses:
  public Parameter = org.hamcrest.generator.FactoryMethod$Parameter of org.hamcrest.generator.FactoryMethod