All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.logspace.agent.shaded.quartz.impl.JobExecutionContextImpl Maven / Gradle / Ivy

There is a newer version: 0.3.2
Show newest version

/* 
 * Copyright 2001-2009 Terracotta, Inc. 
 * 
 * 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.
 * 
 */

package io.logspace.agent.shaded.quartz.impl;

import java.util.Date;
import java.util.HashMap;

import io.logspace.agent.shaded.quartz.Calendar;
import io.logspace.agent.shaded.quartz.Job;
import io.logspace.agent.shaded.quartz.JobDataMap;
import io.logspace.agent.shaded.quartz.JobDetail;
import io.logspace.agent.shaded.quartz.JobExecutionContext;
import io.logspace.agent.shaded.quartz.Scheduler;
import io.logspace.agent.shaded.quartz.Trigger;
import io.logspace.agent.shaded.quartz.TriggerKey;
import io.logspace.agent.shaded.quartz.spi.OperableTrigger;
import io.logspace.agent.shaded.quartz.spi.TriggerFiredBundle;


public class JobExecutionContextImpl implements java.io.Serializable, JobExecutionContext {

    private static final long serialVersionUID = -8139417614523942021L;
    
    /*
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     * 
     * Data members.
     * 
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     */

    private transient Scheduler scheduler;

    private Trigger trigger;

    private JobDetail jobDetail;
    
    private JobDataMap jobDataMap;

    private transient Job job;
    
    private Calendar calendar;

    private boolean recovering = false;

    private int numRefires = 0;

    private Date fireTime;

    private Date scheduledFireTime;

    private Date prevFireTime;

    private Date nextFireTime;
    
    private long jobRunTime = -1;
    
    private Object result;
    
    private HashMap data = new HashMap();

    /*
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     * 
     * Constructors.
     * 
     * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     */

    /**
     * 

* Create a JobExcecutionContext with the given context data. *

*/ public JobExecutionContextImpl(Scheduler scheduler, TriggerFiredBundle firedBundle, Job job) { this.scheduler = scheduler; this.trigger = firedBundle.getTrigger(); this.calendar = firedBundle.getCalendar(); this.jobDetail = firedBundle.getJobDetail(); this.job = job; this.recovering = firedBundle.isRecovering(); this.fireTime = firedBundle.getFireTime(); this.scheduledFireTime = firedBundle.getScheduledFireTime(); this.prevFireTime = firedBundle.getPrevFireTime(); this.nextFireTime = firedBundle.getNextFireTime(); this.jobDataMap = new JobDataMap(); this.jobDataMap.putAll(jobDetail.getJobDataMap()); this.jobDataMap.putAll(trigger.getJobDataMap()); } /* * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * Interface. * * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /** * {@inheritDoc} */ public Scheduler getScheduler() { return scheduler; } /** * {@inheritDoc} */ public Trigger getTrigger() { return trigger; } /** * {@inheritDoc} */ public Calendar getCalendar() { return calendar; } /** * {@inheritDoc} */ public boolean isRecovering() { return recovering; } public TriggerKey getRecoveringTriggerKey() { if (isRecovering()) { return new TriggerKey(jobDataMap.getString(Scheduler.FAILED_JOB_ORIGINAL_TRIGGER_GROUP), jobDataMap.getString(Scheduler.FAILED_JOB_ORIGINAL_TRIGGER_NAME)); } else { throw new IllegalStateException("Not a recovering job"); } } public void incrementRefireCount() { numRefires++; } /** * {@inheritDoc} */ public int getRefireCount() { return numRefires; } /** * {@inheritDoc} */ public JobDataMap getMergedJobDataMap() { return jobDataMap; } /** * {@inheritDoc} */ public JobDetail getJobDetail() { return jobDetail; } /** * {@inheritDoc} */ public Job getJobInstance() { return job; } /** * {@inheritDoc} */ public Date getFireTime() { return fireTime; } /** * {@inheritDoc} */ public Date getScheduledFireTime() { return scheduledFireTime; } /** * {@inheritDoc} */ public Date getPreviousFireTime() { return prevFireTime; } /** * {@inheritDoc} */ public Date getNextFireTime() { return nextFireTime; } @Override public String toString() { return "JobExecutionContext:" + " trigger: '" + getTrigger().getKey() + " job: " + getJobDetail().getKey() + " fireTime: '" + getFireTime() + " scheduledFireTime: " + getScheduledFireTime() + " previousFireTime: '" + getPreviousFireTime() + " nextFireTime: " + getNextFireTime() + " isRecovering: " + isRecovering() + " refireCount: " + getRefireCount(); } /** * {@inheritDoc} */ public Object getResult() { return result; } /** * {@inheritDoc} */ public void setResult(Object result) { this.result = result; } /** * {@inheritDoc} */ public long getJobRunTime() { return jobRunTime; } /** * @param jobRunTime The jobRunTime to set. */ public void setJobRunTime(long jobRunTime) { this.jobRunTime = jobRunTime; } /** * {@inheritDoc} */ public void put(Object key, Object value) { data.put(key, value); } /** * {@inheritDoc} */ public Object get(Object key) { return data.get(key); } /** * {@inheritDoc} */ public String getFireInstanceId() { return ((OperableTrigger)trigger).getFireInstanceId(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy