@ file : Suppress (" Member Visibility Can Be Private ") Ċ Ċ package Ġtool . xf y 9 3 2 6 . schedule . tools Ċ Ċ import Ġlib . xf y 9 3 2 6 . kit . as Array Ċ import Ġtool . xf y 9 3 2 6 . schedule . beans . Time Period Ċ import Ġtool . xf y 9 3 2 6 . schedule . tools . Number Pattern . Pattern Type .* Ċ Ċ class ĠNumber Pattern ( bool Array : ĠBoolean Array ) Ġ{ ĊĠĠĠ Ġenum Ġclass ĠPattern Type Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠEmpty Ġweek Ġnumber Ġarray ĊĠĠĠĠĠĠĠĠ Ġ* ĠUse less Ġproperties : Ġstart , Ġend , Ġinterval ĊĠĠĠĠĠĠĠĠ Ġ* Ġamount Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠ Ġ* Ġtime Period Array Ġempty ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ constructor ĠCreate ĠEMPTY ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ ĠEMPTY , ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSingle Ġweek Ġnumber ĊĠĠĠĠĠĠĠĠ Ġ* ĠUse less Ġproperties : Ġinterval ĊĠĠĠĠĠĠĠĠ Ġ* Ġstart Ġ== Ġend ĊĠĠĠĠĠĠĠĠ Ġ* Ġamount Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠ Ġ* Ġtime Period Array . size Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ constructor ĠCreate ĠS INGLE ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ ĠS INGLE , ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSerial Ġweek Ġnumber Ġarray ĊĠĠĠĠĠĠĠĠ Ġ* Ġinterval Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠ Ġ* Ġtime Period Array . size Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ constructor ĠCreate ĠSERIAL ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ ĠSERIAL , ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠSp aced Ġweek Ġnumber Ġarray ĊĠĠĠĠĠĠĠĠ Ġ* Ġtime Period Array . size Ġ= Ġamount ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ constructor ĠCreate ĠSP AC ED ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ ĠSP AC ED , ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠMess y Ġweek Ġnumber Ġarray ĊĠĠĠĠĠĠĠĠ Ġ* ĠUse less Ġproperties : Ġstart , Ġend , Ġinterval , Ġamount ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ constructor ĠCreate ĠMESS Y ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ ĠMESS Y ; ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġparse Time Period Array ( bool Array : ĠBoolean Array ): ĠArray < Time Period > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠArrayList < Time Period >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġbool Array . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( bool Array [ i ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġj Ġ= Ġi Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( j Ġ< Ġbool Array . size Ġ&& Ġbool Array [ j ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj -- ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add ( Time Period ( i , Ġj )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi Ġ+= Ġj Ġ- Ġi ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult . to Typed Array () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġparse Sp aced Time Period Array ( start : ĠInt , Ġend : ĠInt , Ġinterval : ĠInt ): ĠArray < Time Period > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠArrayList < Time Period > ((( end Ġ- Ġstart ) Ġ/ Ġ( interval Ġ+ Ġ 1 )) Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġstart .. end Ġstep Ġinterval ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add ( Time Period ( i )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult . to Typed Array () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġtype : ĠPattern Type ĊĠĠĠ Ġval Ġstart : ĠInt ĊĠĠĠ Ġval Ġend : ĠInt ĊĠĠĠ Ġval Ġinterval : ĠInt ĊĠĠĠ Ġval Ġamount : ĠInt ĊĠĠĠ Ġval Ġtime Period Array : ĠArray < Time Period > ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġvar ĠstartIndex Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġend Index Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġindex Interval Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġvar Ġmet First Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar ĠsetInterval Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġvar Ġmess y Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġfor Ġ(( i , Ġb ) Ġin Ġbool Array . with Index ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( b ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( met First ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( set Interval ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ- Ġend Index Ġ!= Ġindex Interval ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmess y Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetInterval Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Interval Ġ= Ġi Ġ- ĠstartIndex ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmet First Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartIndex Ġ= Ġi ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Index Ġ= Ġi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtype Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmess y Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinterval Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Period Array Ġ= Ġparse Time Period Array ( bool Array ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMESS Y ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! met First Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinterval Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Period Array Ġ= Ġempty Array () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEMPTY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartIndex Ġ== Ġend Index Ġ&& Ġ! set Interval Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= ĠstartIndex ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= ĠstartIndex ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinterval Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Period Array Ġ= ĠTime Period ( start ). as Array () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS INGLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġindex Interval Ġ== Ġ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= ĠstartIndex ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġend Index ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinterval Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġend Index Ġ- ĠstartIndex Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Period Array Ġ= ĠTime Period ( start , Ġend ). as Array () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSERIAL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= ĠstartIndex ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġend Index ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinterval Ġ= Ġindex Interval ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġamount Ġ= Ġ(( end Index Ġ- ĠstartIndex ) Ġ/ Ġ( index Interval Ġ+ Ġ 1 )) Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtime Period Array Ġ= Ġparse Sp aced Time Period Array ( start , Ġend , Ġinterval ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSP AC ED ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }