001package com.mybatisflex.spring.batch.builder;
002
003import com.mybatisflex.spring.batch.MybatisFlexBatchItemWriter;
004import com.mybatisflex.core.BaseMapper;
005
006import java.util.Optional;
007
008/**
009 * 构造MybatisFlex数据的写入工具
010 *
011 * @author zhangjian
012 *
013 * @see MybatisFlexBatchItemWriter
014 */
015public class MyBatisFlexBatchItemWriterBuilder<T> {
016
017  /**
018   * mapper对象
019   */
020  private BaseMapper<T> mapper;
021
022  private Boolean assertUpdates;
023
024  /**
025   * mapper对象
026   * @param mapper
027   * @return
028   */
029  public MyBatisFlexBatchItemWriterBuilder<T> mapper(BaseMapper<T> mapper) {
030    this.mapper = mapper;
031    return this;
032  }
033
034  /**
035   * 是否更新标志位
036   * @param assertUpdates
037   * @return
038   */
039  public MyBatisFlexBatchItemWriterBuilder<T> assertUpdates(boolean assertUpdates) {
040    this.assertUpdates = assertUpdates;
041    return this;
042  }
043
044  /**
045   * 构建写入工具
046   * @return
047   */
048  public MybatisFlexBatchItemWriter<T> build() {
049    MybatisFlexBatchItemWriter<T> writer = new MybatisFlexBatchItemWriter<>();
050    writer.setMapper(this.mapper);
051    Optional.ofNullable(this.assertUpdates).ifPresent(writer::setAssertUpdates);
052    return writer;
053  }
054
055}