package Ġorg . ion project . integration . infrastructure . repository . hash Ċ Ċ import Ġjavax . sql . DataSource Ċ import Ġorg . ion project . integration . infrastructure . Try Ċ import Ġorg . ion project . integration . infrastructure . repository . GET _ HASH _ QUERY Ċ import Ġorg . ion project . integration . infrastructure . repository . INSERT _ HASH _ QUERY Ċ import Ġorg . ion project . integration . infrastructure . repository . UPDATE _ HASH _ QUERY Ċ import Ġorg . springframework . jdbc . core . Jdbc Template Ċ import Ġorg . springframework . stereotype . Repository Ċ Ċ @ Repository Ċ class ĠHash Repository Impl ( private Ġval Ġds : ĠDataSource ) Ġ: ĠI Hash Repository Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġfetch Hash ( jobId : ĠString ): ĠByteArray ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠJdbc Template ( ds ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. query ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġconn Ġ-> Ġconn . prepareStatement ( GET _ HASH _ QUERY ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġp ss Ġ-> Ġp ss . setString ( 1 , Ġjob Id ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġr ss Ġ-> Ġif Ġ( rss . next ()) Ġr ss . getBytes ( 1 ) Ġelse Ġnull Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġput Hash ( jobId : ĠString , Ġhash : ĠByteArray ): ĠTry < Boolean > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠTry . of Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( fetch Hash ( jobId ) Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinsert ( jobId , Ġhash ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate ( jobId , Ġhash ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. map Ġ{ Ġn Affected Ġ-> Ġn Affected Ġ== Ġ 1 Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinsert ( jobId : ĠString , Ġhash : ĠByteArray ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġquery Ġ= ĠINSERT _ HASH _ QUERY ĊĠĠĠĠĠĠĠ Ġreturn ĠJdbc Template ( ds ). update ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġquery , Ġjob Id , Ġhash ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate ( jobId : ĠString , Ġhash : ĠByteArray ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠJdbc Template ( ds ). update ( UPDATE _ HASH _ QUERY , Ġhash , Ġjob Id ) ĊĠĠĠ Ġ} Ċ } Ċ