public static GossipInfoResponse parse()

in common/src/main/java/org/apache/cassandra/sidecar/common/utils/GossipInfoParser.java [68:93]


    public static GossipInfoResponse parse(@NotNull final String rawGossipInfo)
    {
        final GossipInfoResponse gossipInfoMap = new GossipInfoResponse();
        GossipInfoResponse.GossipInfo gossipInfo = null;

        for (String line : GOSSIP_INFO_LINE_SPLITTER.split(rawGossipInfo))
        {
            if (isGossipInfoHostHeader(line))
            {
                gossipInfo = gossipInfoMap.computeIfAbsent(line, s -> new GossipInfoResponse.GossipInfo());
            }
            else
            {
                assert gossipInfo != null; // the host line appears before the rest. gossipInfo map must be initialized
                final List<String> splitLine = GOSSIP_INFO_FIELD_SPLITTER.splitToList(line);
                Preconditions.checkState(splitLine.size() == 2 || splitLine.size() == 3,
                                         "A gossip field should be split into two or three parts. %s",
                                         line);
                String key = splitLine.get(0);
                // ignore the version tag if present
                String value = splitLine.get(splitLine.size() - 1);
                gossipInfo.camelizeKeyAndPut(key, value);
            }
        }
        return gossipInfoMap;
    }