接口作用

希望在导如操作之前,加入一些自定义操作,可以用这个接口实现。比如导如的文件进行自定义解密。可以和ExportHandleProvider接口配合使用

接口内容

主要接口

package com.finebi.common.excel.api.handler;

import com.fr.stable.fun.mark.Mutable;

import java.io.InputStream;

/**
 * 对导入流进行预处理
 */
public interface ImportHandlerProvider extends Mutable {

    String XML_TAG = "ImportHandlerProvider";

    int CURRENT_LEVEL = 1;

    /**
     * 对导入流进行预处理
     *
     * @param inputStream 输入流
     * @param context     处理参数
     * @return 处理之后的流
     */
    InputStream handleStream(InputStream inputStream, ImportContext context);

}


接口接入

<extra-core>
    <ImportHandlerProvider class="插件自定义实现包全名"/>
</extra-core>

提供给插件的抽象类

package com.finebi.provider.api.imports;

import com.finebi.common.excel.api.handler.ImportContext;
import com.finebi.common.excel.api.handler.ImportHandlerProvider;
import com.fr.stable.fun.mark.API;

import java.io.InputStream;

/**
 * 对导入流进行预处理
 * Created by Hiram on 2018/11/15.
 */
@API(level = ImportHandlerProvider.CURRENT_LEVEL)
public abstract class AbstractImportHandlerProvider implements ImportHandlerProvider {

    @Override
    public int currentAPILevel() {
        return CURRENT_LEVEL;
    }

    @Override
    public String mark4Provider() {
        return getClass().getName();
    }

    @Override
    public InputStream handleStream(InputStream inputStream, ImportContext context) {
        return inputStream;
    }
}