@startuml
!include style.puml
skinparam arrowThickness 1.1
skinparam arrowColor LOGIC_COLOR_T4
skinparam classBackgroundColor LOGIC_COLOR

Class "{abstract}\nCommand" as Command
Class XYZCommand

package "Parser classes"{
Class "<<interface>>\nParser" as Parser
Class AddressBookParser
Class XYZCommandParser
Class CliSyntax
Class ParserUtil
Class ArgumentMultimap
Class ArgumentTokenizer
Class Prefix
}

Class HiddenOutside #FFFFFF
HiddenOutside ..> AddressBookParser

AddressBookParser .down.> XYZCommandParser: creates >

XYZCommandParser ..> XYZCommand : creates >
AddressBookParser ..> Command : returns >
XYZCommandParser .up.|> Parser
XYZCommandParser ..> ArgumentMultimap
XYZCommandParser ..> ArgumentTokenizer
ArgumentTokenizer .left.> ArgumentMultimap
XYZCommandParser ..> CliSyntax
CliSyntax ..> Prefix
XYZCommandParser ..> ParserUtil
ParserUtil .down.> Prefix
ArgumentTokenizer .down.> Prefix
XYZCommand -up-|> Command
@enduml
