package Ġcom . bible foundry . ib cs unday opense ats . scheduling Ċ Ċ import Ġorg . apache . logging . log 4 j . kotlin . Logging Ċ import Ġorg . quartz . Cron Schedule Builder Ċ import Ġorg . quartz . Job Builder . new Job Ċ import Ġorg . quartz . Scheduler Ċ import Ġorg . quartz . Trigger Builder Ċ import Ġorg . quartz . impl . Std Scheduler Factory Ċ Ċ object ĠScheduler Ġ: ĠLogging Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġstart Cron Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġend Cron Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġend Week day Time Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġcontact Email Ġ= Ġ"" ĊĊĠĠĠ Ġfun Ġconfigure ( start Cron : ĠString , Ġend Cron : ĠString , Ġend Week day Time : ĠString , Ġcontact Email : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . start Cron Ġ= Ġstart Cron ĊĠĠĠĠĠĠĠ Ġthis . end Cron Ġ= Ġend Cron ĊĠĠĠĠĠĠĠ Ġthis . end Week day Time Ġ= Ġend Week day Time ĊĠĠĠĠĠĠĠ Ġthis . contact Email Ġ= Ġcontact Email ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" Starting Ġscheduler ...") ĊĠĠĠĠĠĠĠ Ġval Ġscheduler Factory Ġ= ĠStd Scheduler Factory () ĊĠĠĠĠĠĠĠ Ġval Ġscheduler Ġ= Ġscheduler Factory . scheduler ĊĠĠĠĠĠĠĠ Ġschedule Triggers ( scheduler ) ĊĠĠĠĠĠĠĠ Ġscheduler . start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġschedule Triggers ( scheduler : ĠScheduler ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠgroupName Ġ= Ġ" group Main " ĊĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠ Ġ// Ġschedule Ġstart Ġjob ĊĠĠĠĠĠĠĠ Ġval Ġtrigger Start Ġ= ĠTrigger Builder . new Trigger () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Identity (" trigger Start ", ĠgroupName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. start Now () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Schedule ( Cron Schedule Builder . cron Schedule Non validated Expression ( start Cron )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval Ġjob Start Ġ= Ġnew Job ( Start Job :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Identity (" job Start ", ĠgroupName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġjob Start . job DataMap [" end Week day Time "] Ġ= Ġend Week day Time ĊĠĠĠĠĠĠĠ Ġjob Start . job DataMap [" contact Email "] Ġ= Ġcontact Email ĊĠĠĠĠĠĠĠ Ġscheduler . schedule Job ( job Start , Ġtrigger Start ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġschedule Ġend Ġjob ĊĠĠĠĠĠĠĠ Ġval Ġtrigger End Ġ= ĠTrigger Builder . new Trigger () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Identity (" trigger End ", ĠgroupName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. start Now () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Schedule ( Cron Schedule Builder . cron Schedule Non validated Expression ( end Cron )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġval Ġjob End Ġ= Ġnew Job ( End Job :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Identity (" job End ", ĠgroupName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġjob End . job DataMap [" contact Email "] Ġ= Ġcontact Email ĊĠĠĠĠĠĠĠ Ġscheduler . schedule Job ( job End , Ġtrigger End ) ĊĠĠĠ Ġ} Ċ }