package Ġcom . example . application . service Ċ Ċ import Ġcom . example . domain . logger Ċ import Ġcom . example . application . service . exception . Ad vertisement NotFoundException Ċ import Ġcom . example . application . port .` in `. Modify Ad vertisement Use case Ċ import Ġcom . example . application . port . out . Ad vertisement Persistence Port Ċ import Ġcom . example . application . port . out . Ad vert iser Notice Port Ċ import Ġjavax . transaction . Transactional Ċ Ċ open Ġclass ĠModify Ad vertisement ( ĊĠĠĠ Ġprivate Ġval Ġad vertisement Persistence Port : ĠAd vertisement Persistence Port , ĊĠĠĠ Ġprivate Ġval Ġadvert iser Notice Port : ĠAd vert iser Notice Port Ċ ) Ġ: ĠModify Ad vertisement Use case Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= Ġlogger () ĊĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġoverride Ġfun Ġcommand ( command : ĠModify Ad vertisement Use case . Command ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġad vertisement Id Ġ= Ġcommand . ad vertisement Id ĊĊĠĠĠĠĠĠĠ Ġlogger . info (" ê ´ ĳ ê³ł ë¥¼ Ġëį°ìĿ´íĦ° ë² ł ìĿ´ ìĬ¤ ìĹĲìĦľ Ġì¡° íļĮ íķĺê¸° ĠìľĦíķ´ Ġìĺģ ìĨį ìĦ± Ġíı¬ íĬ¸ ë¥¼ Ġíĺ¸ì¶ľ ") ĊĠĠĠĠĠĠĠ Ġval Ġad vertisement Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġad vertisement Persistence Port . find ( ad vertisement Id ) Ġ?: Ġthrow ĠAd vertisement NotFoundException ( ad vertisement Id ) ĊĊĠĠĠĠĠĠĠ Ġlogger . info (" ê ´ ĳ ê³ł ë¥¼ ĠìĪĺ ìłķ íķĺê¸° ĠìľĦíķ´ Ġê ´ ĳ ê³ł ĠëıĦ ë© Ķ ìĿ¸ Ġê°Ŀì²´ ë¥¼ Ġíĺ¸ì¶ľ ") ĊĠĠĠĠĠĠĠ Ġval Ġmodified Ad vertisement Ġ= Ġad vertisement . update ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Title Ġ= Ġcommand . title , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Image Ġ= Ġcommand . image , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew Description Ġ= Ġcommand . description ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġlogger . info (" ê ´ ĳ ê³ł ë¥¼ Ġëį°ìĿ´íĦ° ë² ł ìĿ´ ìĬ¤ ìĹĲ ĠìłĢìŀ¥ íķĺê¸° ĠìľĦíķ´ Ġìĺģ ìĨį ìĦ± Ġíı¬ íĬ¸ ë¥¼ Ġíĺ¸ì¶ľ ") ĊĠĠĠĠĠĠĠ Ġad vertisement Persistence Port . save ( modified Ad vertisement ) ĊĊĠĠĠĠĠĠĠ Ġlogger . info (" ê ´ ĳ ê³ł ì£¼ ìĹĲ ê²Į Ġê ´ ĳ ê³ł Ġìĥģíĥľ ë¥¼ ĠìķĮ ë¦¬ ê¸° ĠìľĦíķ´ ĠìķĮ ë¦ ¼ Ġíı¬ íĬ¸ Ġíĺ¸ì¶ľ ") ĊĠĠĠĠĠĠĠ Ġadvert iser Notice Port . notice Ad vert iser () ĊĠĠĠ Ġ} Ċ } Ċ