10 UMLClass 330 90 220 310 lt=. bg=#99FF99 <<api>> UMLClass 340 200 200 30 bg=white layer=3 lt=. /ITypeConverter/ UMLClass 340 160 200 30 bg=white layer=3 lt=. /IVersionProvider/ UMLClass 630 90 220 360 <<internal>> bg=light_gray UMLClass 660 230 170 30 bg=white layer=4 IntegerConverter group=11 UMLClass 660 270 170 30 bg=white layer=4 DoubleConverter group=11 UMLClass 660 310 170 30 bg=white layer=4 FileConverter group=11 UMLClass 660 350 170 30 bg=white layer=4 ISO8601DateConverter group=11 UMLClass 660 390 170 30 lt=. bg=white layer=4 ... and many more group=11 Relation 530 200 150 60 lt=<<. 10.0;10.0;80.0;10.0;80.0;40.0;130.0;40.0 Relation 530 200 150 100 lt=<<. 10.0;10.0;80.0;10.0;80.0;80.0;130.0;80.0 Relation 530 200 150 140 lt=<<. 10.0;10.0;80.0;10.0;80.0;120.0;130.0;120.0 Relation 530 200 150 180 lt=<<. 10.0;10.0;80.0;10.0;80.0;160.0;130.0;160.0 UMLClass 650 160 140 30 bg=white layer=3 NoVersionProvider Relation 530 120 140 30 lt=<<. 10.0;10.0;120.0;10.0 UMLClass 390 510 140 240 <<internal>> bg=light_gray lt=. group=10 UMLClass 400 540 120 30 bg=white layer=3 Interpreter group=10 UMLClass 400 580 120 30 bg=white layer=3 LookBehind group=10 UMLClass 400 620 120 40 bg=white layer=3 PositionalPara- metersSorter group=10 UMLClass 400 670 120 30 bg=white layer=3 Assert group=10 UMLClass 400 710 120 30 bg=white layer=3 Tracer group=10 UMLClass 20 0 850 780 <<facade>> CommandLine UMLClass 70 90 230 420 bg=#99FF99 <<api>> lt=. group=9 UMLClass 90 120 200 30 bg=white layer=3 lt=. /IExecutionStrategy/ group=9 UMLClass 140 170 70 30 bg=white layer=3 RunFirst group=9 UMLClass 140 210 70 30 bg=white layer=3 RunAll group=9 UMLClass 140 250 70 30 bg=white layer=3 RunLast group=9 Relation 100 140 60 140 lt=<<. group=9 10.0;10.0;10.0;120.0;40.0;120.0 Relation 100 140 60 100 lt=<<. group=9 10.0;10.0;10.0;80.0;40.0;80.0 Relation 100 140 60 60 lt=<<. group=9 10.0;10.0;10.0;40.0;40.0;40.0 UMLClass 90 300 200 30 bg=white layer=3 lt=. /IParameterExceptionHandler/ group=9 UMLClass 90 340 200 30 bg=white layer=3 lt=. /IExecutionExceptionHandler/ group=9 UMLNote 740 10 110 40 picocli 4.0 2019-07-15 bg=#FFFF66 UMLClass 340 120 200 30 bg=white layer=3 lt=. /IDefaultValueProvider/ UMLClass 650 120 140 30 bg=white layer=3 NoDefaultProvider Relation 530 160 140 30 lt=<<. 10.0;10.0;120.0;10.0 UMLClass 390 460 140 30 bg=#99FF99 layer=3 ParseResult UMLNote 70 10 230 60 Classes and interfaces used to parse command line arguments and execute commands. bg=#FFFF66 UMLNote 50 570 310 180 Use the CommandLine `execute` method with @Command methods or @Command classes implementing Runnable or Callable to do all of the below with one line of code: * parse user input * handle invalid arguments * handle requests for help or version info * invoke the business logic * get an exit code bg=#FFFF66 Relation 510 540 140 190 lt=. 10.0;10.0;120.0;170.0 Relation 170 500 50 90 lt=. 10.0;10.0;30.0;70.0 UMLNote 630 690 220 60 Internally, the Interpreter class is responsible for parsing the input. bg=#FFFF66 UMLNote 630 460 220 80 When options and positional parameters are matched, the input is converted to the ArgSpec type with a ITypeConverter. bg=#FFFF66 Relation 710 420 50 60 lt=. 10.0;10.0;30.0;40.0 UMLNote 630 620 220 60 Use the ParseResult class to interrogate the parse results via the programmatic API. bg=#FFFF66 Relation 520 470 130 190 lt=. 10.0;10.0;110.0;170.0 UMLClass 90 380 200 30 bg=white layer=3 lt=. /IExitCodeGenerator/ group=9 UMLClass 90 420 200 30 bg=white layer=3 lt=. /IExitCodeExceptionMapper/ group=9 UMLClass 90 460 200 40 bg=white layer=3 <<constants>> ExitCode group=9 UMLClass 650 200 190 230 bg=white layer=3 Built In Type Converters group=11 UMLClass 340 250 200 30 bg=white layer=3 lt=. /INegatableOptionTransformer/ UMLClass 390 300 150 30 bg=white layer=3 RegexTransformer Relation 350 270 60 60 lt=<<. 10.0;10.0;10.0;40.0;40.0;40.0 UMLClass 340 350 200 30 bg=white layer=3 lt=. /IParameterConsumer/ Relation 350 370 120 200 lt=<. <<delegates to>> 10.0;10.0;10.0;180.0;50.0;180.0 UMLNote 630 550 220 60 Applications may optionally take responsibility for consuming parameters. bg=#FFFF66 Relation 450 410 200 180 lt=. 10.0;10.0;90.0;10.0;180.0;160.0