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

com.alibaba.excel.read.metadata.holder.AbstractReadHolder Maven / Gradle / Ivy

There is a newer version: 4.0.3
Show newest version
package com.alibaba.excel.read.metadata.holder;

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

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.converters.ConverterKeyBuild;
import com.alibaba.excel.converters.DefaultConverterLoader;
import com.alibaba.excel.enums.HolderEnum;
import com.alibaba.excel.metadata.AbstractHolder;
import com.alibaba.excel.read.listener.ModelBuildEventListener;
import com.alibaba.excel.read.listener.ReadListener;
import com.alibaba.excel.read.metadata.ReadBasicParameter;
import com.alibaba.excel.read.metadata.ReadWorkbook;
import com.alibaba.excel.read.metadata.property.ExcelReadHeadProperty;

/**
 * Read Holder
 *
 * @author Jiaju Zhuang
 */
public abstract class AbstractReadHolder extends AbstractHolder implements ReadHolder {
    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractReadHolder.class);

    /**
     * Count the number of added heads when read sheet.
     *
     * 

* 0 - This Sheet has no head ,since the first row are the data *

* 1 - This Sheet has one row head , this is the default *

* 2 - This Sheet has two row head ,since the third row is the data */ private Integer headRowNumber; /** * Excel head property */ private ExcelReadHeadProperty excelReadHeadProperty; /** * Read listener */ private List readListenerList; public AbstractReadHolder(ReadBasicParameter readBasicParameter, AbstractReadHolder parentAbstractReadHolder, Boolean convertAllFiled) { super(readBasicParameter, parentAbstractReadHolder); if (readBasicParameter.getUse1904windowing() == null && parentAbstractReadHolder != null) { getGlobalConfiguration() .setUse1904windowing(parentAbstractReadHolder.getGlobalConfiguration().getUse1904windowing()); } else { getGlobalConfiguration().setUse1904windowing(readBasicParameter.getUse1904windowing()); } // Initialization property this.excelReadHeadProperty = new ExcelReadHeadProperty(this, getClazz(), getHead(), convertAllFiled); if (readBasicParameter.getHeadRowNumber() == null) { if (parentAbstractReadHolder == null) { if (excelReadHeadProperty.hasHead()) { this.headRowNumber = excelReadHeadProperty.getHeadRowNumber(); } else { this.headRowNumber = 1; } } else { this.headRowNumber = parentAbstractReadHolder.getHeadRowNumber(); } } else { this.headRowNumber = readBasicParameter.getHeadRowNumber(); } if (parentAbstractReadHolder == null) { this.readListenerList = new ArrayList(); } else { this.readListenerList = new ArrayList(parentAbstractReadHolder.getReadListenerList()); } if (HolderEnum.WORKBOOK.equals(holderType())) { Boolean useDefaultListener = ((ReadWorkbook)readBasicParameter).getUseDefaultListener(); if (useDefaultListener == null || useDefaultListener) { readListenerList.add(new ModelBuildEventListener()); } } if (readBasicParameter.getCustomReadListenerList() != null && !readBasicParameter.getCustomReadListenerList().isEmpty()) { this.readListenerList.addAll(readBasicParameter.getCustomReadListenerList()); } if (parentAbstractReadHolder == null) { setConverterMap(DefaultConverterLoader.loadDefaultReadConverter()); } else { setConverterMap(new HashMap(parentAbstractReadHolder.getConverterMap())); } if (readBasicParameter.getCustomConverterList() != null && !readBasicParameter.getCustomConverterList().isEmpty()) { for (Converter converter : readBasicParameter.getCustomConverterList()) { getConverterMap().put( ConverterKeyBuild.buildKey(converter.supportJavaTypeKey(), converter.supportExcelTypeKey()), converter); } } } public List getReadListenerList() { return readListenerList; } public void setReadListenerList(List readListenerList) { this.readListenerList = readListenerList; } public ExcelReadHeadProperty getExcelReadHeadProperty() { return excelReadHeadProperty; } public void setExcelReadHeadProperty(ExcelReadHeadProperty excelReadHeadProperty) { this.excelReadHeadProperty = excelReadHeadProperty; } public Integer getHeadRowNumber() { return headRowNumber; } public void setHeadRowNumber(Integer headRowNumber) { this.headRowNumber = headRowNumber; } @Override public List readListenerList() { return getReadListenerList(); } @Override public ExcelReadHeadProperty excelReadHeadProperty() { return getExcelReadHeadProperty(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy