package Ġde . daniel sch ol z . k arg parser . parser Ċ Ċ import Ġde . daniel sch ol z . k arg parser . Arg ParseException Ċ import Ġjava . io . File Ċ Ċ class ĠFile List Param ( private Ġval ĠnumberOf Files To Accept : ĠInt Range Ġ= Ġ 1 .. Int . MAX _ VALUE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġcheck Is Dir : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġcheck Is File : ĠBoolean Ġ= Ġfalse ) Ġ: ĠParam Parser Base < Mutable List < File >, ĠCollection < File > ?> () Ġ{ ĊĊĠĠ Ġoverride Ġvar Ġcallback : Ġ(( Mutable List < File >) Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠ Ġprivate Ġvar Ġvalue : ĠMutable List < File > Ġ= Ġmutable ListOf () ĊĊĠĠ Ġoverride Ġfun ĠnumberOf Separ ate Value Args To Accept (): ĠInt Range ? Ġ{ ĊĠĠĠĠĠ Ġreturn ĠnumberOf Files To Accept ĊĠĠ Ġ} ĊĊĠĠ Ġoverride Ġfun Ġmatches ( raw Value : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠ Ġreturn Ġraw Value Ġ!= Ġ"" ĊĠĠ Ġ} ĊĊĠĠ Ġoverride Ġfun Ġassign ( raw Value : ĠString ) Ġ{ ĊĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( raw Value ) ĊĠĠĠĠĠ Ġif Ġ( check Is File Ġ&& Ġ! file . isFile ) Ġthrow ĠArg ParseException ("$ file Ġis Ġno Ġfile !", Ġarg Parser !! ) ĊĠĠĠĠĠ Ġif Ġ( check Is Dir Ġ&& Ġ! file . isDirectory ) Ġthrow ĠArg ParseException ("$ file Ġis Ġno Ġdirectory !", Ġarg Parser !! ) ĊĠĠĠĠĠ Ġvalue . add ( file ) ĊĠĠ Ġ} ĊĊĠĠ Ġoverride Ġfun Ġexec () Ġ{ ĊĠĠĠĠĠ Ġcallback ?. invoke ( value ) Ġ?: Ġthrow ĠArg ParseException (" callback Ġmust Ġbe Ġspecified !", Ġarg Parser !! ) ĊĠĠ Ġ} ĊĊĠĠ Ġoverride Ġfun Ġprint out (): ĠString Ġ{ ĊĠĠĠĠĠ Ġreturn Ġ" file 1 Ġfile 2 Ġ.. " ĊĠĠ Ġ} Ċ }