
cn.featherfly.data.office.word.WordDataSet Maven / Gradle / Ivy
package cn.featherfly.data.office.word;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import org.apache.poi.xwpf.usermodel.XWPFTable;
import org.apache.poi.xwpf.usermodel.XWPFTableRow;
import cn.featherfly.common.lang.Lang;
import cn.featherfly.data.core.DataSet;
/**
*
* Word数据集
*
*
* @param 数据记录
* @author 钟冀
*/
public class WordDataSet implements DataSet {
private List records = new ArrayList<>();
private int index = -1;
private XWPFTable table;
private WordDataMapper mapper;
/**
* @param table XWPFTable
* @param index index
* @param mapper ExcelDataMapper
*/
public WordDataSet(XWPFTable table, int index, WordDataMapper mapper) {
this.index = index;
this.table = table;
this.mapper = mapper;
int rowNum = 1;
for (XWPFTableRow row : table.getRows()) {
records.add(mapper.mapRecord(row, rowNum));
rowNum++;
}
}
/**
* {@inheritDoc}
*/
@Override
public Collection getDataRecords() {
return records;
}
/**
* {@inheritDoc}
*/
@Override
public R getDataRecord(int index) {
return records.get(index);
}
/**
* {@inheritDoc}
*/
@Override
public int getDataRecordsNumber() {
return records.size();
}
/**
* {@inheritDoc}
*/
@SuppressWarnings("unchecked")
@Override
public > D addRecord(R record) {
int rowNum = table.getNumberOfRows();
rowNum++;
XWPFTableRow row = table.createRow();
mapper.fillData(row, record, rowNum);
records.add(record);
return (D) this;
}
/**
* {@inheritDoc}
*/
@Override
@SuppressWarnings("unchecked")
public > D addRecord(R... records) {
if (Lang.isNotEmpty(records)) {
for (R record : records) {
addRecord(record);
}
}
return (D) this;
}
/**
* {@inheritDoc}
*/
@Override
@SuppressWarnings("unchecked")
public > D addRecords(Collection records) {
if (Lang.isNotEmpty(records)) {
for (R record : records) {
addRecord(record);
}
}
return (D) this;
}
/**
* {@inheritDoc}
*/
@Override
public int getIndex() {
return index;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy