package Ġpers . ac p . core . task . timer Ċ Ċ import Ġorg . joda . time . DateTime Ċ import Ġpers . ac p . core . exceptions . Timer Exception Ċ import Ġpers . ac p . core . log . Log Factory Ċ import Ġpers . ac p . core . task . Base AsyncTask Ċ import Ġpers . ac p . core . task . timer . rule . Circle Type Ċ import Ġpers . ac p . core . task . timer . rule . Execute Type Ċ import Ġpers . ac p . core . tools . Common Utils Ċ Ċ /** Ċ Ġ* Ġ@ author Ġz hang Ġby Ġ 1 0 / 0 7 / 2 0 1 9 Ċ Ġ* Ġ@ since ĠJDK Ġ 1 1 Ċ Ġ*/ Ċ class ĠTimer Task Container ( ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæī§è¡Į ä»»åĬ¡ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġtask : ĠBase AsyncTask , ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæī§è¡Į åĳ¨æľŁ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcircle Type : ĠCircle Type , ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæī§è¡Į æĹ¶éĹ´ çĤ¹ è§ĦåĪĻ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġrules : ĠString , ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġæī§è¡Į ç±»åŀĭ ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġexecute Type : ĠExecute Type ) Ġ: ĠRunnable Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĹ¥å¿Ĺ å¯¹è±¡ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLog Factory . getInstance ( this . java Class ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæĺ¯åĲ¦ éľĢè¦ģ åĲ¯åĬ¨ æĹ¶ ç«ĭ åį³ æī§è¡Į ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġneed Execute Immediate : ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġä¸Ĭ æ¬¡ æī§è¡Į æĹ¶éĹ´ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġlast Execute DateTime : ĠDateTime ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġlast Execute DateTime Ġ= ĠCommon Utils . get Now DateTime () ĊĠĠĠĠĠĠĠ Ġneed Execute Immediate Ġ= Ġtask . need Execute Immediate ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ å®¹åĻ¨ åĨħ ä»»åĬ¡ åĲįç§° ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ ä»»åĬ¡ åĲįç§° ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Task Name (): ĠString Ġ= Ġtask . task Name ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪ¤æĸŃ å½ĵåīį æĹ¶éĹ´ æĺ¯åĲ¦ ç¬¦åĲĪ æī§è¡Į æĿ¡ä»¶ ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġ ç»ĵæŀľ å¯¹è±¡ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġis Execute (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= ĠCommon Utils . get Now DateTime () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġflag : ĠBoolean Ġ= Ġwhen Ġ( execute Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExecute Type . Week Day Ġ-> ĠCalcul ation . is Week Day ( now ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExecute Type . Week end Ġ-> ĠCalcul ation . is Week end ( now ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExecute Type . All Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( circle Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCircle Type . Time Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCircle Type . Day Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalidate Ġ= ĠCalcul ation . validate Day ( now , Ġlast Execute DateTime , Ġrules ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflag Ġ&& Ġvalidate ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCircle Type . Week Ġ-> ĠCalcul ation . validate Week ( now , Ġlast Execute DateTime , Ġrules ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCircle Type . Month Ġ-> ĠCalcul ation . validate Month ( now , Ġlast Execute DateTime , Ġrules ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCircle Type . Qu arter Ġ-> ĠCalcul ation . validate Qu arter ( now , Ġlast Execute DateTime , Ġrules ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCircle Type . Year Ġ-> ĠCalcul ation . validate Year ( now , Ġlast Execute DateTime , Ġrules ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error ( e . message , Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç«ĭ åį³ æī§è¡Į ä»»åĬ¡ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġimmediate Run (): ĠAny ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtask . do Execute () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Execute ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Execute () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error ( e . message , Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæī§è¡Į ä»»åĬ¡ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Throws ( Timer Exception :: class ) ĊĠĠĠ Ġprivate Ġfun Ġdo Execute () Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . info (" begin ĠTimer Task , task Name : [" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġtask . task Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"] ĠclassName : [" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġtask . java Class . canonical Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ"] Ġcre at Time :" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġtask . generate Time ?. toString ( Calculation . DATETIME _ FORMAT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġ" Ġsubmit Time :" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Ġtask . submit Time ?. toString ( Calculation . DATETIME _ FORMAT )) ĊĠĠĠĠĠĠĠ Ġlast Execute DateTime Ġ= ĠCommon Utils . get Now DateTime () ĊĠĠĠĠĠĠĠ Ġif Ġ( task . do Execute () Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" timer Task Ġ[" Ġ+ Ġtask . task Name Ġ+ Ġ"] Ġexecute Ġfailed ...") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ