/*
* Copyright (c) 2012-2013 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.runtime;
import java.io.Serializable;
import java.util.List;
import javax.batch.runtime.BatchStatus;
public final class PartitionExecutionImpl extends AbstractStepExecution {
private static final long serialVersionUID = 1L;
/**
* If this instance is assigned to a partition, partitionId represents the id for that partition. Its value should
* be the same as the partition attribute of the target partition properties in job xml. The default value -1
* indicates that this StepExecutionImpl is for the main step execution, and is not a cloned instance for any
* partition.
*/
private int partitionId = -1;
/**
* Creates a partition execution data structure.
*
* @param partitionId
* @param stepExecutionId
* @param stepName
* @param batchStatus
* @param exitStatus
* @param persistentUserData
* @param readerCheckpointInfo
* @param writerCheckpointInfo
*/
public PartitionExecutionImpl(final int partitionId,
final long stepExecutionId,
final String stepName,
final BatchStatus batchStatus,
final String exitStatus,
final Serializable persistentUserData,
final Serializable readerCheckpointInfo,
final Serializable writerCheckpointInfo
) {
super(stepExecutionId, stepName, persistentUserData, readerCheckpointInfo, writerCheckpointInfo);
this.partitionId = partitionId;
this.batchStatus = batchStatus;
this.exitStatus = exitStatus;
}
public PartitionExecutionImpl(final AbstractStepExecution stepExecution) {
super(stepExecution);
batchStatus = stepExecution.batchStatus;
exitStatus = stepExecution.exitStatus;
}
public int getPartitionId() {
return partitionId;
}
public void setPartitionId(final int partitionId) {
this.partitionId = partitionId;
}
@Override
public List<PartitionExecutionImpl> getPartitionExecutions() {
return null;
}
@Override
public boolean equals(final Object o) {
if (this == o) return true;
if (!(o instanceof PartitionExecutionImpl)) return false;
if (!super.equals(o)) return false;
final PartitionExecutionImpl that = (PartitionExecutionImpl) o;
if (partitionId != that.partitionId) return false;
return true;
}
@Override
public int hashCode() {
int result = super.hashCode();
result = 31 * result + partitionId;
return result;
}
}