public static List from()

in server-common/src/main/java/org/apache/cassandra/sidecar/common/server/cluster/locator/TokenRange.java [48:87]


    public static List<TokenRange> from(com.datastax.driver.core.TokenRange dsTokenRange)
    {
        DataType tokenDataType = dsTokenRange.getStart().getType();
        if (tokenDataType == DataType.varint()) // BigInteger - RandomPartitioner
        {
            return dsTokenRange.unwrap()
                               .stream()
                               .map(range -> {
                                   BigInteger start = (BigInteger) range.getStart().getValue();
                                   BigInteger end = (BigInteger) range.getEnd().getValue();
                                   if (end.compareTo(Partitioners.RANDOM.minimumToken().toBigInteger()) == 0)
                                   {
                                       end = Partitioners.RANDOM.maximumToken().toBigInteger();
                                   }
                                   return new TokenRange(start, end);
                               })
                               .collect(Collectors.toList());
        }
        else if (tokenDataType == DataType.bigint()) // Long - Murmur3Partitioner
        {
            return dsTokenRange.unwrap()
                               .stream()
                               .map(range -> {
                                   BigInteger start = BigInteger.valueOf((Long) range.getStart().getValue());
                                   BigInteger end = BigInteger.valueOf((Long) range.getEnd().getValue());
                                   if (end.compareTo(Partitioners.MURMUR3.minimumToken().toBigInteger()) == 0)
                                   {
                                       end = Partitioners.MURMUR3.maximumToken().toBigInteger();
                                   }
                                   return new TokenRange(start, end);
                               })
                               .collect(Collectors.toList());
        }
        else
        {
            throw new IllegalArgumentException(
            "Unsupported token type: " + tokenDataType +
            ". Only tokens of Murmur3Partitioner and RandomPartitioner are supported.");
        }
    }