package com.alibaba.jstorm.transactional.state; import java.io.Serializable; import com.alibaba.jstorm.transactional.BatchGroupId; public class TransactionState implements Serializable { private static final long serialVersionUID = 1124196216381387618L; public static enum State { INIT, ACTIVE, INACTIVE, ROLLBACK } protected BatchGroupId batchGroupId; protected Object systemCheckpoint; protected Object userCheckpoint; public TransactionState() { } public TransactionState(int groupId, long batchId, Object sysCheckpoint, Object userCheckpoint) { this.batchGroupId = new BatchGroupId(groupId, batchId); this.systemCheckpoint = sysCheckpoint; this.userCheckpoint = userCheckpoint; } public TransactionState(TransactionState state) { this.batchGroupId = new BatchGroupId(state.getCurrBatchGroupId()); this.systemCheckpoint = state.getsysCheckpoint(); this.userCheckpoint = state.getUserCheckpoint(); } public void setCurrBatchGroupId(BatchGroupId id) { this.batchGroupId = id; } public void setGroupId(int groupId) { this.batchGroupId.groupId = groupId; } public void setBatchId(long batchId) { this.batchGroupId.batchId = batchId; } public BatchGroupId getCurrBatchGroupId() { return batchGroupId; } public Object getsysCheckpoint() { return systemCheckpoint; } public void setSystemCheckpoint(Object checkpoint) { systemCheckpoint = checkpoint; } public Object getUserCheckpoint() { return userCheckpoint; } public void setUserCheckpoint(Object checkpoint) { userCheckpoint = checkpoint; } public void reset() { batchGroupId = null; systemCheckpoint = null; userCheckpoint = null; } @Override public String toString() { return "batchGroupId=" + batchGroupId + ", sysState=" + systemCheckpoint + ", userState=" + userCheckpoint; } }