private static void parseEntities()

in ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/anomalylocalization/AnomalyLocalizationOutput.java [282:319]


    private static void parseEntities(XContentParser parser, AnomalyLocalizationOutput.Bucket bucket) throws IOException {
        List<AnomalyLocalizationOutput.Entity> entities = new ArrayList<>();
        ensureExpectedToken(XContentParser.Token.START_ARRAY, parser.nextToken(), parser);
        while (parser.nextToken() != XContentParser.Token.END_ARRAY) {
            ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.currentToken(), parser);
            AnomalyLocalizationOutput.Entity entity = new AnomalyLocalizationOutput.Entity();
            while (parser.nextToken() != XContentParser.Token.END_OBJECT) {
                switch (parser.currentName()) {
                    case AnomalyLocalizationOutput.Entity.FIELD_KEY:
                        List<String> key = new ArrayList<>();
                        ensureExpectedToken(XContentParser.Token.START_ARRAY, parser.nextToken(), parser);
                        while (parser.nextToken() != XContentParser.Token.END_ARRAY) {
                            key.add(parser.text());
                        }
                        entity.setKey(key);
                        break;
                    case AnomalyLocalizationOutput.Entity.FIELD_CONTRIBUTION_VALUE:
                        parser.nextToken();
                        entity.setContributionValue(parser.doubleValue());
                        break;
                    case AnomalyLocalizationOutput.Entity.FIELD_BASE_VALUE:
                        parser.nextToken();
                        entity.setBaseValue(parser.doubleValue());
                        break;
                    case AnomalyLocalizationOutput.Entity.FIELD_NEW_VALUE:
                        parser.nextToken();
                        entity.setNewValue(parser.doubleValue());
                        break;
                    default:
                        parser.skipChildren();
                        break;
                }
            }
            entities.add(entity);
        }
        bucket.setEntities(entities);
        ensureExpectedToken(XContentParser.Token.END_ARRAY, parser.currentToken(), parser);
    }