/** * this parsing method assumes that the leading "suggest" field name has already been parsed by the caller */ public static Suggest fromXContent(XContentParser parser) throws IOException { ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.currentToken(), parser::getTokenLocation); List<Suggestion<? extends Entry<? extends Option>>> suggestions = new ArrayList<>(); while ((parser.nextToken()) != XContentParser.Token.END_OBJECT) { ensureExpectedToken(XContentParser.Token.FIELD_NAME, parser.currentToken(), parser::getTokenLocation); String currentField = parser.currentName(); ensureExpectedToken(XContentParser.Token.START_ARRAY, parser.nextToken(), parser::getTokenLocation); Suggestion<? extends Entry<? extends Option>> suggestion = Suggestion.fromXContent(parser); if (suggestion != null) { suggestions.add(suggestion); } else { throw new ParsingException(parser.getTokenLocation(), String.format(Locale.ROOT, "Could not parse suggestion keyed as [%s]", currentField)); } } return new Suggest(suggestions); }
/** * this parsing method assumes that the leading "suggest" field name has already been parsed by the caller */ public static Suggest fromXContent(XContentParser parser) throws IOException { ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.currentToken(), parser::getTokenLocation); List<Suggestion<? extends Entry<? extends Option>>> suggestions = new ArrayList<>(); while ((parser.nextToken()) != XContentParser.Token.END_OBJECT) { suggestions.add(Suggestion.fromXContent(parser)); } return new Suggest(suggestions); }
/** * this parsing method assumes that the leading "suggest" field name has already been parsed by the caller */ public static Suggest fromXContent(XContentParser parser) throws IOException { ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.currentToken(), parser::getTokenLocation); List<Suggestion<? extends Entry<? extends Option>>> suggestions = new ArrayList<>(); while ((parser.nextToken()) != XContentParser.Token.END_OBJECT) { ensureExpectedToken(XContentParser.Token.FIELD_NAME, parser.currentToken(), parser::getTokenLocation); String currentField = parser.currentName(); ensureExpectedToken(XContentParser.Token.START_ARRAY, parser.nextToken(), parser::getTokenLocation); Suggestion<? extends Entry<? extends Option>> suggestion = Suggestion.fromXContent(parser); if (suggestion != null) { suggestions.add(suggestion); } else { throw new ParsingException(parser.getTokenLocation(), String.format(Locale.ROOT, "Could not parse suggestion keyed as [%s]", currentField)); } } return new Suggest(suggestions); }
/** * this parsing method assumes that the leading "suggest" field name has already been parsed by the caller */ public static Suggest fromXContent(XContentParser parser) throws IOException { ensureExpectedToken(XContentParser.Token.START_OBJECT, parser.currentToken(), parser::getTokenLocation); List<Suggestion<? extends Entry<? extends Option>>> suggestions = new ArrayList<>(); while ((parser.nextToken()) != XContentParser.Token.END_OBJECT) { ensureExpectedToken(XContentParser.Token.FIELD_NAME, parser.currentToken(), parser::getTokenLocation); String currentField = parser.currentName(); ensureExpectedToken(XContentParser.Token.START_ARRAY, parser.nextToken(), parser::getTokenLocation); Suggestion<? extends Entry<? extends Option>> suggestion = Suggestion.fromXContent(parser); if (suggestion != null) { suggestions.add(suggestion); } else { throw new ParsingException(parser.getTokenLocation(), String.format(Locale.ROOT, "Could not parse suggestion keyed as [%s]", currentField)); } } return new Suggest(suggestions); }