// Path: src/main/java/org/pinae/rafiki/trigger/Trigger.java
// public interface Trigger extends Cloneable {
// 
// 	public String getName();
// 	
// 	public void setName(String name);
// 
// 	public Date getStartTime();
// 
// 	public long getStartDelayTime();
// 
// 	public Date getEndTime();
// 
// 	public boolean isRepeat();
// 
// 	public long getRepeatInterval();
// 
// 	public int getRepeatCount();
// 
// 	public boolean match(Date now);
// 
// 	public void setStartTime(Date startTime);
// 
// 	public void setRepeat(boolean repeat);
// 
// 	public void setRepeatInterval(long repeatInterval);
// 
// 	public void setRepeatCount(int repeatCount);
// 
// 	public void setEndTime(Date endTime);
// 
// 	public void setEndDelayTime(long endDelayTime);
// 
// 	public void setStartDelayTime(long startDelayTime);
// 	
// 	public Trigger clone() throws CloneNotSupportedException;
// 
// }
// 
// Path: src/main/java/org/pinae/rafiki/trigger/impl/EverydayTrigger.java
// public class EverydayTrigger extends AbstractTrigger {
// 	private static Logger logger = Logger.getLogger(EverydayTrigger.class);
// 
// 	private String periodTimeFormat = "(\\d+:\\d+:\\d+)\\s*-\\s*(\\d+:\\d+:\\d+)";
// 
// 	private List<String> timeList = new ArrayList<String>();
// 
// 	@Override
// 	public boolean match(Date now) {
// 
// 		if (super.isFinish()) {
// 			return false;
// 		}
// 
// 		String date = new SimpleDateFormat("yyyy/MM/dd").format(now);
// 
// 		for (String time : this.timeList) {
// 			if (StringUtils.isNotBlank(time)) {
// 
// 				String startTime = "";
// 				String endTime = "";
// 
// 				if (time.matches(this.periodTimeFormat)) {
// 					Pattern pattern = Pattern.compile(this.periodTimeFormat);
// 					Matcher matcher = pattern.matcher(time);
// 
// 					if (matcher.find() && matcher.groupCount() == 2) {
// 						startTime = String.format("%s %s", date, matcher.group(1));
// 						endTime = String.format("%s %s", date, matcher.group(2));
// 					}
// 				}
// 
// 				Date startDate = new Date();
// 				Date endDate = new Date();
// 
// 				try {
// 					String timeFormat = "\\d+/\\d+/\\d+\\s+\\d+:\\d+:\\d+";
// 					if (startTime.matches(timeFormat) && endTime.matches(timeFormat)) {
// 						SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
// 						startDate = dateFormat.parse(startTime);
// 						endDate = dateFormat.parse(endTime);
// 					}
// 				} catch (ParseException e) {
// 					logger.warn(String.format("Parse Error: time=%s, exception=%s", time, e.getMessage()));
// 				}
// 
// 				if (now.equals(startDate) || now.equals(endDate) || (now.after(startDate) && now.before(endDate))) {
// 					super.incExecuteCount();
// 
// 					return true;
// 				}
// 
// 			}
// 		}
// 		return false;
// 	}
// 	
// 	/**
// 	 * <p>设置触发时间段</p>
// 	 * 
// 	 * <p>
// 	 * 时间段格式为 'starttime - endTime' 同时支持多个时间段使用 ';' 分割
// 	 * 例如 '12:00:00 - 14:00:00 ; 16:30:00 - 19:30:00'
// 	 * </p>
// 	 * 
// 	 * @param timeText 触发时间段
// 	 */
// 	public void setTime(String timeText) {
// 		if (StringUtils.isNotBlank(timeText)) {
// 			if (timeText.contains(";")) {
// 				String times[] = timeText.split(";");
// 				for (String time : times) {
// 					if (StringUtils.isNotBlank(time)) {
// 						this.timeList.add(time.trim());
// 					}
// 				}
// 			} else {
// 				this.timeList.add(timeText);
// 			}
// 		}
// 	}
// }


import org.pinae.rafiki.trigger.Trigger;
import org.pinae.rafiki.trigger.impl.EverydayTrigger;

package org.pinae.rafiki.trigger;


public class EverydayTriggerExample {
	public static Trigger getTrigger(){
		EverydayTrigger trigger = new EverydayTrigger();
		trigger.setRepeatInterval(30000);
		trigger.setTime("18:05:00 - 18:10:00");
		trigger.setTime("18:15:00 - 18:20:00");

// Path: src/main/java/org/pinae/rafiki/trigger/Trigger.java
// public interface Trigger extends Cloneable {
// 
// 	public String getName();
// 	
// 	public void setName(String name);
// 
// 	public Date getStartTime();
// 
// 	public long getStartDelayTime();
// 
// 	public Date getEndTime();
// 
// 	public boolean isRepeat();
// 
// 	public long getRepeatInterval();
// 
// 	public int getRepeatCount();
// 
// 	public boolean match(Date now);
// 
// 	public void setStartTime(Date startTime);
// 
// 	public void setRepeat(boolean repeat);
// 
// 	public void setRepeatInterval(long repeatInterval);
// 
// 	public void setRepeatCount(int repeatCount);
// 
// 	public void setEndTime(Date endTime);
// 
// 	public void setEndDelayTime(long endDelayTime);
// 
// 	public void setStartDelayTime(long startDelayTime);
// 	
// 	public Trigger clone() throws CloneNotSupportedException;
// 
// }
// 
// Path: src/main/java/org/pinae/rafiki/trigger/impl/EverydayTrigger.java
// public class EverydayTrigger extends AbstractTrigger {
// 	private static Logger logger = Logger.getLogger(EverydayTrigger.class);
// 
// 	private String periodTimeFormat = "(\\d+:\\d+:\\d+)\\s*-\\s*(\\d+:\\d+:\\d+)";
// 
// 	private List<String> timeList = new ArrayList<String>();
// 
// 	@Override
// 	public boolean match(Date now) {
// 
// 		if (super.isFinish()) {
// 			return false;
// 		}
// 
// 		String date = new SimpleDateFormat("yyyy/MM/dd").format(now);
// 
// 		for (String time : this.timeList) {
// 			if (StringUtils.isNotBlank(time)) {
// 
// 				String startTime = "";
// 				String endTime = "";
// 
// 				if (time.matches(this.periodTimeFormat)) {
// 					Pattern pattern = Pattern.compile(this.periodTimeFormat);
// 					Matcher matcher = pattern.matcher(time);
// 
// 					if (matcher.find() && matcher.groupCount() == 2) {
// 						startTime = String.format("%s %s", date, matcher.group(1));
// 						endTime = String.format("%s %s", date, matcher.group(2));
// 					}
// 				}
// 
// 				Date startDate = new Date();
// 				Date endDate = new Date();
// 
// 				try {
// 					String timeFormat = "\\d+/\\d+/\\d+\\s+\\d+:\\d+:\\d+";
// 					if (startTime.matches(timeFormat) && endTime.matches(timeFormat)) {
// 						SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
// 						startDate = dateFormat.parse(startTime);
// 						endDate = dateFormat.parse(endTime);
// 					}
// 				} catch (ParseException e) {
// 					logger.warn(String.format("Parse Error: time=%s, exception=%s", time, e.getMessage()));
// 				}
// 
// 				if (now.equals(startDate) || now.equals(endDate) || (now.after(startDate) && now.before(endDate))) {
// 					super.incExecuteCount();
// 
// 					return true;
// 				}
// 
// 			}
// 		}
// 		return false;
// 	}
// 	
// 	/**
// 	 * <p>设置触发时间段</p>
// 	 * 
// 	 * <p>
// 	 * 时间段格式为 'starttime - endTime' 同时支持多个时间段使用 ';' 分割
// 	 * 例如 '12:00:00 - 14:00:00 ; 16:30:00 - 19:30:00'
// 	 * </p>
// 	 * 
// 	 * @param timeText 触发时间段
// 	 */
// 	public void setTime(String timeText) {
// 		if (StringUtils.isNotBlank(timeText)) {
// 			if (timeText.contains(";")) {
// 				String times[] = timeText.split(";");
// 				for (String time : times) {
// 					if (StringUtils.isNotBlank(time)) {
// 						this.timeList.add(time.trim());
// 					}
// 				}
// 			} else {
// 				this.timeList.add(timeText);
// 			}
// 		}
// 	}
// }


// Path: src/example/java/org/pinae/rafiki/trigger/EverydayTriggerExample.java
import org.pinae.rafiki.trigger.Trigger;
import org.pinae.rafiki.trigger.impl.EverydayTrigger;

package org.pinae.rafiki.trigger;


public class EverydayTriggerExample {
	public static Trigger getTrigger(){
		EverydayTrigger trigger = new EverydayTrigger();
		trigger.setRepeatInterval(30000);
		trigger.setTime("18:05:00 - 18:10:00");
		trigger.setTime("18:15:00 - 18:20:00");

		trigger.setRepeat(true);
