import Ġjava . sql .* čĊčĊč Ċ class ĠDatabase Manager ( private Ġval Ġconnection : ĠConnection ?) Ġ{ čĊčĊĠĠĠ Ġpublic Ġfun Ġinsert ( name : ĠString , Ġdata : ĠByteArray ) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġsql : ĠString Ġ= Ġ" INSERT ĠINTO Ġplugins ( plugin _ name , Ġplugin _ data ) ĠVALUES ( ?, Ġ? )" čĊĠĠĠĠĠĠĠ Ġval Ġconn : ĠConnection ? Ġ= Ġconnection čĊĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp stmt : ĠPreparedStatement Ġ= Ġconn !!. prepareStatement ( sql ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġp stmt . setString ( 1 , Ġname ); čĊĠĠĠĠĠĠĠĠĠĠĠ Ġp stmt . set Bytes ( 2 , Ġdata ); čĊĠĠĠĠĠĠĠĠĠĠĠ Ġp stmt . executeUpdate (); čĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Data Ġhas Ġbeen Ġinserted .") čĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠSQLException ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( ex . message ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġpublic Ġfun Ġget Plugin ( name : ĠString ): ĠByteArray ? Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġsql : ĠString Ġ= Ġ" SELECT Ġ* ĠFROM Ġplugins ĠWHERE Ġplugin _ name Ġ= Ġ'$ name '" čĊĠĠĠĠĠĠĠ Ġval Ġconn : ĠConnection ? Ġ= Ġconnection čĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstmt : ĠStatement Ġ= Ġconn !!. createStatement () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres : ĠResultSet Ġ= Ġstmt . executeQuery ( sql ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġres . getBytes (" plugin _ data ") čĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠSQLException ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( ex . message ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġpublic Ġfun Ġget Plugin (): ĠList < ByteArray ?> ? Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġsql : ĠString Ġ= Ġ" SELECT Ġ* ĠFROM Ġplugins " čĊĠĠĠĠĠĠĠ Ġval Ġconn : ĠConnection ? Ġ= Ġconnection čĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstmt : ĠStatement Ġ= Ġconn !!. createStatement () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres : ĠResultSet Ġ= Ġstmt . executeQuery ( sql ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġplugins List : ĠMutable List < ByteArray ?> Ġ= Ġmutable ListOf () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( res . next ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplugins List . add ( res . getBytes (" plugin _ data ")) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins List čĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠSQLException ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ( ex . message ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ } čĊč Ċ /** čĊ Ġ* Ġ@ param Ġargs Ġthe Ġcommand Ġline Ġarguments čĊ Ġ*/ čĊč Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ čĊĠĠĠ Ġval Ġdb c Ġ= ĠDatabase Connection (" jdbc : sqlite : C :\\ Users \\ D ani il \\ sqlite \\ db \\ plugins . db ") čĊĠĠĠ Ġval Ġdb m Ġ= ĠDatabase Manager ( dbc . conn ) čĊĠĠĠ Ġdb m . insert (" Plugin 1 ", Ġfetch Class Bytes (" C :\\ Users \\ D ani il \\ Ide a Projects \\ Construction _ materials \\ dependency Test \\ out \\ production \\ dependency Test \\ Plugin 1 . class ")) čĊĠĠĠ Ġdb m . insert (" Plugin 2 ", Ġfetch Class Bytes (" C :\\ Users \\ D ani il \\ Ide a Projects \\ Construction _ materials \\ dependency Test \\ out \\ production \\ dependency Test \\ Plugin 2 . class ")) čĊĠĠĠ Ġdb m . insert (" Plugin 3 ", Ġfetch Class Bytes (" C :\\ Users \\ D ani il \\ Ide a Projects \\ Construction _ materials \\ dependency Test \\ out \\ production \\ dependency Test \\ Plugin 3 . class ")) čĊĠĠĠ Ġdb m . insert (" Plugin 4 ", Ġfetch Class Bytes (" C :\\ Users \\ D ani il \\ Ide a Projects \\ Construction _ materials \\ dependency Test \\ out \\ production \\ dependency Test \\ Plugin 4 . class ")) čĊĠĠĠ Ġdb m . insert (" Plugin 5 ", Ġfetch Class Bytes (" C :\\ Users \\ D ani il \\ Ide a Projects \\ Construction _ materials \\ dependency Test \\ out \\ production \\ dependency Test \\ Plugin 5 . class ")) čĊĠĠĠ Ġdb m . insert (" Plugin 6 ", Ġfetch Class Bytes (" C :\\ Users \\ D ani il \\ Ide a Projects \\ Construction _ materials \\ dependency Test \\ out \\ production \\ dependency Test \\ Plugin 6 . class ")) čĊčĊĠĠĠ Ġprintln ( db m . get Plugin ()) č Ċ }