package Ġbr . com . ox ent . sf arma . model . service Ċ Ċ import Ġbr . com . ox ent . sf arma . model . entity . Cliente Ċ import Ġbr . com . ox ent . sf arma . model . entity . Cont ato Ċ import Ġbr . com . ox ent . sf arma . model . repository . Cont ato DAO Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . dao . Empty Result Data AccessException Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġorg . springframework . transaction . annotation . Propagation Ċ import Ġorg . springframework . transaction . annotation . Transactional ĊĊ Ċ @ Service Ċ @ Transactional ( readOnly Ġ= Ġtrue ) Ċ class ĠCont ato Service Ġ@ Autowired Ċ constructor ( private Ġval Ġdao : ĠCont ato DAO ) Ġ{ ĊĊĠĠĠ Ġ@ Transactional ( propagation Ġ= ĠPro pagation . REQUIRED ) ĊĠĠĠ Ġfun ĠgetNext ID () Ġ= Ġdao . getNext ID () ĊĊĠĠĠ Ġfun Ġget Cont atos ( cliente ID : ĠInt ): ĠList < Cont ato > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdao . get Cont atos ( cliente ID ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠEmpty Result Data AccessException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġempty List () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Transactional ( propagation Ġ= ĠPro pagation . REQUIRED ) ĊĠĠĠ Ġfun Ġset Cont ato ( cont ato : ĠCont ato , Ġid : ĠInt ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( cont ato . id Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcont ato . id Ġ= ĠgetNext ID () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcont ato . cliente ID Ġ= Ġid ĊĠĠĠĠĠĠĠ Ġdao . set ( cont ato ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Transactional ( propagation Ġ= ĠPro pagation . REQUIRED ) ĊĠĠĠ Ġfun Ġset Cont atos ( cliente : ĠCliente ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcliente . cont atos ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( c Ġin Ġit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Cont ato ( c , Ġcliente . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }