package Ġcom . ort . last w olf . domain . service . commit Ċ Ċ import Ġcom . ort . last w olf . domain . model . char ach ip . Char a Ċ import Ġcom . ort . last w olf . domain . model . commit . Commit Ċ import Ġcom . ort . last w olf . domain . model . message . Message Ċ import Ġcom . ort . last w olf . domain . model . my self . participant . V illage Commit Sit uation Ċ import Ġcom . ort . last w olf . domain . model . v illage . V illage Ċ import Ġcom . ort . last w olf . domain . model . v illage . participant . V illage Participant Ċ import Ġcom . ort . last w olf . fw . exception . Last w olf Business Exception Ċ import Ġorg . springframework . stereotype . Service Ċ Ċ @ Service Ċ class ĠCommit Domain Service Ġ{ ĊĊĠĠĠ Ġfun Ġconvert ToS it uation ( ĊĠĠĠĠĠĠĠ Ġv illage : ĠV illage , ĊĠĠĠĠĠĠĠ Ġparticipant : ĠV illage Participant ?, ĊĠĠĠĠĠĠĠ Ġcommit : ĠCommit ? ĊĠĠĠ Ġ): ĠV illage Commit Sit uation Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠV illage Commit Sit uation ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Available Commit Ġ= Ġis Available Commit ( v illage , Ġparticipant ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Commit ting Ġ= Ġcommit Ġ!= Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġv illage Ġv illage ĊĠĠĠĠ Ġ* Ġ@ param Ġparticipant Ġ åıĤ åĬł èĢħ ĊĠĠĠĠ Ġ* Ġ@ return ĠãĤ³ ãĥŁ ãĥĥãĥĪ ãģ§ãģįãĤĭ ãģĭ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Available Commit ( ĊĠĠĠĠĠĠĠ Ġv illage : ĠV illage , ĊĠĠĠĠĠĠĠ Ġparticipant : ĠV illage Participant ? ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ æĿ ĳ ãģ¨ãģĹãģ¦ åı¯èĥ½ ãģĭ ĊĠĠĠĠĠĠĠ Ġif Ġ(! v illage . is Available Commit ()) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ// Ġ åıĤ åĬł èĢħ ãģ¨ãģĹãģ¦ åı¯èĥ½ ãģĭ ĊĠĠĠĠĠĠĠ Ġparticipant Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġparticipant . is Available Commit ( v illage . dummy Participant () !!. id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠãĤ³ ãĥŁ ãĥĥãĥĪ ãĥģ ãĤ§ ãĥĥãĤ¯ ĊĠĠĠĠ Ġ* Ġ@ param Ġv illage Ġv illage ĊĠĠĠĠ Ġ* Ġ@ param Ġparticipant Ġ åıĤ åĬł èĢħ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġassert Commit ( ĊĠĠĠĠĠĠĠ Ġv illage : ĠV illage , ĊĠĠĠĠĠĠĠ Ġparticipant : ĠV illage Participant ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Available Commit ( v illage , Ġparticipant )) Ġthrow ĠLast w olf Business Exception (" ãĤ³ ãĥŁ ãĥĥãĥĪ ãģ§ãģį ãģ¾ãģĽãĤĵ ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠãĤ³ ãĥŁ ãĥĥãĥĪ ãĥ¡ ãĥĥãĤ»ãĥ¼ãĤ¸ ĊĠĠĠĠ Ġ* Ġ@ param Ġchar a Ġchar a ĊĠĠĠĠ Ġ* Ġ@ param Ġdo Commit ĠãĤ³ ãĥŁ ãĥĥãĥĪ / åıĸ ãĤĬ æ¶Ī ãģĹ ĊĠĠĠĠ Ġ* Ġ@ param Ġv illage Day Id Ġ æĿ ĳ æĹ¥ ä»ĺ ID ĊĠĠĠĠ Ġ* Ġ@ return ĠãĤ³ ãĥŁ ãĥĥãĥĪ æĻĤ ãģ® ãĥ¡ ãĥĥãĤ»ãĥ¼ãĤ¸ Ġe . g . Ġ"{ ãĤŃ ãĥ£ ãĥ© åĲį } ãģĮ ãĤ³ ãĥŁ ãĥĥãĥĪ ãģĹãģ¾ãģĹãģŁ ãĢĤ " ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcreate Commit Message ( char a : ĠChar a , Ġdo Commit : ĠBoolean , Ġv illage Day Id : ĠInt ): ĠMessage Ġ= ĊĠĠĠĠĠĠĠ ĠMessage . create Private System Message ( get Commit Set Message ( do Commit , Ġchar a ), Ġv illage Day Id ) ĊĊĠĠĠ Ġ// Ġ================================================================= ================== ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAss ist ĠLogic ĊĠĠĠ Ġ// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ============ ĊĠĠĠ Ġprivate Ġfun Ġget Commit Set Message ( do Commit : ĠBoolean , Ġchar a : ĠChar a ): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( do Commit ) Ġ"${ char a . name . name } ãģĮ æĻĤ çŁŃ å¸ĮæľĽ ãģĹãģ¾ãģĹãģŁ ãĢĤ " Ġelse Ġ"${ char a . name . name } ãģĮ æĻĤ çŁŃ å¸ĮæľĽ ãĤĴ åıĸ ãĤĬ æ¶Ī ãģĹãģ¾ãģĹãģŁ ãĢĤ " Ċ }