class com.beust.jcommander.JCommander$1 implements com.beust.jcommander.IStringConverterInstanceFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.beust.jcommander.JCommander$1
  super_class: java.lang.Object
{
  final com.beust.jcommander.JCommander this$0;
    descriptor: Lcom/beust/jcommander/JCommander;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  private final com.beust.jcommander.IStringConverterFactory val$converterFactory;
    descriptor: Lcom/beust/jcommander/IStringConverterFactory;
    flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.beust.jcommander.JCommander, com.beust.jcommander.IStringConverterFactory);
    descriptor: (Lcom/beust/jcommander/JCommander;Lcom/beust/jcommander/IStringConverterFactory;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // com.beust.jcommander.JCommander$1 this
         0: .line 1255
            aload 0 /* this */
            aload 1
            putfield com.beust.jcommander.JCommander$1.this$0:Lcom/beust/jcommander/JCommander;
            aload 0 /* this */
            aload 2
            putfield com.beust.jcommander.JCommander$1.val$converterFactory:Lcom/beust/jcommander/IStringConverterFactory;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.beust.jcommander.JCommander$1 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/beust/jcommander/JCommander$1;
    MethodParameters:
                      Name  Flags
      this$0                final
      val$converterFactory  final

  public com.beust.jcommander.IStringConverter<?> getConverterInstance(com.beust.jcommander.Parameter, java.lang.Class<?>, java.lang.String);
    descriptor: (Lcom/beust/jcommander/Parameter;Ljava/lang/Class;Ljava/lang/String;)Lcom/beust/jcommander/IStringConverter;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=6, args_size=4
        start local 0 // com.beust.jcommander.JCommander$1 this
        start local 1 // com.beust.jcommander.Parameter parameter
        start local 2 // java.lang.Class forType
        start local 3 // java.lang.String optionName
         0: .line 1259
            aload 0 /* this */
            getfield com.beust.jcommander.JCommander$1.val$converterFactory:Lcom/beust/jcommander/IStringConverterFactory;
            aload 2 /* forType */
            invokeinterface com.beust.jcommander.IStringConverterFactory.getConverter:(Ljava/lang/Class;)Ljava/lang/Class;
            astore 4 /* converterClass */
        start local 4 // java.lang.Class converterClass
         1: .line 1261
            aload 3 /* optionName */
            ifnonnull 5
         2: .line 1262
            aload 1 /* parameter */
            invokeinterface com.beust.jcommander.Parameter.names:()[Ljava/lang/String;
            arraylength
            ifle 3
            aload 1 /* parameter */
            invokeinterface com.beust.jcommander.Parameter.names:()[Ljava/lang/String;
            iconst_0
            aaload
            goto 4
      StackMap locals: java.lang.Class
      StackMap stack:
         3: ldc "[Main class]"
      StackMap locals:
      StackMap stack: java.lang.String
         4: astore 3 /* optionName */
         5: .line 1264
      StackMap locals:
      StackMap stack:
            aload 4 /* converterClass */
            ifnull 6
            aload 3 /* optionName */
            aload 4 /* converterClass */
            invokestatic com.beust.jcommander.JCommander.instantiateConverter:(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object;
            checkcast com.beust.jcommander.IStringConverter
            goto 7
      StackMap locals:
      StackMap stack:
         6: aconst_null
      StackMap locals:
      StackMap stack: com.beust.jcommander.IStringConverter
         7: areturn
         8: .line 1265
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 5 /* e */
        start local 5 // java.lang.ReflectiveOperationException e
         9: .line 1266
            new com.beust.jcommander.ParameterException
            dup
            aload 5 /* e */
            invokespecial com.beust.jcommander.ParameterException.<init>:(Ljava/lang/Throwable;)V
            athrow
        end local 5 // java.lang.ReflectiveOperationException e
        end local 4 // java.lang.Class converterClass
        end local 3 // java.lang.String optionName
        end local 2 // java.lang.Class forType
        end local 1 // com.beust.jcommander.Parameter parameter
        end local 0 // com.beust.jcommander.JCommander$1 this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   10     0            this  Lcom/beust/jcommander/JCommander$1;
            0   10     1       parameter  Lcom/beust/jcommander/Parameter;
            0   10     2         forType  Ljava/lang/Class<*>;
            0   10     3      optionName  Ljava/lang/String;
            1   10     4  converterClass  Ljava/lang/Class<+Lcom/beust/jcommander/IStringConverter<*>;>;
            9   10     5               e  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           1     7       8  Class java.lang.InstantiationException
           1     7       8  Class java.lang.IllegalAccessException
           1     7       8  Class java.lang.reflect.InvocationTargetException
    Signature: (Lcom/beust/jcommander/Parameter;Ljava/lang/Class<*>;Ljava/lang/String;)Lcom/beust/jcommander/IStringConverter<*>;
    MethodParameters:
            Name  Flags
      parameter   
      forType     
      optionName  
}
SourceFile: "JCommander.java"
EnclosingMethod: com.beust.jcommander.JCommander.addConverterFactory:(Lcom/beust/jcommander/IStringConverterFactory;)V
NestHost: com.beust.jcommander.JCommander
InnerClasses:
  com.beust.jcommander.JCommander$1