/** Read from a stream. */ public ScriptSortBuilder(StreamInput in) throws IOException { script = new Script(in); type = ScriptSortType.readFromStream(in); order = SortOrder.readFromStream(in); sortMode = in.readOptionalWriteable(SortMode::readFromStream); nestedPath = in.readOptionalString(); nestedFilter = in.readOptionalNamedWriteable(QueryBuilder.class); }
@Override public void writeTo(StreamOutput out) throws IOException { script.writeTo(out); type.writeTo(out); order.writeTo(out); out.writeOptionalWriteable(sortMode); out.writeOptionalString(nestedPath); out.writeOptionalNamedWriteable(nestedFilter); }
static { PARSER.declareField( constructorArg(), Script::parse, ScriptField.SCRIPT, ValueType.OBJECT_OR_STRING); PARSER.declareField( constructorArg(), p -> ScriptSortType.fromString(p.text()), TYPE_FIELD, ValueType.STRING); PARSER.declareString((b, v) -> b.order(SortOrder.fromString(v)), ORDER_FIELD); PARSER.declareString((b, v) -> b.sortMode(SortMode.fromString(v)), SORTMODE_FIELD); PARSER.declareString(ScriptSortBuilder::setNestedPath, NESTED_PATH_FIELD); PARSER.declareObject( ScriptSortBuilder::setNestedFilter, SortBuilder::parseNestedFilter, NESTED_FILTER_FIELD); }