/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 6 . ĠSun gh you k ĠB ae Ġ< sun gh you k . bae @ gmail . com > Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġdeb op 4 k . time period . cal endars . seek ers Ċ Ċ import Ġdeb op 4 k . core . logger Of Ċ import Ġdeb op 4 k . time period . Default Time Calendar Ċ import Ġdeb op 4 k . time period . IT ime Calendar Ċ import Ġdeb op 4 k . time period . Time Range Ċ import Ġdeb op 4 k . time period . cal endars . Calendar Visitor Ċ import Ġdeb op 4 k . time period . cal endars . Calendar Visitor Filter Ċ import Ġdeb op 4 k . time period . cal endars . Seek Direction Ċ import Ġdeb op 4 k . time period . timer ange s . Day Range Ċ import Ġdeb op 4 k . time period . timer ange s . Month Range Ċ import Ġdeb op 4 k . time period . timer ange s . Year Range Ċ import Ġdeb op 4 k . time period . timer ange s . Year Range Collection Ċ Ċ /** Ċ Ġ* ĠìĿ¼ Ġëĭ¨ ìľĦ ë¡ľ Ġíĥ Ĳ ìĥī ìĿĦ ĠìĪĺ íĸī íķĺëĬĶ ĠSee ker Ġìŀħ ëĭĪëĭ¤ . Ċ Ġ* Ċ Ġ* Ġ@ author Ġsun gh you k . bae @ gmail . com Ċ Ġ*/ Ċ open Ġclass ĠDay Seek er Ġ@ Jvm Over loads Ġconstructor ( filter : ĠCalendar Visitor Filter Ġ= ĠCalendar Visitor Filter (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġseek Dir : ĠSeek Direction Ġ= ĠSeek Direction . Forward , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar : ĠI Time Calendar Ġ= ĠDefault Time Calendar ) Ċ : ĠCalendar Visitor < Calendar Visitor Filter , ĠDay Seek er Context >( filter , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTime Range . Any Time , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġseek Dir , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcalendar ) Ġ{ ĊĠ Ġprivate Ġval Ġlog Ġ= Ġlogger Of ( java Class ) ĊĊĠ Ġopen Ġfun Ġfind Day ( start Day : ĠDay Range , Ġday Count : ĠInt ): ĠDay Range ? Ġ{ ĊĠĠĠ Ġlog . debug (" find Ġday Ġ... Ġstart Day ={}, Ġday Count ={ }", Ġstart Day , Ġday Count ) ĊĊĠĠĠ Ġif Ġ( day Count Ġ== Ġ 0 ) ĊĠĠĠĠĠ Ġreturn Ġstart Day ĊĊĠĠĠ Ġval Ġcontext Ġ= ĠDay Seek er Context ( start Day , Ġday Count ) ĊĠĠĠ Ġvar Ġvisit Dir Ġ= Ġseek Direction ĊĊĠĠĠ Ġif Ġ( day Count Ġ< Ġ 0 ) Ġ{ ĊĠĠĠĠĠ Ġvisit Dir Ġ= Ġif Ġ( visit Dir Ġ== ĠSeek Direction . Forward ) ĠSeek Direction . Backward Ġelse ĠSeek Direction . Forward ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġstart Day Visit ( start Day , Ġcontext , Ġvisit Dir ) ĊĠĠĠ Ġval Ġfound Day Ġ= Ġcontext . found Day ĊĊĠĠĠ Ġlog . debug (" Success Ġto Ġfind Ġday . Ġstart Day ={}, Ġday Count ={}, Ġvisit Dir ={}, Ġfound Day ={ }", Ġstart Day , Ġday Count , Ġvisit Dir , Ġfound Day ) ĊĠĠĠ Ġreturn Ġfound Day ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġenter Years ( years : ĠYear Range Collection , Ġcontext : ĠDay Seek er Context ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġ! context . is Finished ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġenter Months ( year : ĠYear Range , Ġcontext : ĠDay Seek er Context ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġ! context . is Finished ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġenter Days ( month : ĠMonth Range , Ġcontext : ĠDay Seek er Context ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġ! context . is Finished ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġenter Hours ( day : ĠDay Range , Ġcontext : ĠDay Seek er Context ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġfalse ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Visit Day ( day : ĠDay Range , Ġcontext : ĠDay Seek er Context ): ĠBoolean Ġ{ ĊĠĠĠ Ġif Ġ( context . is Finished ) Ġreturn Ġfalse ĊĠĠĠ Ġif Ġ( day . is Same Period ( context . start Day )) Ġreturn Ġtrue ĊĠĠĠ Ġif Ġ(! is Matching Day ( day , Ġcontext )) Ġreturn Ġtrue ĊĠĠĠ Ġif Ġ(! check Limits ( day )) Ġreturn Ġtrue ĊĊĠĠĠ Ġcontext . process Day ( day ) ĊĊĠĠĠ Ġ// Ġcontext Ġê°Ģ Ġì° ¾ ê¸° ë¥¼ ĠìĻ Ħ ë£Į íķĺë©´ Ġíĥ Ĳ ìĥī ( Visit ) ë¥¼ Ġì¤ĳ ëĭ¨ íķĺ ëıĦë¡Ŀ Ġíķ©ëĭĪëĭ¤ . ĊĠĠĠ Ġreturn Ġ! context . is Finished ĊĠ Ġ} Ċ } Ċ