package com.njcn.gather.tool.addledger.util;

import com.njcn.gather.tool.addledger.pojo.constant.AddLedgerConst;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * 数据台账测点线路号工具。
 */
public final class AddLedgerLineNoUtil {

    private AddLedgerLineNoUtil() {
    }

    public static List<Integer> resolveAvailableLineNos(List<Integer> usedLineNos, Integer currentLineNo) {
        Set<Integer> usedSet = new HashSet<Integer>();
        if (usedLineNos != null) {
            usedSet.addAll(usedLineNos);
        }
        List<Integer> result = new ArrayList<Integer>();
        for (int lineNo = AddLedgerConst.MIN_LINE_NO; lineNo <= AddLedgerConst.MAX_LINE_NO; lineNo++) {
            if (!usedSet.contains(lineNo) || Integer.valueOf(lineNo).equals(currentLineNo)) {
                result.add(lineNo);
            }
        }
        return result;
    }
}
