private List parseFrontends()

in spark-doris-connector/spark-doris-connector-base/src/main/java/org/apache/doris/spark/client/DorisFrontendClient.java [264:302]


    private List<Frontend> parseFrontends(ArrayNode columnNames, ArrayNode rows) {
        int hostIdx = -1;
        int httpPortIdx = -1;
        int queryPortIdx = -1;
        int flightSqlIdx = -1;
        for (int idx = 0; idx < columnNames.size(); idx++) {
            String columnName = columnNames.get(idx).asText();
            switch (columnName) {
                case "Host":
                case "HostName":
                    hostIdx = idx;
                    break;
                case "HttpPort":
                    httpPortIdx = idx;
                    break;
                case "QueryPort":
                    queryPortIdx = idx;
                    break;
                case "ArrowFlightSqlPort":
                    flightSqlIdx = idx;
                    break;
                default:
                    break;
            }
        }
        if (rows.isEmpty()) {
            return Collections.emptyList();
        }
        List<Frontend> frontends = new ArrayList<>();
        for (int rowIdx = 0; rowIdx < rows.size(); rowIdx++) {
            ArrayNode row = (ArrayNode) rows.get(rowIdx);
            if (flightSqlIdx == -1) {
                frontends.add(new Frontend(row.get(hostIdx).asText(), row.get(httpPortIdx).asInt(), row.get(queryPortIdx).asInt()));
            } else {
                frontends.add(new Frontend(row.get(hostIdx).asText(), row.get(httpPortIdx).asInt(), row.get(queryPortIdx).asInt(), row.get(flightSqlIdx).asInt()));
            }
        }
        return frontends;
    }