yangys
2024-05-18 040976de6f9934b99f30268a28e2ecf42260e217
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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;
    }
}