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