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

com.jpattern.batch.execution.TimedJobExecutionStrategy Maven / Gradle / Ivy

package com.jpattern.batch.execution;

import com.jpattern.batch.JobExecutionStrategy;

/**
 * 
 * Execute a job a predetermined number of times consecutively
 * 
 * @author Francesco Cina'
 *
 * Apr 4, 2012
 */
public class TimedJobExecutionStrategy implements JobExecutionStrategy   {

	private static final long serialVersionUID = 1L;
	private final int _executionTime;
	private int _executedTime = 0;
	private static final int INFINITE = -1;

	public TimedJobExecutionStrategy(int aExecutionTime) {
		_executionTime = aExecutionTime;
	}

	@Override
	public boolean canExecute() {

		if (_executionTime == INFINITE) {
			return true;
		}

		if (_executedTime >= _executionTime) {
			return false;
		}

		_executedTime++;
		return true;
	}

	@Override
	public String asString() {
		final int remainig = (_executionTime - _executedTime) < 0 ? 0 : (_executionTime - _executedTime);
		return "TimedJobExecution execute fixed time, remaining " + remainig;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy