From 1338f206242872029352b73a0a498c0b73a9451d Mon Sep 17 00:00:00 2001 From: Ziver Koc Date: Wed, 1 Mar 2017 17:53:09 +0100 Subject: [PATCH] Impl date time trigger and updated Zutil --- build.xml | 2 +- src/se/hal/trigger/DateTimeTrigger.java | 36 +++++++++++++++++-------- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/build.xml b/build.xml index 8cc9aac2..ff0cb48b 100755 --- a/build.xml +++ b/build.xml @@ -94,7 +94,7 @@ - diff --git a/src/se/hal/trigger/DateTimeTrigger.java b/src/se/hal/trigger/DateTimeTrigger.java index a5cae9db..8599fe5d 100755 --- a/src/se/hal/trigger/DateTimeTrigger.java +++ b/src/se/hal/trigger/DateTimeTrigger.java @@ -1,34 +1,48 @@ package se.hal.trigger; import se.hal.intf.HalTrigger; +import zutil.CronTimer; import zutil.ui.Configurator; +import zutil.ui.Configurator.PreConfigurationActionListener; /** * */ -public class DateTimeTrigger implements HalTrigger { +public class DateTimeTrigger implements HalTrigger,PreConfigurationActionListener { @Configurator.Configurable("Minute (Cron format)") - private String minute = ""; + private String minute = "00"; @Configurator.Configurable("Hour (Cron format)") - private String hour = ""; + private String hour = "12"; @Configurator.Configurable("Day of the Month (Cron format)") - private String dayOfMonth = ""; - @Configurator.Configurable("Month of the Year (Cron format)") - private String monthOfYear = ""; - @Configurator.Configurable("Day of the Week (Cron format)") - private String dayOfWeek = ""; + private String dayOfMonth = "*"; + @Configurator.Configurable("Month (1-12 or Cron format)") + private String month = "*"; + @Configurator.Configurable("Day of the Week (1-7 or Cron format)") + private String dayOfWeek = "*"; @Configurator.Configurable("Year (Cron format)") - private String year = ""; + private String year = "*"; + + private transient CronTimer cronTimer; + private transient long timeOut = -1; + @Override + public void preConfigurationAction(Configurator configurator, Object obj) { + cronTimer = new CronTimer(minute, hour, dayOfMonth, month, dayOfWeek, year); + } + @Override public boolean evaluate() { - return false; + if (cronTimer == null) + return false; + if (timeOut < 0) + reset(); + return timeOut < System.currentTimeMillis(); } @Override public void reset() { - + timeOut = cronTimer.next(); } }