public static AnomalyLocalizationInput parse()

in ml-algorithms/src/main/java/org/opensearch/ml/engine/algorithms/anomalylocalization/AnomalyLocalizationInput.java [55:127]


    public static AnomalyLocalizationInput parse(XContentParser parser) throws IOException {
        ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.currentToken(), parser);
        String indexName = null;
        List<String> attributeFieldNames = new ArrayList<>();
        List<AggregationBuilder> aggregations = new ArrayList<>();
        String timeFieldName = null;
        long startTime = 0;
        long endTime = 0;
        long minTimeInterval = 0;
        int numOutputs = 0;
        Optional<Long> anomalyStartTime = Optional.empty();
        Optional<QueryBuilder> filterQuery = Optional.empty();

        while (parser.nextToken() != XContentParser.Token.END_OBJECT) {
            switch (parser.currentName()) {
                case FIELD_INDEX_NAME:
                    parser.nextToken();
                    indexName = parser.text();
                    break;
                case FIELD_ATTTRIBUTE_FIELD_NAMES:
                    ensureExpectedToken(XContentParser.Token.START_ARRAY, parser.nextToken(), parser);
                    while (parser.nextToken() != XContentParser.Token.END_ARRAY) {
                        attributeFieldNames.add(parser.text());
                    }
                    ensureExpectedToken(XContentParser.Token.END_ARRAY, parser.currentToken(), parser);
                    break;
                case FIELD_AGGREGATIONS:
                    ensureExpectedToken(XContentParser.Token.START_ARRAY, parser.nextToken(), parser);
                    while (parser.nextToken() != XContentParser.Token.END_ARRAY) {
                        ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.currentToken(), parser);
                        aggregations.addAll(AggregatorFactories.parseAggregators(parser).getAggregatorFactories());
                        ensureExpectedToken(XContentParser.Token.END_OBJECT, parser.currentToken(), parser);
                    }
                    ensureExpectedToken(XContentParser.Token.END_ARRAY, parser.currentToken(), parser);
                    break;
                case FIELD_TIME_FIELD_NAME:
                    parser.nextToken();
                    timeFieldName = parser.text();
                    break;
                case FIELD_START_TIME:
                    parser.nextToken();
                    startTime = parser.longValue();
                    break;
                case FIELD_END_TIME:
                    parser.nextToken();
                    endTime = parser.longValue();
                    break;
                case FIELD_MIN_TIME_INTERVAL:
                    parser.nextToken();
                    minTimeInterval = parser.longValue();
                    break;
                case FIELD_NUM_OUTPUTS:
                    parser.nextToken();
                    numOutputs = parser.intValue();
                    break;
                case FIELD_ANOMALY_START_TIME:
                    parser.nextToken();
                    anomalyStartTime = Optional.of(parser.longValue());
                    break;
                case FIELD_FILTER_QUERY:
                    ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.nextToken(), parser);
                    filterQuery = Optional.of(parseInnerQueryBuilder(parser));
                    ensureExpectedToken(XContentParser.Token.END_OBJECT, parser.currentToken(), parser);
                    break;
                default:
                    parser.skipChildren();
                    break;
            }
        }
        return new AnomalyLocalizationInput(indexName, attributeFieldNames, aggregations, timeFieldName, startTime, endTime,
                minTimeInterval, numOutputs,
                anomalyStartTime, filterQuery);
    }