package Ġio . github . dol phin 2 4 1 0 . m csr . cli Ċ Ċ import Ġio . github . dol phin 2 4 1 0 . m csr . api . cli . Abstract CLI Manager Ċ import Ġio . github . dol phin 2 4 1 0 . m csr . api . cli . Command Arguments Ċ import Ġio . github . dol phin 2 4 1 0 . m csr . api . cli . parser . Command Parser Ċ import Ġio . github . dol phin 2 4 1 0 . m csr . api . cli . parser . Parse Result Ċ Ċ class ĠCLI Manager : ĠAbstract CLI Manager Ġ{ ĊĠĠĠ Ġprivate Ġval Ġ_ parsers Ġ= ĠArrayList < Command Parser >() ĊĊĠĠĠ Ġoverride Ġval Ġparsers : ĠList < Command Parser > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ parsers . toList () ĊĊĠĠĠ Ġoverride Ġfun Ġstart ( cmd : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ parsers . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . parse ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Arguments ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcmd . toList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ== ĠParse Result . SUCCESS ) Ġreturn @ run ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" No Ġsuch Ġcommand Ġfound ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Parser ( parser : ĠCommand Parser ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ parsers . add ( parser ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġremove Parser ( parser : ĠCommand Parser ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ parsers . remove ( parser ) ĊĠĠĠ Ġ} Ċ }