package com.yanzuoguang.util.vo;

import com.yanzuoguang.util.helper.StringHelper;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;

/**
 * 行映射
 *
 * @author 颜佐光
 */
public class MapRow extends LinkedHashMap<String, Object> {

    /**
     * 删除所有的值,当值等于默认值时
     *
     * @param rows          行信息
     * @param columns       列信息
     * @param defaultValues 默认值集合,默认包含空值和空字符串
     */
    public static <T> void removeRowColumnOrDefaultValue(List<MapRow> rows, List<String> columns, List<T> defaultValues) {
        List<String> removeColumns = new ArrayList<>();
        for (String column : columns) {
            boolean isDefaultValue = true;
            for (MapRow row : rows) {
                Object value = row.get(column);
                if (StringHelper.isEmpty(value) || defaultValues.contains(value)) {
                } else {
                    isDefaultValue = false;
                }
            }
            if (isDefaultValue) {
                removeColumns.add(column);
            }
        }
        for (MapRow row : rows) {
            for (String removeColumn : removeColumns) {
                row.remove(removeColumn);
            }
        }
    }
}