<?xml version="1.0" encoding="UTF-8" standalone="no"?> <diagram program="umlet" version="14.3.0"> <zoom_level>10</zoom_level> <element> <id>UMLClass</id> <coordinates> <x>20</x> <y>70</y> <w>170</w> <h>350</h> </coordinates> <panel_attributes>lt=. bg=#99FF99 layer=2 <<annotations>> group=1</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>40</x> <y>100</y> <w>130</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=3 /@Command/ group=1</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>40</x> <y>140</y> <w>130</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=3 /@Option/ group=1</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>40</x> <y>180</y> <w>130</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=3 /@Parameters/ group=1</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>40</x> <y>260</y> <w>130</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=3 /@ParentCommand/ group=1</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>40</x> <y>300</y> <w>130</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=3 /@Unmatched/ group=1</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>40</x> <y>340</y> <w>130</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=3 /@Mixin/ group=1</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>40</x> <y>380</y> <w>130</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=3 /@Spec/ group=1</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>560</x> <y>790</y> <w>190</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=3 lt=. /IFactory/</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>350</x> <y>740</y> <w>130</w> <h>40</h> </coordinates> <panel_attributes>bg=#EEEEEE <<internal>> DefaultFactory</panel_attributes> <additional_attributes/> </element> <element> <id>Relation</id> <coordinates> <x>470</x> <y>760</y> <w>110</w> <h>60</h> </coordinates> <panel_attributes>lt=<<.</panel_attributes> <additional_attributes>90.0;40.0;10.0;10.0</additional_attributes> </element> <element> <id>UMLClass</id> <coordinates> <x>540</x> <y>70</y> <w>230</w> <h>800</h> </coordinates> <panel_attributes><<api>> bg=#99FF99 lt=.</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>560</x> <y>830</y> <w>190</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=3 Range</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>0</x> <y>0</y> <w>810</w> <h>880</h> </coordinates> <panel_attributes><<facade>> CommandLine</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>550</x> <y>100</y> <w>200</w> <h>680</h> </coordinates> <panel_attributes>bg=white layer=3 Model</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>570</x> <y>130</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=4 CommandSpec</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>570</x> <y>170</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=4 ArgSpec</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>570</x> <y>230</y> <w>60</w> <h>60</h> </coordinates> <panel_attributes>bg=white layer=4 Option Spec</panel_attributes> <additional_attributes/> </element> <element> <id>Relation</id> <coordinates> <x>590</x> <y>190</y> <w>30</w> <h>60</h> </coordinates> <panel_attributes>lt=<<-</panel_attributes> <additional_attributes>10.0;10.0;10.0;40.0</additional_attributes> </element> <element> <id>UMLClass</id> <coordinates> <x>650</x> <y>230</y> <w>80</w> <h>60</h> </coordinates> <panel_attributes>bg=white layer=4 Positional Param Spec</panel_attributes> <additional_attributes/> </element> <element> <id>Relation</id> <coordinates> <x>670</x> <y>190</y> <w>30</w> <h>60</h> </coordinates> <panel_attributes>lt=<<-</panel_attributes> <additional_attributes>10.0;10.0;10.0;40.0</additional_attributes> </element> <element> <id>UMLClass</id> <coordinates> <x>570</x> <y>340</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=4 UsageMessageSpec</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>570</x> <y>380</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=4 ParserSpec</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>570</x> <y>420</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=4 lt=. /IGetter/</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>570</x> <y>460</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=4 lt=. /ISetter/</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>270</x> <y>70</y> <w>180</w> <h>520</h> </coordinates> <panel_attributes><<internal>> Model bg=light_gray</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>280</x> <y>340</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=3 FieldBinding</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>280</x> <y>380</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=3 MethodBinding</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>280</x> <y>420</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=3 ObjectBinding</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>280</x> <y>120</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=3 CommandReflection</panel_attributes> <additional_attributes/> </element> <element> <id>UMLNote</id> <coordinates> <x>660</x> <y>10</y> <w>110</w> <h>40</h> </coordinates> <panel_attributes>picocli 4.0 2019-07-17 bg=#FFFF66</panel_attributes> <additional_attributes/> </element> <element> <id>Relation</id> <coordinates> <x>430</x> <y>340</y> <w>160</w> <h>110</h> </coordinates> <panel_attributes>lt=<<.</panel_attributes> <additional_attributes>140.0;90.0;50.0;90.0;50.0;10.0;10.0;10.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> <x>430</x> <y>380</y> <w>160</w> <h>70</h> </coordinates> <panel_attributes>lt=<<.</panel_attributes> <additional_attributes>140.0;50.0;50.0;50.0;50.0;10.0;10.0;10.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> <x>430</x> <y>420</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>lt=<<.</panel_attributes> <additional_attributes>140.0;10.0;10.0;10.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> <x>230</x> <y>340</y> <w>360</w> <h>150</h> </coordinates> <panel_attributes>lt=<<.</panel_attributes> <additional_attributes>340.0;130.0;10.0;130.0;10.0;10.0;50.0;10.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> <x>230</x> <y>380</y> <w>360</w> <h>110</h> </coordinates> <panel_attributes>lt=<<.</panel_attributes> <additional_attributes>340.0;90.0;10.0;90.0;10.0;10.0;50.0;10.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> <x>230</x> <y>420</y> <w>360</w> <h>70</h> </coordinates> <panel_attributes>lt=<<.</panel_attributes> <additional_attributes>340.0;50.0;10.0;50.0;10.0;10.0;50.0;10.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> <x>180</x> <y>120</y> <w>120</w> <h>40</h> </coordinates> <panel_attributes>lt=<- <<read>></panel_attributes> <additional_attributes>10.0;20.0;100.0;20.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> <x>430</x> <y>120</y> <w>160</w> <h>40</h> </coordinates> <panel_attributes>lt=<- <<build>></panel_attributes> <additional_attributes>140.0;20.0;10.0;20.0</additional_attributes> </element> <element> <id>UMLNote</id> <coordinates> <x>20</x> <y>490</y> <w>220</w> <h>80</h> </coordinates> <panel_attributes>The model may be constructed automatically from annotations, or programmatically, or via a mixture of both. bg=#FFFF66</panel_attributes> <additional_attributes/> </element> <element> <id>UMLNote</id> <coordinates> <x>20</x> <y>10</y> <w>230</w> <h>40</h> </coordinates> <panel_attributes>Classes and interfaces used to define a CommandSpec model. bg=#FFFF66</panel_attributes> <additional_attributes/> </element> <element> <id>UMLNote</id> <coordinates> <x>280</x> <y>200</y> <w>220</w> <h>110</h> </coordinates> <panel_attributes>ArgSpec model objects have customizable IGetter, ISetter and IScope to control what happens when an option or positional parameter is matched on the command line. bg=#FFFF9F layer=20 transparency=0</panel_attributes> <additional_attributes/> </element> <element> <id>Relation</id> <coordinates> <x>490</x> <y>180</y> <w>70</w> <h>60</h> </coordinates> <panel_attributes>lt=.</panel_attributes> <additional_attributes>10.0;40.0;50.0;10.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> <x>120</x> <y>410</y> <w>50</w> <h>100</h> </coordinates> <panel_attributes>lt=.</panel_attributes> <additional_attributes>10.0;80.0;30.0;10.0</additional_attributes> </element> <element> <id>UMLNote</id> <coordinates> <x>260</x> <y>680</y> <w>220</w> <h>50</h> </coordinates> <panel_attributes>IFactory allows integration with Dependency Injection containers. bg=#FFFF66</panel_attributes> <additional_attributes/> </element> <element> <id>Relation</id> <coordinates> <x>470</x> <y>690</y> <w>110</w> <h>120</h> </coordinates> <panel_attributes>lt=.</panel_attributes> <additional_attributes>10.0;10.0;90.0;100.0</additional_attributes> </element> <element> <id>UMLClass</id> <coordinates> <x>570</x> <y>300</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=4 ArgGroupSpec</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>40</x> <y>220</y> <w>130</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=3 /@ArgGroup/ group=1</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>570</x> <y>620</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=4 lt=. /IAnnotatedElement/</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>570</x> <y>540</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=4 lt=. /ITypeInfo/</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>570</x> <y>580</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=4 Messages</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>570</x> <y>500</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=4 lt=. /IScope/</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>330</x> <y>790</y> <w>150</w> <h>50</h> </coordinates> <panel_attributes>bg=#99FF99 <<spring-boot-starter>> PicocliSpringFactory</panel_attributes> <additional_attributes/> </element> <element> <id>Relation</id> <coordinates> <x>470</x> <y>800</y> <w>110</w> <h>30</h> </coordinates> <panel_attributes>lt=<<.</panel_attributes> <additional_attributes>90.0;10.0;10.0;10.0</additional_attributes> </element> <element> <id>UMLClass</id> <coordinates> <x>570</x> <y>660</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white lt=. /IOrdered/ layer=4</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>570</x> <y>700</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white MethodParam layer=4</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>570</x> <y>740</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white UnmatchedArgsBinding layer=4</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>280</x> <y>500</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=3 ObjectScope</panel_attributes> <additional_attributes/> </element> <element> <id>UMLClass</id> <coordinates> <x>280</x> <y>540</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>bg=white layer=3 RuntimeTypeInfo</panel_attributes> <additional_attributes/> </element> <element> <id>Relation</id> <coordinates> <x>430</x> <y>500</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>lt=<<.</panel_attributes> <additional_attributes>140.0;10.0;10.0;10.0</additional_attributes> </element> <element> <id>Relation</id> <coordinates> <x>430</x> <y>540</y> <w>160</w> <h>30</h> </coordinates> <panel_attributes>lt=<<.</panel_attributes> <additional_attributes>140.0;10.0;10.0;10.0</additional_attributes> </element> </diagram>