package Ġcom . ort . fire w olf . domain . service . say Ċ Ċ import Ġcom . ort . fire w olf . domain . model . v illage . V illage Ċ import Ġcom . ort . fire w olf . domain . model . v illage . participant . V illage Participant Ċ import Ġcom . ort . fire w olf . fw . exception . Fire w olf Business Exception Ċ import Ġorg . springframework . stereotype . Service Ċ Ċ @ Service Ċ class ĠSy mpath ize Say Domain Service Ġ{ ĊĊĠĠĠ Ġfun Ġis View able ( v illage : ĠV illage , Ġparticipant : ĠV illage Participant ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ ãģĦ ãģļ ãĤĮ ãģĭ ãĤĴ æº Ģ ãģŁ ãģĽ ãģ° ok ĊĠĠĠĠĠĠĠ Ġ// Ġ æĿ ĳ ãģ¨ãģĹãģ¦ åı¯èĥ½ ãģĭ ĊĠĠĠĠĠĠĠ Ġif Ġ( v illage . is View able Sy mpath ize Say ()) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ// Ġ åıĤ åĬł èĢħ ãģ¨ãģĹãģ¦ åı¯èĥ½ ãģĭ ĊĠĠĠĠĠĠĠ Ġparticipant Ġ?: Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġparticipant . is View able Sy mpath ize Say () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Say able ( v illage : ĠV illage , Ġparticipant : ĠV illage Participant ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ åıĤ åĬł èĢħ ãģ¨ãģĹãģ¦ åı¯èĥ½ ãģĭ ĊĠĠĠĠĠĠĠ Ġif Ġ(! participant . is Say able Sy mpath ize Say ()) Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ// Ġ æĿ ĳ ãģ¨ãģĹãģ¦ åı¯èĥ½ ãģĭ ĊĠĠĠĠĠĠĠ Ġreturn Ġv illage . is Say able Sy mpath ize Say () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġassert Say ( v illage : ĠV illage , Ġparticipant : ĠV illage Participant ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Say able ( v illage , Ġparticipant )) Ġthrow ĠFire w olf Business Exception (" çĻº è¨Ģ ãģ§ãģį ãģ¾ãģĽãĤĵ ") ĊĠĠĠ Ġ} Ċ } Ċ