public class examples.cli.TypedCLIExamples
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: examples.cli.TypedCLIExamples
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // examples.cli.TypedCLIExamples this
         0: .line 29
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // examples.cli.TypedCLIExamples this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lexamples/cli/TypedCLIExamples;

  public void example1();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // examples.cli.TypedCLIExamples this
         0: .line 32
            ldc "copy"
            invokestatic io.vertx.core.cli.CLI.create:(Ljava/lang/String;)Lio/vertx/core/cli/CLI;
         1: .line 33
            ldc "A command line interface to copy files."
            invokeinterface io.vertx.core.cli.CLI.setSummary:(Ljava/lang/String;)Lio/vertx/core/cli/CLI;
         2: .line 34
            new io.vertx.core.cli.TypedOption
            dup
            invokespecial io.vertx.core.cli.TypedOption.<init>:()V
         3: .line 35
            ldc Ljava/lang/Boolean;
            invokevirtual io.vertx.core.cli.TypedOption.setType:(Ljava/lang/Class;)Lio/vertx/core/cli/TypedOption;
         4: .line 36
            ldc "directory"
            invokevirtual io.vertx.core.cli.TypedOption.setLongName:(Ljava/lang/String;)Lio/vertx/core/cli/TypedOption;
         5: .line 37
            ldc "R"
            invokevirtual io.vertx.core.cli.TypedOption.setShortName:(Ljava/lang/String;)Lio/vertx/core/cli/TypedOption;
         6: .line 38
            ldc "enables directory support"
            invokevirtual io.vertx.core.cli.TypedOption.setDescription:(Ljava/lang/String;)Lio/vertx/core/cli/TypedOption;
         7: .line 39
            iconst_1
            invokevirtual io.vertx.core.cli.TypedOption.setFlag:(Z)Lio/vertx/core/cli/TypedOption;
         8: .line 34
            invokeinterface io.vertx.core.cli.CLI.addOption:(Lio/vertx/core/cli/Option;)Lio/vertx/core/cli/CLI;
         9: .line 40
            new io.vertx.core.cli.TypedArgument
            dup
            invokespecial io.vertx.core.cli.TypedArgument.<init>:()V
        10: .line 41
            ldc Ljava/io/File;
            invokevirtual io.vertx.core.cli.TypedArgument.setType:(Ljava/lang/Class;)Lio/vertx/core/cli/TypedArgument;
        11: .line 42
            iconst_0
            invokevirtual io.vertx.core.cli.TypedArgument.setIndex:(I)Lio/vertx/core/cli/TypedArgument;
        12: .line 43
            ldc "The source"
            invokevirtual io.vertx.core.cli.TypedArgument.setDescription:(Ljava/lang/String;)Lio/vertx/core/cli/TypedArgument;
        13: .line 44
            ldc "source"
            invokevirtual io.vertx.core.cli.TypedArgument.setArgName:(Ljava/lang/String;)Lio/vertx/core/cli/TypedArgument;
        14: .line 40
            invokeinterface io.vertx.core.cli.CLI.addArgument:(Lio/vertx/core/cli/Argument;)Lio/vertx/core/cli/CLI;
        15: .line 45
            new io.vertx.core.cli.TypedArgument
            dup
            invokespecial io.vertx.core.cli.TypedArgument.<init>:()V
        16: .line 46
            ldc Ljava/io/File;
            invokevirtual io.vertx.core.cli.TypedArgument.setType:(Ljava/lang/Class;)Lio/vertx/core/cli/TypedArgument;
        17: .line 47
            iconst_0
            invokevirtual io.vertx.core.cli.TypedArgument.setIndex:(I)Lio/vertx/core/cli/TypedArgument;
        18: .line 48
            ldc "The destination"
            invokevirtual io.vertx.core.cli.TypedArgument.setDescription:(Ljava/lang/String;)Lio/vertx/core/cli/TypedArgument;
        19: .line 49
            ldc "target"
            invokevirtual io.vertx.core.cli.TypedArgument.setArgName:(Ljava/lang/String;)Lio/vertx/core/cli/TypedArgument;
        20: .line 45
            invokeinterface io.vertx.core.cli.CLI.addArgument:(Lio/vertx/core/cli/Argument;)Lio/vertx/core/cli/CLI;
            pop
        21: .line 50
            return
        end local 0 // examples.cli.TypedCLIExamples this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Lexamples/cli/TypedCLIExamples;

  public void example2(io.vertx.core.cli.CLI, java.util.List<java.lang.String>);
    descriptor: (Lio/vertx/core/cli/CLI;Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // examples.cli.TypedCLIExamples this
        start local 1 // io.vertx.core.cli.CLI cli
        start local 2 // java.util.List userCommandLineArguments
         0: .line 53
            aload 1 /* cli */
            aload 2 /* userCommandLineArguments */
            invokeinterface io.vertx.core.cli.CLI.parse:(Ljava/util/List;)Lio/vertx/core/cli/CommandLine;
            astore 3 /* commandLine */
        start local 3 // io.vertx.core.cli.CommandLine commandLine
         1: .line 54
            aload 3 /* commandLine */
            ldc "R"
            invokeinterface io.vertx.core.cli.CommandLine.getOptionValue:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.lang.Boolean
            invokevirtual java.lang.Boolean.booleanValue:()Z
            pop
         2: .line 55
            aload 3 /* commandLine */
            ldc "source"
            invokeinterface io.vertx.core.cli.CommandLine.getArgumentValue:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.io.File
            pop
         3: .line 56
            aload 3 /* commandLine */
            ldc "target"
            invokeinterface io.vertx.core.cli.CommandLine.getArgumentValue:(Ljava/lang/String;)Ljava/lang/Object;
            checkcast java.io.File
            pop
         4: .line 57
            return
        end local 3 // io.vertx.core.cli.CommandLine commandLine
        end local 2 // java.util.List userCommandLineArguments
        end local 1 // io.vertx.core.cli.CLI cli
        end local 0 // examples.cli.TypedCLIExamples this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    5     0                      this  Lexamples/cli/TypedCLIExamples;
            0    5     1                       cli  Lio/vertx/core/cli/CLI;
            0    5     2  userCommandLineArguments  Ljava/util/List<Ljava/lang/String;>;
            1    5     3               commandLine  Lio/vertx/core/cli/CommandLine;
    Signature: (Lio/vertx/core/cli/CLI;Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
                          Name  Flags
      cli                       
      userCommandLineArguments  

  public void example3();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // examples.cli.TypedCLIExamples this
         0: .line 60
            ldc "some-name"
            invokestatic io.vertx.core.cli.CLI.create:(Ljava/lang/String;)Lio/vertx/core/cli/CLI;
         1: .line 61
            new io.vertx.core.cli.TypedOption
            dup
            invokespecial io.vertx.core.cli.TypedOption.<init>:()V
         2: .line 62
            ldc Lexamples/cli/TypedCLIExamples$Person;
            invokevirtual io.vertx.core.cli.TypedOption.setType:(Ljava/lang/Class;)Lio/vertx/core/cli/TypedOption;
         3: .line 63
            new examples.cli.TypedCLIExamples$PersonConverter
            dup
            aload 0 /* this */
            invokespecial examples.cli.TypedCLIExamples$PersonConverter.<init>:(Lexamples/cli/TypedCLIExamples;)V
            invokevirtual io.vertx.core.cli.TypedOption.setConverter:(Lio/vertx/core/cli/converters/Converter;)Lio/vertx/core/cli/TypedOption;
         4: .line 64
            ldc "person"
            invokevirtual io.vertx.core.cli.TypedOption.setLongName:(Ljava/lang/String;)Lio/vertx/core/cli/TypedOption;
         5: .line 61
            invokeinterface io.vertx.core.cli.CLI.addOption:(Lio/vertx/core/cli/Option;)Lio/vertx/core/cli/CLI;
            pop
         6: .line 65
            return
        end local 0 // examples.cli.TypedCLIExamples this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lexamples/cli/TypedCLIExamples;

  public void example4(java.util.List<java.lang.String>);
    descriptor: (Ljava/util/List;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // examples.cli.TypedCLIExamples this
        start local 1 // java.util.List userCommandLineArguments
         0: .line 68
            ldc Lexamples/cli/AnnotatedCli;
            invokestatic io.vertx.core.cli.CLI.create:(Ljava/lang/Class;)Lio/vertx/core/cli/CLI;
            astore 2 /* cli */
        start local 2 // io.vertx.core.cli.CLI cli
         1: .line 69
            aload 2 /* cli */
            aload 1 /* userCommandLineArguments */
            invokeinterface io.vertx.core.cli.CLI.parse:(Ljava/util/List;)Lio/vertx/core/cli/CommandLine;
            astore 3 /* commandLine */
        start local 3 // io.vertx.core.cli.CommandLine commandLine
         2: .line 70
            new examples.cli.AnnotatedCli
            dup
            invokespecial examples.cli.AnnotatedCli.<init>:()V
            astore 4 /* instance */
        start local 4 // examples.cli.AnnotatedCli instance
         3: .line 71
            aload 3 /* commandLine */
            aload 4 /* instance */
            invokestatic io.vertx.core.cli.annotations.CLIConfigurator.inject:(Lio/vertx/core/cli/CommandLine;Ljava/lang/Object;)V
         4: .line 72
            return
        end local 4 // examples.cli.AnnotatedCli instance
        end local 3 // io.vertx.core.cli.CommandLine commandLine
        end local 2 // io.vertx.core.cli.CLI cli
        end local 1 // java.util.List userCommandLineArguments
        end local 0 // examples.cli.TypedCLIExamples this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0    5     0                      this  Lexamples/cli/TypedCLIExamples;
            0    5     1  userCommandLineArguments  Ljava/util/List<Ljava/lang/String;>;
            1    5     2                       cli  Lio/vertx/core/cli/CLI;
            2    5     3               commandLine  Lio/vertx/core/cli/CommandLine;
            3    5     4                  instance  Lexamples/cli/AnnotatedCli;
    Signature: (Ljava/util/List<Ljava/lang/String;>;)V
    MethodParameters:
                          Name  Flags
      userCommandLineArguments  
}
SourceFile: "TypedCLIExamples.java"
NestMembers:
  examples.cli.TypedCLIExamples$Person  examples.cli.TypedCLIExamples$PersonConverter
InnerClasses:
  private Person = examples.cli.TypedCLIExamples$Person of examples.cli.TypedCLIExamples
  private PersonConverter = examples.cli.TypedCLIExamples$PersonConverter of examples.cli.TypedCLIExamples
    RuntimeInvisibleAnnotations: 
      io.vertx.docgen.Source(translate = false)