package com.qianwen.core.sequence.builder;
|
|
import javax.sql.DataSource;
|
import com.qianwen.core.sequence.range.BizName;
|
import com.qianwen.core.sequence.range.db.DbSeqRangeMgr;
|
import com.qianwen.core.sequence.sequence.Sequence;
|
import com.qianwen.core.sequence.sequence.impl.DefaultRangeSequence;
|
|
|
public class DbSeqBuilder implements SeqBuilder {
|
private DataSource dataSource;
|
private BizName bizName;
|
private String tableName = "sequence";
|
private int retryTimes = 3;
|
private int step = 1;
|
private long stepStart = 0;
|
|
public static DbSeqBuilder create() {
|
DbSeqBuilder builder = new DbSeqBuilder();
|
return builder;
|
}
|
|
@Override // com.qianwen.core.sequence.builder.SeqBuilder
|
public Sequence build() {
|
DbSeqRangeMgr dbSeqRangeMgr = new DbSeqRangeMgr();
|
dbSeqRangeMgr.setDataSource(this.dataSource);
|
dbSeqRangeMgr.setTableName(this.tableName);
|
dbSeqRangeMgr.setRetryTimes(this.retryTimes);
|
dbSeqRangeMgr.setStep(this.step);
|
dbSeqRangeMgr.setStepStart(this.stepStart);
|
dbSeqRangeMgr.init();
|
DefaultRangeSequence sequence = new DefaultRangeSequence();
|
sequence.setName(this.bizName);
|
sequence.setStep(Integer.valueOf(this.step));
|
sequence.setStartStep(this.stepStart);
|
sequence.setSeqRangeMgr(dbSeqRangeMgr);
|
return sequence;
|
}
|
|
public DbSeqBuilder dataSource(DataSource dataSource) {
|
this.dataSource = dataSource;
|
return this;
|
}
|
|
public DbSeqBuilder tableName(String tableName) {
|
this.tableName = tableName;
|
return this;
|
}
|
|
public DbSeqBuilder retryTimes(int retryTimes) {
|
this.retryTimes = retryTimes;
|
return this;
|
}
|
|
public DbSeqBuilder step(int step) {
|
this.step = step;
|
return this;
|
}
|
|
public DbSeqBuilder bizName(BizName bizName) {
|
this.bizName = bizName;
|
return this;
|
}
|
|
public DbSeqBuilder stepStart(long stepStart) {
|
this.stepStart = stepStart;
|
return this;
|
}
|
}
|