package com.thinkbiganalytics.scheduler.rest.model; /*- * #%L * thinkbig-scheduler-rest-model * %% * Copyright (C) 2017 ThinkBig Analytics * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * #L% */ import java.util.Date; import java.util.List; /** * Hold schedule information about a job */ public class ScheduledJob { private ScheduleIdentifier jobIdentifier; private String jobName; private String jobStatus; private String jobGroup; private String nextFireTimeString; private String cronExpression; private Date nextFireTime; private List<TriggerInfo> triggers; private String state; private String cronExpressionSummary; private boolean isRunning; private boolean isPaused; private boolean isScheduled; public ScheduledJob() { } public String getJobStatus() { return jobStatus; } public void setJobStatus(String jobStatus) { this.jobStatus = jobStatus; } public String getJobGroup() { return jobGroup; } public void setJobGroup(String jobGroup) { this.jobGroup = jobGroup; } public String getNextFireTimeString() { return nextFireTimeString; } public void setNextFireTimeString(String nextFireTimeString) { this.nextFireTimeString = nextFireTimeString; } public Date getNextFireTime() { return nextFireTime; } public void setNextFireTime(Date nextFireTime) { this.nextFireTime = nextFireTime; } public String getCronExpression() { return cronExpression; } public void setCronExpression(String cronExpression) { this.cronExpression = cronExpression; } public String getJobName() { return jobName; } public void setJobName(String jobName) { this.jobName = jobName; } public List<TriggerInfo> getTriggers() { return triggers; } public void setTriggers(List<TriggerInfo> triggers) { this.triggers = triggers; } public ScheduleIdentifier getJobIdentifier() { return jobIdentifier; } public void setJobIdentifier(ScheduleIdentifier jobIdentifier) { this.jobIdentifier = jobIdentifier; } public String getState() { return state; } public void setState(String state) { this.state = state; } public String getCronExpressionSummary() { return cronExpressionSummary; } public boolean isRunning() { return isRunning; } public boolean isPaused() { return isPaused; } public boolean isScheduled() { return isScheduled; } public void setIsRunning(boolean isRunning) { this.isRunning = isRunning; } public void setIsPaused(boolean isPaused) { this.isPaused = isPaused; } public void setIsScheduled(boolean isScheduled) { this.isScheduled = isScheduled; } public void setState() { String state = ""; if (isRunning()) { state = "RUNNING"; } else if (isPaused()) { state = "PAUSED"; } else if (isScheduled()) { state = "SCHEDULED"; } else { state = "UNKNOWN"; } this.state = state; } public void setCronExpressionData() { if (getTriggers() != null) { for (TriggerInfo triggerInfo : getTriggers()) { if (triggerInfo.getCronExpression() != null && !triggerInfo.getCronExpression().equalsIgnoreCase("")) { this.setCronExpression(triggerInfo.getCronExpression()); this.nextFireTime = triggerInfo.getNextFireTime(); this.cronExpressionSummary = triggerInfo.getCronExpressionSummary(); break; } } } } }