diff --git a/src/zutil/CronTimer.java b/src/zutil/CronTimer.java new file mode 100755 index 0000000..dcc6dbd --- /dev/null +++ b/src/zutil/CronTimer.java @@ -0,0 +1,48 @@ +package zutil; + + +import com.mysql.fabric.xmlrpc.base.Array; + +import java.util.ArrayList; +import java.util.List; + +/** + * This is a utility class that will generate timestamps from a Cron formatted String. + * + * @see Cron Format Specification + */ +public class CronTimer { + + + /** + * A Constructor that takes a String containing 5 (or 6 for extended) individual fields in Cron format + */ + public CronTimer(String cron){ + String[] arr = cron.split("\\s"); + if (arr.length < 5 || arr.length > 6) + throw new IllegalArgumentException( + "String must contain between 5-6 fields, but got("+arr.length+" fields): "+cron); + init(arr[0], arr[1], arr[2], arr[3], arr[4], (arr.length>5 ? arr[5]: "*")); + } + /** + * A Constructor that takes separate Strings for each field + */ + public CronTimer(String minute, String hour, String dayOfMonth, String monthOfYear, String dayOfWeek){ + this(minute, hour, dayOfMonth, monthOfYear, dayOfWeek, "*"); + } + /** + * A Constructor that takes separate Strings for each field with an extended year field + */ + public CronTimer(String minute, String hour, String dayOfMonth, String monthOfYear, String dayOfWeek, String year){ + init(minute, hour, dayOfMonth, monthOfYear, dayOfWeek, year); + } + + private void init(String minute, String hour, String dayOfMonth, String monthOfYear, String dayOfWeek, String year){ + + } + protected static List getRange(String number){ + ArrayList list = new ArrayList<>(); + + return list; + } +} diff --git a/src/zutil/db/bean/DBBeanCache.java b/src/zutil/db/bean/DBBeanCache.java index 38a2675..a2093f9 100755 --- a/src/zutil/db/bean/DBBeanCache.java +++ b/src/zutil/db/bean/DBBeanCache.java @@ -3,8 +3,6 @@ package zutil.db.bean; import zutil.log.LogUtil; import java.lang.ref.WeakReference; -import java.sql.ResultSet; -import java.sql.SQLException; import java.util.Iterator; import java.util.Map; import java.util.Timer; diff --git a/test/zutil/CronTimerTest.java b/test/zutil/CronTimerTest.java new file mode 100755 index 0000000..e0ad97b --- /dev/null +++ b/test/zutil/CronTimerTest.java @@ -0,0 +1,29 @@ +package zutil; + +import org.junit.Test; + +import java.util.Arrays; +import java.util.Collections; + +import static org.junit.Assert.*; + +/** + * + */ +public class CronTimerTest { + + @Test + public void getRange() throws Exception { + // invalid numbers + assertEquals(Collections.EMPTY_LIST, CronTimer.getRange("")); + assertEquals(Collections.EMPTY_LIST, CronTimer.getRange(null)); + + // ranges + //assertEquals(Arrays.asList(0,1), CronTimer.getRange("0-1")); + + // intervals + + // range and interval + } + +} \ No newline at end of file