public Collection parseSplitRates()

in src/main/java/com/amazonaws/services/neptune/profiles/neptune_ml/common/parsing/ParseSplitRate.java [33:61]


    public Collection<Double> parseSplitRates() {

        if (json.has("split_rate")){
            if (json.get("split_rate").isArray()){
                ArrayNode splitRatesArray = (ArrayNode) json.get("split_rate");
                if (splitRatesArray.size() == 3) {
                    Collection<Double> splitRates = new ArrayList<>();
                    for (JsonNode jsonNode : splitRatesArray) {
                        if (jsonNode.isDouble()) {
                            splitRates.add(jsonNode.asDouble());
                        } else {
                            throw error();
                        }
                    }
                    Optional<Double> sum = splitRates.stream().reduce(Double::sum);
                    if (sum.orElse(0.0) != 1.0) {
                        throw error();
                    }
                    return splitRates;
                } else {
                    throw error();
                }
            } else {
                throw error();
            }
        } else {
            return defaultSplitRates;
        }
    }