Module org.elasticsearch.xcontent
Package org.elasticsearch.xcontent
Class InstantiatingObjectParser.Builder<Value,Context>
java.lang.Object
org.elasticsearch.xcontent.AbstractObjectParser<Value,Context>
org.elasticsearch.xcontent.InstantiatingObjectParser.Builder<Value,Context>
- Enclosing class:
- InstantiatingObjectParser<Value,
Context>
public static class InstantiatingObjectParser.Builder<Value,Context>
extends AbstractObjectParser<Value,Context>
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbuild()
void
declareExclusiveFieldSet
(String... exclusiveSet) Declares a set of fields of which at most one must appear for parsing to succeed E.g.<T> void
declareField
(BiConsumer<Value, T> consumer, ContextParser<Context, T> parser, ParseField parseField, ObjectParser.ValueType type) Declare some field.<T> void
declareNamedObject
(BiConsumer<Value, T> consumer, ObjectParser.NamedObjectParser<T, Context> namedObjectParser, ParseField parseField) Declares a single named object.<T> void
declareNamedObjects
(BiConsumer<Value, List<T>> consumer, ObjectParser.NamedObjectParser<T, Context> namedObjectParser, Consumer<Value> orderedModeCallback, ParseField parseField) Declares named objects in the style of highlighting's field element.<T> void
declareNamedObjects
(BiConsumer<Value, List<T>> consumer, ObjectParser.NamedObjectParser<T, Context> namedObjectParser, ParseField parseField) Declares named objects in the style of aggregations.void
declareRequiredFieldSet
(String... requiredSet) Declares a set of fields that are required for parsing to succeed.getName()
Methods inherited from class org.elasticsearch.xcontent.AbstractObjectParser
declareBoolean, declareDouble, declareDoubleArray, declareDoubleOrNull, declareField, declareFieldArray, declareFloat, declareFloatArray, declareFloatOrNull, declareInt, declareIntArray, declareIntOrNull, declareLong, declareLongArray, declareLongOrNull, declareObject, declareObjectArray, declareObjectArrayOrNull, declareObjectOrNull, declareString, declareString, declareStringArray, declareStringOrNull, parseArray
-
Constructor Details
-
Builder
-
Builder
-
-
Method Details
-
build
-
declareField
public <T> void declareField(BiConsumer<Value, T> consumer, ContextParser<Context, T> parser, ParseField parseField, ObjectParser.ValueType type) Description copied from class:AbstractObjectParser
Declare some field. Usually it is easier to useAbstractObjectParser.declareString(BiConsumer, ParseField)
orAbstractObjectParser.declareObject(BiConsumer, ContextParser, ParseField)
rather than call this directly.- Specified by:
declareField
in classAbstractObjectParser<Value,
Context>
-
declareNamedObject
public <T> void declareNamedObject(BiConsumer<Value, T> consumer, ObjectParser.NamedObjectParser<T, Context> namedObjectParser, ParseField parseField) Description copied from class:AbstractObjectParser
Declares a single named object.{ "object_name": { "instance_name": { "field1": "value1", ... } } } }
- Specified by:
declareNamedObject
in classAbstractObjectParser<Value,
Context> - Parameters:
consumer
- sets the value once it has been parsednamedObjectParser
- parses the named objectparseField
- the field to parse
-
declareNamedObjects
public <T> void declareNamedObjects(BiConsumer<Value, List<T>> consumer, ObjectParser.NamedObjectParser<T, Context> namedObjectParser, ParseField parseField) Description copied from class:AbstractObjectParser
Declares named objects in the style of aggregations. These are named inside and object like this:{ "aggregations": { "name_1": { "aggregation_type": {} }, "name_2": { "aggregation_type": {} }, "name_3": { "aggregation_type": {} } } } }
- Specified by:
declareNamedObjects
in classAbstractObjectParser<Value,
Context> - Parameters:
consumer
- sets the values once they have been parsednamedObjectParser
- parses each named objectparseField
- the field to parse
-
declareNamedObjects
public <T> void declareNamedObjects(BiConsumer<Value, List<T>> consumer, ObjectParser.NamedObjectParser<T, Context> namedObjectParser, Consumer<Value> orderedModeCallback, ParseField parseField) Description copied from class:AbstractObjectParser
Declares named objects in the style of highlighting's field element. These are usually named inside and object like this:{ "highlight": { "fields": { <------ this one "title": {}, "body": {}, "category": {} } } }
{ "highlight": { "fields": [ <------ this one {"title": {}}, {"body": {}}, {"category": {}} ] } }
- Specified by:
declareNamedObjects
in classAbstractObjectParser<Value,
Context> - Parameters:
consumer
- sets the values once they have been parsednamedObjectParser
- parses each named objectorderedModeCallback
- called when the named object is parsed using the "ordered" mode (the array of objects)parseField
- the field to parse
-
getName
- Specified by:
getName
in classAbstractObjectParser<Value,
Context>
-
declareRequiredFieldSet
Description copied from class:AbstractObjectParser
Declares a set of fields that are required for parsing to succeed. Only one of the values provided per String[] must be matched. E.g.declareRequiredFieldSet("foo", "bar");
means at least one of "foo" or "bar" fields must be present. If neither of those fields are present, an exception will be thrown. Multiple required sets can be configured:
requires that one of "foo" or "bar" fields are present, and also that one of "bizz" or "buzz" fields are present. In JSON, it means any of these combinations are acceptable:parser.declareRequiredFieldSet("foo", "bar"); parser.declareRequiredFieldSet("bizz", "buzz");
{"foo":"...", "bizz": "..."}
{"bar":"...", "bizz": "..."}
{"foo":"...", "buzz": "..."}
{"bar":"...", "buzz": "..."}
{"foo":"...", "bar":"...", "bizz": "..."}
{"foo":"...", "bar":"...", "buzz": "..."}
{"foo":"...", "bizz":"...", "buzz": "..."}
{"bar":"...", "bizz":"...", "buzz": "..."}
{"foo":"...", "bar":"...", "bizz": "...", "buzz": "..."}
failure cases Provided JSON Reason for failure {"foo":"..."}
Missing "bizz" or "buzz" field {"bar":"..."}
Missing "bizz" or "buzz" field {"bizz": "..."}
Missing "foo" or "bar" field {"buzz": "..."}
Missing "foo" or "bar" field {"foo":"...", "bar": "..."}
Missing "bizz" or "buzz" field {"bizz":"...", "buzz": "..."}
Missing "foo" or "bar" field {"unrelated":"..."}
Missing "foo" or "bar" field, and missing "bizz" or "buzz" field - Specified by:
declareRequiredFieldSet
in classAbstractObjectParser<Value,
Context> - Parameters:
requiredSet
- A set of required fields, where at least one of the fields in the array _must_ be present
-
declareExclusiveFieldSet
Description copied from class:AbstractObjectParser
Declares a set of fields of which at most one must appear for parsing to succeed E.g.declareExclusiveFieldSet("foo", "bar");
means that only one of 'foo' or 'bar' must be present, and if both appear then an exception will be thrown. Note that this does not make 'foo' or 'bar' required - seeAbstractObjectParser.declareRequiredFieldSet(String...)
for required fields. Multiple exclusive sets may be declared- Specified by:
declareExclusiveFieldSet
in classAbstractObjectParser<Value,
Context> - Parameters:
exclusiveSet
- a set of field names, at most one of which must appear
-