class ChunkResponse implements Serializable {

	private static final long serialVersionUID = 1L;

	private final StepContribution stepContribution;

	private final Long jobId;

	private final boolean status;

	private final String message;

	private final boolean redelivered;

	private final int sequence;

	public ChunkResponse(int sequence, Long jobId, StepContribution stepContribution) {
		this(true, sequence, jobId, stepContribution, null);
	}

	public ChunkResponse(boolean status, int sequence, Long jobId, StepContribution stepContribution) {
		this(status, sequence, jobId, stepContribution, null);
	}

	public ChunkResponse(boolean status, int sequence, Long jobId, StepContribution stepContribution,
			@Nullable String message) {
		this(status, sequence, jobId, stepContribution, message, false);
	}

	public ChunkResponse(ChunkResponse input, boolean redelivered) {
		this(input.status, input.sequence, input.jobId, input.stepContribution, input.message, redelivered);
	}

	public ChunkResponse(boolean status, int sequence, Long jobId, StepContribution stepContribution,
			@Nullable String message, boolean redelivered) {
		this.status = status;
		this.sequence = sequence;
		this.jobId = jobId;
		this.stepContribution = stepContribution;
		this.message = message;
		this.redelivered = redelivered;
	}

	public StepContribution getStepContribution() {
		return stepContribution;
	}

	public Long getJobId() {
		return jobId;
	}

	public int getSequence() {
		return sequence;
	}

	public boolean isSuccessful() {
		return status;
	}

	public boolean isRedelivered() {
		return redelivered;
	}

	public String getMessage() {
		return message;
	}

	/**
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {<FILL_FUNCTION_BODY>}

}

		return getClass().getSimpleName() + ": jobId=" + jobId + ", sequence=" + sequence + ", stepContribution="
				+ stepContribution + ", successful=" + status;
	
<no_super_class>