10
UMLClass
30
70
170
320
lt=. bg=#99FF99 layer=2 <<annotations>>

group=1
UMLClass
50
100
130
30
bg=white layer=3 /@Command/

group=1
UMLClass
50
140
130
30
bg=white layer=3 /@Option/

group=1
UMLClass
50
180
130
30
bg=white layer=3 /@Parameters/

group=1
UMLClass
50
220
130
30
bg=white layer=3 /@ParentCommand/

group=1
UMLClass
50
260
130
30
bg=white layer=3 /@Unmatched/

group=1
UMLClass
50
300
130
30
bg=white layer=3 /@Mixin/

group=1
UMLClass
50
340
130
30
bg=white layer=3 /@Spec/

group=1
UMLClass
570
510
190
30
bg=white layer=3 lt=. /IFactory/
UMLClass
360
500
130
40
bg=#EEEEEE <<internal>> DefaultFactory
Relation
480
510
110
30
lt=<<.
90.0;10.0;10.0;10.0
UMLClass
550
70
230
520
<<api>> bg=#99FF99 lt=.
UMLClass
570
550
190
30
bg=white layer=3 Range
UMLClass
0
0
810
620
<<facade>> CommandLine
UMLClass
570
100
190
400
bg=white layer=3 Model group=3
UMLClass
580
130
160
30
bg=white layer=4 CommandSpec group=3
UMLClass
580
170
160
30
bg=white layer=4 ArgSpec group=3
UMLClass
580
230
60
60
bg=white layer=4 Option Spec group=3
Relation
600
190
30
60
lt=<<-
10.0;10.0;10.0;40.0
UMLClass
660
230
80
60
bg=white layer=4 Positional Param Spec group=3
Relation
690
190
30
60
lt=<<-
10.0;10.0;10.0;40.0
UMLClass
580
300
160
30
bg=white layer=4 UsageMessageSpec group=3
UMLClass
580
340
160
30
bg=white layer=4 ParserSpec group=3
UMLClass
580
380
160
30
bg=white layer=4 UnmatchedArgsBinding group=3
UMLClass
580
420
160
30
bg=white layer=4 lt=. /IGetter/ group=3
UMLClass
580
460
160
30
bg=white layer=4 lt=. /ISetter/ group=3
UMLClass
280
70
180
260
<<internal>> Model bg=light_gray group=2
UMLClass
290
200
160
30
bg=white layer=3 FieldBinding group=2
UMLClass
290
240
160
30
bg=white layer=3 MethodBinding group=2
UMLClass
290
280
160
30
bg=white layer=3 ObjectBinding group=2
UMLClass
290
120
160
30
bg=white layer=3 CommandReflection group=2
UMLClass
290
160
160
30
bg=white layer=3 ArgsReflection group=2
UMLNote
670
10
110
40
picocli 3.6.0 2018-09-12 bg=#FFFF66
Relation
440
200
160
250
lt=<<.
140.0;230.0;50.0;230.0;50.0;10.0;10.0;10.0
Relation
440
240
160
210
lt=<<.
140.0;190.0;50.0;190.0;50.0;10.0;10.0;10.0
Relation
440
280
160
170
lt=<<.
140.0;150.0;50.0;150.0;50.0;10.0;10.0;10.0
Relation
240
200
360
290
lt=<<.
340.0;270.0;10.0;270.0;10.0;10.0;50.0;10.0
Relation
240
240
360
250
lt=<<.
340.0;230.0;10.0;230.0;10.0;10.0;50.0;10.0
Relation
240
280
360
210
lt=<<.
340.0;190.0;10.0;190.0;10.0;10.0;50.0;10.0
Relation
190
110
120
40
lt=<- <<read>>
10.0;20.0;100.0;20.0
Relation
190
150
120
40
lt=<- <<read>>
10.0;20.0;100.0;20.0
Relation
440
120
160
40
lt=<- <<build>>
140.0;20.0;10.0;20.0
Relation
440
160
160
40
lt=<- <<build>>
140.0;20.0;10.0;20.0
UMLNote
20
430
220
80
The model may be constructed automatically from annotations, or programmatically, or via a mixture of both. bg=#FFFF66
UMLNote
30
10
230
40
Classes and interfaces used to define a CommandSpec model. bg=#FFFF66
UMLNote
260
350
220
100
ArgSpec model objects have customizable IGetter and ISetter to control what happens when an option or positional parameter is matched on the command line. bg=#FFFF66
Relation
470
180
130
210
lt=.
10.0;190.0;110.0;10.0
Relation
120
380
60
70
lt=.
10.0;50.0;40.0;10.0
UMLNote
270
550
220
50
IFactory allows integration with Dependency Injection containers. bg=#FFFF66
Relation
480
520
110
70
lt=.
10.0;50.0;90.0;10.0