package com.testor.config;


import com.testor.common.annotation.ExcelSelectedType;
import com.testor.common.excel.select.ExcelDynamicSelect;
import com.testor.common.util.excel.EasyExcelUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;

import javax.annotation.PostConstruct;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 下拉框数据配置类
 *
 * @author Lion Li
 */
@Slf4j
@Configuration
public class ExcelSelectConfig {


    @Autowired
    private List<ExcelDynamicSelect<?>> list;

    @PostConstruct
    public void init() {
        Map<String, ExcelDynamicSelect<?>> map = new HashMap<>(list.size());
        for (ExcelDynamicSelect<?> trans : list) {
            if (trans.getClass().isAnnotationPresent(ExcelSelectedType.class)) {
                ExcelSelectedType annotation = trans.getClass().getAnnotation(ExcelSelectedType.class);
                map.put(annotation.type(), trans);
            } else {
                log.warn(trans.getClass().getName() + " 翻译实现类未标注 TranslationType 注解!");
            }
        }
        EasyExcelUtil.EXCEL_SELECT_MAPPER.putAll(map);
    }


}