advancedschedulewizardcontroller.java
来自「Java的框架」· Java 代码 · 共 784 行 · 第 1/3 页
JAVA
784 行
job = this.getScheduleManager ().getJob(jobName,jobGrp);
}catch (Exception e){
//Do nothing; DataRetrievalFailureException is thrown when getJob returns null
}
return job;
}
/**
* Get the advSchedule object. This method enable the getSchedule by handling the
* DataRetrievalFailureException exception.
* @param scheduleName The name of the advSchedule
* @param scheduleGrp The group name of the advSchedule
* @param jobName The job name
* @param jobGrp The job group name
* @return The advanced advSchedule object
*/
private AdvancedSchedule getSchedule(String scheduleName, String scheduleGrp, String jobName, String jobGrp){
AdvancedSchedule advSchedule = null;
try{
// advSchedule = (AdvancedSchedule)this.getScheduleManager ().getSchedule(scheduleName, scheduleGrp, jobName,jobGrp);
advSchedule = (AdvancedSchedule)this.getScheduleManager ().getSchedule(scheduleName, scheduleGrp);
}catch (Exception e){
//Do nothing; DataRetrievalFailureException is thrown when getJob returns null
}
return advSchedule;
}
/**
* Set the cron expression value based using the request object to retrieve the
* time part of the cron expression and also the pattern and pattern choice to set the
* day of month, month and day of week of the cron expression.
* @param request The HTTP request object
* @param errors The binding exception object
* @param advSchedule The advance schedule object
*/
private void setCronTimeExpression(HttpServletRequest request, BindException errors,
AdvancedSchedule advSchedule){
logger.debug("Set CronTimeExpression");
int atTime_hr = -1, atTime_min = -1, atTime_ampm = -1;
atTime_ampm = RequestUtils.getIntParameter(request,
NameConstants.ATTIME + mcap.core.base.util.NameConstants.TIMETAG_AMPM,-1);
atTime_min = RequestUtils.getIntParameter(request,
NameConstants.ATTIME + mcap.core.base.util.NameConstants.TIMETAG_MIN,0);
atTime_hr = DateTimeUtil.to24HourSystem(
RequestUtils.getIntParameter(request,
NameConstants.ATTIME + mcap.core.base.util.NameConstants.TIMETAG_HR,12),
atTime_ampm);
logger.debug("atTime_hr : " + atTime_hr);
logger.debug("atTime_min : " + atTime_min);
logger.debug("atTime_ampm : " + atTime_ampm);
advSchedule.setHourValue(Integer.toString(atTime_hr));
advSchedule.setMinuteValue(Integer.toString(atTime_min));
advSchedule.setSecValue("0");
logger.debug("Pattern : " + advSchedule.getPattern());
//Bind cron expression
switch (advSchedule.getPattern()){
case (AdvancedSchedule.DAILY):
this.setDailyTrigger(request,errors,advSchedule);
break;
case (AdvancedSchedule.MONTHLY):
this.setMonthlyTrigger(request,errors,advSchedule);
break;
case (AdvancedSchedule.YEARLY):
this.setYearlyTrigger(request,errors,advSchedule);
break;
}
}
/**
* Set the daily trigger cron expression
* @param request The HTTP request object
* @param errors The binding exception object
* @param advSchedule The advance schedule object
*/
private void setDailyTrigger(HttpServletRequest request, BindException errors,
AdvancedSchedule advSchedule){
logger.debug("Set Daily Trigger");
StringBuffer sb = new StringBuffer();
switch (advSchedule.getPatternChoice()){
case AdvancedSchedule.EVERYDAY:
logger.debug("Everyday Trigger");
sb.append(advSchedule.getSecValue()).append(" ")
.append(advSchedule.getMinuteValue()).append(" ")
.append(advSchedule.getHourValue()).append(" ")
.append("* * ?");
advSchedule.setCronExpression(sb.toString());
break;
case AdvancedSchedule.WEEKDAY:
logger.debug("Weekday Trigger");
sb.append(advSchedule.getSecValue()).append(" ")
.append(advSchedule.getMinuteValue()).append(" ")
.append(advSchedule.getHourValue()).append(" ")
.append("? *").append(" ")
.append(AdvancedSchedule.WEEKDAY_VALUE);
advSchedule.setCronExpression(sb.toString());
break;
case AdvancedSchedule.WEEKEND:
logger.debug("Weekly Trigger");
sb.append(advSchedule.getSecValue()).append(" ")
.append(advSchedule.getMinuteValue()).append(" ")
.append(advSchedule.getHourValue()).append(" ")
.append("? *").append(" ")
.append(AdvancedSchedule.WEEKEND_VALUE);
advSchedule.setCronExpression(sb.toString());
break;
case AdvancedSchedule.CUSTOMDAY:
logger.debug("Custom Daily Trigger");
String customDayOfWeek = "*";
StringBuffer s = new StringBuffer();
for (int i = 1; i <=7; i++){
String temp = RequestUtils.getStringParameter(request,"dayOfWeek"+i,"");
if (StringUtils.isNotBlank(temp)){
s.append(temp).append(",");
}
}
if (s.length() > 0){
customDayOfWeek = s.substring(0,s.length()-1);
logger.debug("Custom Day Of Week : " + customDayOfWeek);
}
RequestUtils.getStringParameter(request,"","*");
sb.append(advSchedule.getSecValue()).append(" ")
.append(advSchedule.getMinuteValue()).append(" ")
.append(advSchedule.getHourValue()).append(" ")
.append("? *").append(" ")
.append(customDayOfWeek);
advSchedule.setCronExpression(sb.toString());
default:
}
logger.debug("Cron Expression : " + advSchedule.getCronExpression());
}
/**
* Set the montly trigger cron expression
* @param request The HTTP request object
* @param errors The binding exception object
* @param advSchedule The advance schedule object
*/
private void setMonthlyTrigger(HttpServletRequest request, BindException errors,
AdvancedSchedule advSchedule){
logger.debug("Set Monthly Trigger");
StringBuffer sb = new StringBuffer();
switch (advSchedule.getPatternChoice()){
case AdvancedSchedule.MONTHOPT1:
logger.debug("MONTHOPT1");
String dayOfMonth = RequestUtils.getStringParameter(request,"dayOfMonth","1");
sb.append(advSchedule.getSecValue()).append(" ")
.append(advSchedule.getMinuteValue()).append(" ")
.append(advSchedule.getHourValue()).append(" ")
.append(dayOfMonth).append(" ")
.append("* ?");
advSchedule.setCronExpression(sb.toString());
break;
case AdvancedSchedule.MONTHOPT2:
logger.debug("MONTHOPT2");
StringBuffer s = new StringBuffer();
String nthDay = RequestUtils.getStringParameter(request,"nthDay","1");
String dayOfWeek = null;
s.append(RequestUtils.getStringParameter(request,"dayOfWeek","1"));
if (!nthDay.equalsIgnoreCase("L")){
s.append("#");
}
dayOfWeek = s.append(nthDay).toString();
sb.append(advSchedule.getSecValue()).append(" ")
.append(advSchedule.getMinuteValue()).append(" ")
.append(advSchedule.getHourValue()).append(" ")
.append("? *").append(" ")
.append(dayOfWeek);
advSchedule.setCronExpression(sb.toString());
break;
default:
}
logger.debug("Cron Expression : " + advSchedule.getCronExpression());
}
/**
* Set the yearly trigger cron expression
* @param request The HTTP request object
* @param errors The binding exception object
* @param advSchedule The advance schedule object
*/
private void setYearlyTrigger(HttpServletRequest request, BindException errors,
AdvancedSchedule advSchedule){
logger.debug("Set Yearly Trigger");
StringBuffer sb = new StringBuffer();
switch (advSchedule.getPatternChoice()){
case AdvancedSchedule.YEAROPT1:
logger.debug("YEAROPT1");
String dayOfMonth = RequestUtils.getStringParameter(request,"dayOfMonth","1");
String month1 = RequestUtils.getStringParameter(request,"monthOpt1","*");
sb.append(advSchedule.getSecValue()).append(" ")
.append(advSchedule.getMinuteValue()).append(" ")
.append(advSchedule.getHourValue()).append(" ")
.append(dayOfMonth).append(" ")
.append(month1).append(" ")
.append("?");
advSchedule.setCronExpression(sb.toString());
break;
case AdvancedSchedule.YEAROPT2:
logger.debug("YEAROPT2");
StringBuffer s = new StringBuffer();
String nthDay = RequestUtils.getStringParameter(request,"nthDay","1");
String dayOfWeek = null;
s.append(RequestUtils.getStringParameter(request,"dayOfWeek","1"));
if (!nthDay.equalsIgnoreCase("L")){
s.append("#");
}
dayOfWeek = s.append(nthDay).toString();
String month2 = RequestUtils.getStringParameter(request,"monthOpt2","*");
sb.append(advSchedule.getSecValue()).append(" ")
.append(advSchedule.getMinuteValue()).append(" ")
.append(advSchedule.getHourValue()).append(" ")
.append("?").append(" ")
.append(month2).append(" ")
.append(dayOfWeek);
advSchedule.setCronExpression(sb.toString());
break;
default:
}
logger.debug("Cron Expression : " + advSchedule.getCronExpression());
}
/**
* Set the at time request attribute.
* @param request The HTTP request object
* @param command The command object
*/
private void setAtTimeRequestAttributes(HttpServletRequest request, Object command){
AdvancedSchedule advSchedule = (AdvancedSchedule) command;
Calendar calendar = new GregorianCalendar();
calendar.set(Calendar.SECOND,Integer.parseInt(advSchedule.getSecValue()));
calendar.set(Calendar.MINUTE,Integer.parseInt(advSchedule.getMinuteValue()));
calendar.set(Calendar.HOUR,Integer.parseInt(advSchedule.getHourValue()));
Date atTime = calendar.getTime();
request.setAttribute(NameConstants.AT_TIME,atTime);
}
/**
* Set other request attributes.
* @param request The HTTP request object
* @throws ScheduleException
*/
private void setOtherRequestAttributes(HttpServletRequest request) throws ScheduleException{
List jobList = this.getScheduleManager().getAllJobs();
request.setAttribute(NameConstants.JOB_LIST,jobList);
request.setAttribute(NameConstants.JOB_GRP_LIST,this.getScheduleManager().getAllJobGroups());
request.setAttribute(NameConstants.SCHEDULE_GRP_LIST,this.getScheduleManager().getAllScheduleGroups());
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?