package Ġmo e . le mon ne ko . j csv . k tx Ċ Ċ import Ġmo e . le mon ne ko . j csv .* Ċ import Ġjava . io . File Ċ Ċ fun ĠAny . to CSV Object (): ĠCSV Object Ġ{ ĊĠĠĠ Ġval Ġclazz Ġ= Ġthis :: class . java ĊĠĠĠ Ġval Ġfields Ġ= Ġclazz . declared Fields ĊĠĠĠ Ġval Ġcsv Object Ġ= ĠCSV Object () ĊĠĠĠ Ġfields . forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġannotation Ġ= Ġit . getAnnotation ( CSV Field :: class . java ) ĊĠĠĠĠĠĠĠ Ġif Ġ( annotation Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcsv Object [ annotation . name ] Ġ= Ġit [ this ] Ġas ĠString ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcsv Object [ it . name ] Ġ= Ġit [ this ] Ġas ĠString ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġcsv Object Ċ } Ċ Ċ fun Ġ< T > ĠList < T >. to CSV Object List (): ĠCSV Object List { ĊĠĠĠ Ġval Ġcsv Object List Ġ= ĠCSV Object List () ĊĠĠĠ ĠforEach Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcsv Object List . add ( it . to CSV Object ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġcsv Object List Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠFile . read All (): ĠList < T >{ ĊĠĠĠ Ġval Ġreader Ġ= ĠCSV Reader ( this ) ĊĠĠĠ Ġval Ġlist Ġ= Ġreader . read All ( T :: class . java ) ĊĠĠĠ Ġreader . close () ĊĠĠĠ Ġreturn Ġlist Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠList < T >. write All ( file : ĠFile ){ ĊĠĠĠ Ġval Ġwriter Ġ= ĠCSV Writer ( file ) ĊĠĠĠ Ġwriter . write All ( this , T :: class . java ) ĊĠĠĠ Ġwriter . close () Ċ }