package org.rhq.enterprise.gui.common.scheduling;
import java.util.Date;
import org.quartz.SimpleTrigger;
import org.rhq.enterprise.gui.common.scheduling.supporting.TimeUnits;
public class OperationDetailsScheduleComponent {
private String start = "immediate";
private Date startDate;
private Date endDate;
private String recur = "never";
private int repeatInterval = 1;
private TimeUnits unit;
private String end = "none";
private boolean readOnly;
private boolean deferred;
private boolean repeat;
private boolean terminate;
public String getStart() {
return start;
}
public void setStart(String start) {
this.start = start;
}
public Date getStartDate() {
return startDate;
}
public void setStartDate(Date startDate) {
this.startDate = startDate;
}
public Date getEndDate() {
return endDate;
}
public void setEndDate(Date endDate) {
this.endDate = endDate;
}
public String getRecur() {
return recur;
}
public void setRecur(String recur) {
this.recur = recur;
}
public int getRepeatInterval() {
return repeatInterval;
}
public void setRepeatInterval(int repeatInterval) {
this.repeatInterval = repeatInterval;
}
public TimeUnits getUnit() {
return unit;
}
public void setUnit(TimeUnits unit) {
this.unit = unit;
}
public String getEnd() {
return end;
}
public void setEnd(String end) {
this.end = end;
}
public void setDeferred(boolean deferred) {
this.deferred = deferred;
}
public boolean getDeferred() {
this.deferred = start.equals("startDate");
return this.deferred;
}
public void setRepeat(boolean repeat) {
this.repeat = repeat;
}
public boolean getRepeat() {
this.repeat = recur.equals("recur");
return this.repeat;
}
public void setTerminate(boolean terminate) {
this.terminate = terminate;
}
public boolean getTerminate() {
this.terminate = end.equals("endDate");
return this.terminate;
}
public void setReadOnly(boolean readOnly) {
this.readOnly = readOnly;
}
public boolean getReadOnly() {
return this.readOnly;
}
public OperationDetailsScheduleComponent(SimpleTrigger trigger) {
// all scheduled triggers are deferred
this.setDeferred(true);
this.setStartDate(trigger.getStartTime());
this.setStart("startDate");
int repeatCount = trigger.getRepeatCount();
if (repeatCount != 0) {
this.setRepeat(true);
if (repeatCount == SimpleTrigger.REPEAT_INDEFINITELY) {
this.setRecur("never");
this.setRepeatInterval(1);
} else {
this.setRecur("recur");
this.setRepeatInterval(repeatCount);
}
}
long repeatMillis = trigger.getRepeatInterval();
if (repeatMillis != 0) {
this.setRecur("recur");
this.setRepeat(true);
long repeatSecs = repeatMillis / 1000;
this.setRepeatInterval((int) repeatSecs);
this.setUnit(TimeUnits.Seconds);
}
// null endDate implies it will trigger on the interval for repeatCount (which includes indefinitely)
Date endDateTime = trigger.getEndTime();
if (endDateTime != null) {
this.setTerminate(true);
this.setEndDate(endDateTime);
this.setEnd("endDate");
} else {
this.setEnd("none");
}
}
public OperationDetailsScheduleComponent() {
}
}