/*
* Copyright (c) 2015 Red Hat, Inc. and/or its affiliates.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Cheng Fang - Initial API and implementation
*/
package org.jberet.rest.entity;
import java.io.Serializable;
import java.util.List;
import javax.batch.runtime.JobExecution;
import javax.batch.runtime.JobInstance;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
/**
* Represents a job instance, which includes job instance id, job name (id),
* number of job executions, and latest job execution id.
*
* @since 1.3.0
*/
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder = {"instanceId", "jobName", "numberOfJobExecutions", "latestJobExecutionId"})
public final class JobInstanceEntity implements JobInstance, Serializable {
private static final long serialVersionUID = 2427272964201557394L;
@XmlElement
private long instanceId;
@XmlElement
private String jobName;
@XmlElement
private int numberOfJobExecutions;
@XmlElement
private long latestJobExecutionId;
public JobInstanceEntity() {
}
public JobInstanceEntity(final JobInstance jobInstance, final List<JobExecution> jobExecutions) {
this.instanceId = jobInstance.getInstanceId();
this.jobName = jobInstance.getJobName();
this.numberOfJobExecutions = jobExecutions.size();
if (this.numberOfJobExecutions > 0) {
this.latestJobExecutionId = jobExecutions.get(this.numberOfJobExecutions - 1).getExecutionId();
}
}
public long getInstanceId() {
return instanceId;
}
public String getJobName() {
return jobName;
}
public int getNumberOfJobExecutions() {
return numberOfJobExecutions;
}
public long getLatestJobExecutionId() {
return latestJobExecutionId;
}
}