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

com.qiniu.convert.Converter Maven / Gradle / Ivy

There is a newer version: 8.4.8
Show newest version
package com.qiniu.convert;

import com.qiniu.interfaces.ILineParser;
import com.qiniu.interfaces.IStringFormat;
import com.qiniu.interfaces.ITypeConvert;
import com.qiniu.util.JsonConvertUtils;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public abstract class Converter implements ITypeConvert {

    protected Map indexMap;
    protected ILineParser lineParser;
    protected IStringFormat stringFormatter;
    private List errorList = new ArrayList<>();

    Converter() {
    }

    Converter(Map indexMap) {
        this.indexMap = indexMap;
    }

    Converter(ILineParser lineParser) {
        this.lineParser = lineParser;
    }

    Converter(IStringFormat stringFormatter) {
        this.stringFormatter = stringFormatter;
    }

    public abstract T convertToV(E line) throws IOException;

    @Override
    public List convertToVList(List lineList) {
        List mapList = new ArrayList<>();
        if (lineList != null && lineList.size() > 0) {
            for (E line : lineList) {
                try {
                    mapList.add(convertToV(line));
                } catch (Exception e) {
                    errorList.add(JsonConvertUtils.toJson(line) + "\t" + e.getMessage());
                }
            }
        }
        return mapList;
    }

    @Override
    public int errorSize() {
        return errorList.size();
    }

    @Override
    public List consumeErrors() {
        try {
            return new ArrayList<>(errorList);
        } finally {
            errorList.clear();
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy