package Ġnet . jp . v ss . visit scheduler . domain . schedules Ċ Ċ import Ġjava . lang . IllegalArgumentException Ċ import Ġjava . time . DateTime Exception Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . Year Month Ċ import Ġnet . jp . v ss . visit scheduler . domain . Attributes Ċ import Ġnet . jp . v ss . visit scheduler . domain . Resource Attributes Ċ import Ġnet . jp . v ss . visit scheduler . domain . exceptions . Un match Version Exception Ċ import Ġnet . jp . v ss . visit scheduler . domain . sch ools . School Ċ import Ġnet . jp . v ss . visit scheduler . domain . users . User Ċ Ċ /** Ċ Ġ* Ġ ãĤ¹ ãĤ± ãĤ¸ ãĥ¥ ãĥ¼ãĥ« Ċ Ġ* Ċ Ġ* Ġ@ property Ġschedule Code Ġ ãĤ¹ ãĤ± ãĤ¸ ãĥ¥ ãĥ¼ãĥ« ãĤ³ãĥ¼ãĥī Ċ Ġ* Ġ@ property Ġuser Code Ġãĥ ¦ãĥ¼ãĤ¶ ãĤ³ãĥ¼ãĥī Ċ Ġ* Ġ@ property Ġtarget Year And Month Ġ å¯¾è±¡ å¹´ æľĪ Ċ Ġ* Ġ@ property Ġschedule Detail Ġ ãĤ¹ ãĤ± ãĤ¸ ãĥ¥ ãĥ¼ãĥ« è©³ç´° Ċ Ġ* Ġ@ property Ġresource Attributes Ġ ãĥªãĤ½ãĥ¼ãĤ¹ è©³ç´° æĥħåł± Ċ Ġ*/ Ċ data Ġclass ĠSchedule ( ĊĠĠĠ Ġval Ġschedule Code : ĠSchedule Code , ĊĠĠĠ Ġval Ġuser Code : ĠUser . User Code , ĊĠĠĠ Ġval Ġtarget Year And Month : ĠTarget Year And Month , ĊĠĠĠ Ġval Ġschedule Detail : ĠSchedule Detail , ĊĠĠĠ Ġval Ġresource Attributes : ĠResource Attributes Ċ ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ çĻ»éĮ² æĻĤ ãģ® ãĤ¤ãĥ³ ãĤ¹ãĤ¿ ãĥ³ãĤ¹ çĶŁæĪĲ . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġschedule Code Value Ġ ãĤ¹ ãĤ± ãĤ¸ ãĥ¥ ãĥ¼ãĥ« ãĤ³ãĥ¼ãĥī æĸĩåŃĹåĪĹ ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġuser Code Ġãĥ ¦ãĥ¼ãĤ¶ ãĤ³ãĥ¼ãĥī ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġtarget DateString Ġ å¯¾è±¡ å¹´ æľĪ æĸĩåŃĹåĪĹ ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġattribute Json String Ġ ä»ĺ å¸ ¯ æĥħåł± ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġcreate User Code Ġ çĻ»éĮ² ãĥ ¦ãĥ¼ãĤ¶ ãĤ³ãĥ¼ãĥī ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ çĻ»éĮ² æĻĤ ãģ® ĠSchedule ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġbuild For Create ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġschedule Code Value : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Code : ĠUser . User Code , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget DateString : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattribute Json String : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate User Code : ĠString ĊĠĠĠĠĠĠĠ Ġ): ĠSchedule Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġschedule Code Ġ= ĠSchedule Code ( schedule Code Value ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġschedule Detail Ġ= ĠSchedule Detail ( attributes Ġ= ĠAttributes . of ( attribute Json String )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresource Attributes Ġ= ĠResource Attributes . build For Create ( createUser Code ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSchedule ( schedule Code Ġ= Ġschedule Code , Ġuser Code Ġ= Ġuser Code , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Year And Month Ġ= ĠTarget Year And Month ( target DateString ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschedule Detail Ġ= Ġschedule Detail , Ġresource Attributes Ġ= Ġresource Attributes ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġversion Ġæ¯ Ķ è¼ ĥ . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġæ¯ Ķ è¼ ĥ å¯¾è±¡ Ġversion ĠãģĮ Ġnull Ġãģ§ ãģªãģĦ åł´åĲĪ ãĢģ æľ¬ ãĤ¤ãĥ³ ãĤ¹ãĤ¿ ãĥ³ãĤ¹ ãģ® Ġversion Ġãģ¨ æ¯Ķ è¼ ĥ ãģĹãģ¾ãģĻ ĊĠĠĠĠ Ġ* Ġ@ param Ġversion Ġæ¯ Ķ è¼ ĥ å¯¾è±¡ Ġversion ĊĠĠĠĠ Ġ* Ġ@ throws ĠUn match Version Exception Ġæ¯ Ķ è¼ ĥ ãģĹãģŁ çµĲæŀľ ãĢģ version ĠãģĮ çķ ° ãģªãĤĭ æĻĤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġvalidate Version ( version : ĠLong ?) Ġ= Ġthis . resource Attributes . validate Version ( version ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ãĤ¹ ãĤ± ãĤ¸ ãĥ¥ ãĥ¼ãĥ« ãĤ³ãĥ¼ãĥī åĢ¤ ãĤª ãĥĸãĤ¸ãĤ§ãĤ¯ãĥĪ . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ property Ġvalue Ġ åĢ¤ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdata Ġclass ĠSchedule Code ( val Ġvalue : ĠString ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ãĤ¹ ãĤ± ãĤ¸ ãĥ¥ ãĥ¼ãĥ« å¯¾è±¡ å¹´ æľĪ åĢ¤ ãĤª ãĥĸãĤ¸ãĤ§ãĤ¯ãĥĪ . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ property Ġvalue Ġ åĢ¤ ( yyyy - MM Ġ å½¢å¼ı ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdata Ġclass ĠTarget Year And Month ( val Ġvalue : ĠString ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ãĤ¹ ãĤ± ãĤ¸ ãĥ¥ ãĥ¼ãĥ« è©³ç´° åĢ¤ ãĤª ãĥĸãĤ¸ãĤ§ãĤ¯ãĥĪ . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ property Ġattributes Ġ ä»ĺ å¸ ¯ æĥħåł± ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdata Ġclass ĠSchedule Detail ( ĊĠĠĠĠĠĠĠ Ġval Ġattributes : ĠAttributes ? ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ãĤ¹ ãĤ± ãĤ¸ ãĥ¥ ãĥ¼ãĥ« ãģ«éĸ¢ éĢ£ ãģĻãĤĭ Ġschool _ code Ġãģ¨ Ġ è¨Ī ç®Ĺ å¯¾è±¡ ãģ® çµĦ ãģ¿ åĲĪ ãĤı ãģĽ è¦ģ ç´ł . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ property Ġschool Code Ġschool _ code Ġãģ® åĢ¤ ĊĠĠĠĠ Ġ* Ġ@ property Ġcalculation Target Ġ è¨Ī ç®Ĺ å¯¾è±¡ ãģ® åł´åĲĪ ãĢģ true ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdata Ġclass ĠSchool Code And Calculation Target ( ĊĠĠĠĠĠĠĠ Ġval Ġschool Code : ĠSchool . School Code , ĊĠĠĠĠĠĠĠ Ġval Ġcalculation Target : ĠBoolean ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ãĤ¹ ãĤ± ãĤ¸ ãĥ¥ ãĥ¼ãĥ« ãģ«éĸ¢ éĢ£ ãģĻãĤĭ Ġschool _ code Ġãģ¨ Ġ è¨Ī ç®Ĺ å¯¾è±¡ ãģ® çµĦ ãģ¿ åĲĪ ãĤı ãģĽ . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ property Ġschool Code And Calculation Targets Ġ ãĤ¹ ãĤ± ãĤ¸ ãĥ¥ ãĥ¼ãĥ« ãģ«éĸ¢ éĢ£ ãģĻãĤĭ Ġschool _ code Ġãģ¨ Ġ è¨Ī ç®Ĺ å¯¾è±¡ ãģ® çµĦ ãģ¿ åĲĪ ãĤı ãģĽ è¦ģ ç´ł ãĥªãĤ¹ãĥĪ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdata Ġclass ĠSchool Code And Calculation Targets ( ĊĠĠĠĠĠĠĠ Ġval Ġschool Code And Calculation Targets : ĠList < School Code And Calculation Target > ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ãĤ¹ ãĤ± ãĤ¸ ãĥ¥ ãĥ¼ãĥ« ãģ«éĸ¢ éĢ£ ãģĻãĤĭ æĹ¥ ä»ĺ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ property Ġdate Ġ æĹ¥ ä»ĺ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġdata Ġclass ĠSchedule Date ( ĊĠĠĠĠĠĠĠ Ġval Ġdate : ĠLocalDate ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġå¹´ æľĪ ãĢģ æĹ¥ ãģĭãĤī çĶŁæĪĲ . ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġtarget Year And Month Ġå¹´ æľĪ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġday OfMonth Ġ æĹ¥ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġ ãĤ¹ ãĤ± ãĤ¸ ãĥ¥ ãĥ¼ãĥ« ãģ«éĸ¢ éĢ£ ãģĻãĤĭ æĹ¥ ä»ĺ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġ@ throws ĠIllegalArgumentException Ġä¸į æŃ£ ãģª æĹ¥ ãĤĴæĮĩå®ļ ãģĹãģŁ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġof ( target Year And Month : ĠTarget Year And Month , Ġday OfMonth : ĠInt ): ĠSchedule Date Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠSchedule Date ( Year Month . parse ( target Year And Month . value ). at Day ( day OfMonth )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠDateTime Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġ"${ target Year And Month . value }- $ day OfMonth Ġãģ¯ ä¸į æŃ£ ãģª æĹ¥ ä»ĺ ãģ§ãģĻ ãĢĤ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException ( message , Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ