All Downloads are FREE. Search and download functionalities are using the official Maven repository.

top.zeimao77.product.fileio.oexcel.DelegatingXlsxDocumentBuilder Maven / Gradle / Ivy

package top.zeimao77.product.fileio.oexcel;

import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;

import java.util.ArrayList;
import java.util.List;

public class DelegatingXlsxDocumentBuilder implements XlsxDocumentBuilder{

    private Workbook workbook;
    private List builderList;

    public DelegatingXlsxDocumentBuilder(XlsxDocumentBuilder... builders) {
        builderList = List.of(builders);
    }

    public DelegatingXlsxDocumentBuilder(List builderList) {
        this.builderList = builderList;
    }

    public boolean register(XlsxDocumentBuilder jobExecHandler) {
        if(builderList == null)
            builderList = new ArrayList<>();
        return this.builderList.add(jobExecHandler);
    }

    public boolean unregister(XlsxDocumentBuilder jobExecHandler) {
        return this.builderList.remove(jobExecHandler);
    }

    @Override
    public Workbook build() {
        build(new SXSSFWorkbook());
        return this.workbook;
    }

    @Override
    public void build(Workbook workbook) {
        this.workbook = workbook;
        for (XlsxDocumentBuilder excelXlsxDocumentBuilder : builderList) {
            excelXlsxDocumentBuilder.build(this.workbook);
        }
    }


}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy