package Ġcom . ke vin ch eng . an serial port Ċ Ċ import Ġcom . or h ano but . logger . Logger Ċ import Ġjava . io . File Ċ import Ġjava . util . ArrayList Ċ Ċ class ĠDriver ( val Ġname : ĠString , Ġval Ġroot : ĠString ) Ġ{ ĊĊĠĠĠ Ġval Ġdevices : ĠArrayList < File > ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdevices Ġ= ĠArrayList < File >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdev Ġ= ĠFile ("/ dev ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! dev . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . e ("${ dev . absolute Path } Ġdoesn 't Ġexist ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdevices ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! dev . can Read ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . e ("${ dev . absolute Path } ĠPermission Ġdenied ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdevices ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfiles Ġ= Ġdev . list Files () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( file Ġin Ġfiles ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( file . absolute Path . startsWith ( root )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevices . add ( file ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdevices ĊĠĠĠĠĠĠĠ Ġ} Ċ }