package Ġa oc . core Ċ Ċ import Ġa oc . core . internal . VALID _ DAYS Ċ import Ġa oc . core . internal . VALID _ YEAR S Ċ Ċ /** ĠValid ates Ġand Ġstores Ġall Ġpossible Ġoptions Ġto Ġconfigure Ġthe Ġ[ Ad vent Of Code ] Ġclass . Ġ*/ Ċ public Ġdata Ġclass ĠConfiguration ( ĊĠĠĠ Ġval Ġday Selector : ĠDay Selector Ġ= ĠDay Selector . All , ĊĠĠĠ Ġval Ġrepeat : ĠInt Ġ= Ġ 1 , ĊĠĠĠ Ġval Ġenable Color : ĠEnable Color Ġ= ĠEnable Color . AUTO , Ċ ) Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġrequire ( repeat Ġ> Ġ 0 ) Ġ{ Ġ" Amount Ġof Ġexecution Ġrepet itions Ġmust Ġbe Ġpositive ." Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** ĠA Ġpredicate Ġfor Ġfiltering Ġthe Ġ[ Ad vent Day ] s Ġthat Ġshould Ġbe Ġrun . Ġ*/ Ċ public Ġsealed Ġclass ĠDay Selector Ġ{ ĊĊĠĠĠ Ġ/** ĠAll Ġdetected Ġdays Ġshould Ġbe Ġselected . Ġ*/ ĊĠĠĠ Ġpublic Ġobject ĠAll Ġ: ĠDay Selector () ĊĊĠĠĠ Ġ/** ĠThe Ġlast Ġday Ġin Ġascending Ġchrono logical Ġorder Ġ( i . e . Ġthe Ġlatest Ġdate ). Ġ*/ ĊĠĠĠ Ġpublic Ġobject ĠLast Ġ: ĠDay Selector () ĊĊĠĠĠ Ġ/** ĠOnly Ġdays Ġbelong ing Ġto Ġthe Ġspecific Ġ[ year ] Ġshould Ġbe Ġselected . Ġ*/ ĊĠĠĠ Ġpublic Ġdata Ġclass ĠYear ( val Ġyear : ĠInt ) Ġ: ĠDay Selector () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( year Ġin ĠVALID _ YEAR S ) Ġ{ Ġ" Invalid Ġyear Ġselector ." Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĠOnly Ġthis Ġspecific Ġ[ day ] Ġfrom Ġthis Ġspecific Ġ[ year ] Ġshould Ġbe Ġselected . Ġ*/ ĊĠĠĠ Ġpublic Ġdata Ġclass ĠSingle ( val Ġyear : ĠInt , Ġval Ġday : ĠInt ) Ġ: ĠDay Selector () Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( year Ġin ĠVALID _ YEAR S ) Ġ{ Ġ" Invalid Ġyear Ġselector ." Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( day Ġin ĠVALID _ DAYS ) Ġ{ Ġ" Invalid Ġday Ġselector ." Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** ĠWhen Ġto Ġenable Ġcolored Ġoutput . Ġ*/ Ċ public Ġenum Ġclass ĠEnable Color Ġ{ ĠAUTO , ĠAL WAYS , ĠNE VER Ġ} Ċ