package Ġcom . se an sh ub in . cond orc et . util . db Ċ Ċ import Ġjava . sql . ResultSet Ċ Ċ object ĠResultSet Util Ġ{ ĊĠĠĠ Ġfun ĠResultSet . consume ToTable (): ĠList < List < Any >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolumn Names Ġ= Ġcolumn Names () ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠgetData ( this , Ġcolumn Names ) ĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( column Names ) Ġ+ Ġdata ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T > ĠResultSet . consume ToList ( transform : Ġ( ResultSet ) Ġ-> ĠT ): ĠList < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġmutable ListOf < T >() ĊĠĠĠĠĠĠĠ Ġwhile Ġ( next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( transform ( this )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠResultSet . column Names (): ĠList < String > Ġ= Ġ( 1 .. metaData . column Count ). map Ġ{ ĠmetaData . getColumn Label ( it ) Ġ} ĊĊĠĠĠ Ġfun ĠResultSet . string Column ( columnName : ĠString ): ĠList < String > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstring Column ( indexOf Column ( columnName )) ĊĊĠĠĠ Ġfun ĠResultSet . string Column ( column Index : ĠInt ): ĠList < String > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmap Ġ{ ĠgetString ( column Index ) Ġ} ĊĊĠĠĠ Ġfun ĠResultSet . indexOf Column ( columnName : ĠString ): ĠInt Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcolumn Names (). indexOf ( columnName ) ĊĊĠĠĠ Ġfun Ġ< T > ĠResultSet . map ( f : Ġ() Ġ-> ĠT ): ĠList < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmutable ListOf < T >() ĊĠĠĠĠĠĠĠ Ġwhile Ġ( this . next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add ( f ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetData ( resultSet : ĠResultSet , Ġcolumn Names : ĠList < String >): ĠList < List < Any >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġiterator : ĠIterator < List < Any >> Ġ= ĠResultSet Iterator ( resultSet , Ġcolumn Names ) ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠArrayList < List < Any >>() ĊĠĠĠĠĠĠĠ Ġiterator . forEach Remaining Ġ{ Ġlist . add ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlist ĊĠĠĠ Ġ} Ċ } Ċ