package Ġutil Ċ Ċ class ĠProcess ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcommand : ĠString , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġargs : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġredirect : ĠBoolean Ġ= Ġtrue Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġoperator Ġfun ĠList < String >. plus ( optional : ĠString ?): ĠList < String > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( optional Ġ== Ġnull ) Ġthis Ġelse Ġto Mutable List (). plus Element ( optional ) ĊĊĠĠĠ Ġprivate Ġfun ĠProcess Builder . redirect () Ġ= Ġapply Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( redirect ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġredirect Output ( Log . redirect ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġredirect Error ( Log . redirect ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġexecute (): Ġjava . lang . Process Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġargs Ġ= Ġargs ?. split (' Ġ') Ġ?: Ġempty List () ĊĠĠĠĠĠĠĠ Ġval Ġcmd Ġ= Ġcommand . split (' Ġ') Ġ+ Ġargs ĊĠĠĠĠĠĠĠ Ġreturn ĠProcess Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. redirect () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. command ( cmd ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. start () ĊĠĠĠ Ġ} Ċ }