@Override protected final ValuesSourceAggregatorFactory<VS, ?> doBuild(SearchContext context, AggregatorFactory<?> parent, AggregatorFactories.Builder subFactoriesBuilder) throws IOException { ValuesSourceConfig<VS> config = resolveConfig(context); ValuesSourceAggregatorFactory<VS, ?> factory = innerBuild(context, config, parent, subFactoriesBuilder); return factory; }
@Override protected final boolean doEquals(Object obj) { ValuesSourceAggregationBuilder<?, ?> other = (ValuesSourceAggregationBuilder<?, ?>) obj; if (!Objects.equals(field, other.field)) return false; if (!Objects.equals(format, other.format)) return false; if (!Objects.equals(missing, other.missing)) return false; if (!Objects.equals(script, other.script)) return false; if (!Objects.equals(targetValueType, other.targetValueType)) return false; if (!Objects.equals(timeZone, other.timeZone)) return false; if (!Objects.equals(valueType, other.valueType)) return false; if (!Objects.equals(valuesSourceType, other.valuesSourceType)) return false; return innerEquals(obj); }
@Override protected final int doHashCode() { return Objects.hash(field, format, missing, script, targetValueType, timeZone, valueType, valuesSourceType, innerHashCode()); }
if (kvValue.key != null && kvValue.key.equals("script")) { if (kvValue.value instanceof MethodField) { return builder.script(new Script(((MethodField) kvValue.value).getParams().get(1).toString())); } else { return builder.script(new Script(kvValue.value.toString())); return builder.script(new Script(kvValue.value.toString())); } else if (kvValue.key != null && (kvValue.key.equals("nested") || kvValue.key.equals("reverse_nested"))) { NestedType nestedType = (NestedType) kvValue.value; builder.field(nestedType.field); ChildrenType childrenType = (ChildrenType) kvValue.value; builder.field(childrenType.field); return builder.field(kvValue.toString());
/** * Read an aggregation from a stream that does not serialize its targetValueType. This should be used by most subclasses. */ protected ValuesSourceAggregationBuilder(StreamInput in, ValuesSourceType valuesSourceType, ValueType targetValueType) throws IOException { super(in); assert false == serializeTargetValueType() : "Wrong read constructor called for subclass that provides its targetValueType"; this.valuesSourceType = valuesSourceType; this.targetValueType = targetValueType; read(in); }
@Override protected final void doWriteTo(StreamOutput out) throws IOException { if (serializeTargetValueType()) { out.writeOptionalWriteable(targetValueType); } out.writeOptionalString(field); boolean hasScript = script != null; out.writeBoolean(hasScript); if (hasScript) { script.writeTo(out); } boolean hasValueType = valueType != null; out.writeBoolean(hasValueType); if (hasValueType) { valueType.writeTo(out); } out.writeOptionalString(format); out.writeGenericValue(missing); boolean hasTimeZone = timeZone != null; out.writeBoolean(hasTimeZone); if (hasTimeZone) { out.writeString(timeZone.getID()); } innerWriteTo(out); }
@Override public final XContentBuilder internalXContent(XContentBuilder builder, Params params) throws IOException { builder.startObject(); if (field != null) { builder.field("field", field); } if (script != null) { builder.field("script", script); } if (missing != null) { builder.field("missing", missing); } if (format != null) { builder.field("format", format); } if (timeZone != null) { builder.field("time_zone", timeZone.toString()); } if (valueType != null) { builder.field("value_type", valueType.getPreferredName()); } doXContentBody(builder, params); builder.endObject(); return builder; }
/** * Read an aggregation from a stream that serializes its targetValueType. This should only be used by subclasses that override * {@link #serializeTargetValueType()} to return true. */ protected ValuesSourceAggregationBuilder(StreamInput in, ValuesSourceType valuesSourceType) throws IOException { super(in); assert serializeTargetValueType() : "Wrong read constructor called for subclass that serializes its targetValueType"; this.valuesSourceType = valuesSourceType; this.targetValueType = in.readOptionalWriteable(ValueType::readFromStream); read(in); }
@Override protected final void doWriteTo(StreamOutput out) throws IOException { if (serializeTargetValueType()) { out.writeOptionalWriteable(targetValueType); } out.writeOptionalString(field); boolean hasScript = script != null; out.writeBoolean(hasScript); if (hasScript) { script.writeTo(out); } boolean hasValueType = valueType != null; out.writeBoolean(hasValueType); if (hasValueType) { valueType.writeTo(out); } out.writeOptionalString(format); out.writeGenericValue(missing); boolean hasTimeZone = timeZone != null; out.writeBoolean(hasTimeZone); if (hasTimeZone) { out.writeString(timeZone.getID()); } innerWriteTo(out); }
protected void randomFieldOrScript(ValuesSourceAggregationBuilder<?, ?> factory, String field) { int choice = randomInt(2); switch (choice) { case 0: factory.field(field); break; case 1: factory.field(field); factory.script(mockScript("_value + 1")); break; case 2: factory.script(mockScript("doc[" + field + "] + 1")); break; default: throw new AssertionError("Unknow random operation [" + choice + "]"); } } }
@Override public final XContentBuilder internalXContent(XContentBuilder builder, Params params) throws IOException { builder.startObject(); if (field != null) { builder.field("field", field); } if (script != null) { builder.field("script", script); } if (missing != null) { builder.field("missing", missing); } if (format != null) { builder.field("format", format); } if (timeZone != null) { builder.field("time_zone", timeZone); } if (valueType != null) { builder.field("value_type", valueType.getPreferredName()); } doXContentBody(builder, params); builder.endObject(); return builder; }
/** * Read an aggregation from a stream that does not serialize its targetValueType. This should be used by most subclasses. */ protected ValuesSourceAggregationBuilder(StreamInput in, ValuesSourceType valuesSourceType, ValueType targetValueType) throws IOException { super(in); assert false == serializeTargetValueType() : "Wrong read constructor called for subclass that provides its targetValueType"; this.valuesSourceType = valuesSourceType; this.targetValueType = targetValueType; read(in); }
@Override protected final ValuesSourceAggregatorFactory<VS, ?> doBuild(SearchContext context, AggregatorFactory<?> parent, AggregatorFactories.Builder subFactoriesBuilder) throws IOException { ValuesSourceConfig<VS> config = resolveConfig(context); ValuesSourceAggregatorFactory<VS, ?> factory = innerBuild(context, config, parent, subFactoriesBuilder); return factory; }
@Override protected final void doWriteTo(StreamOutput out) throws IOException { if (serializeTargetValueType()) { out.writeOptionalWriteable(targetValueType); } out.writeOptionalString(field); boolean hasScript = script != null; out.writeBoolean(hasScript); if (hasScript) { script.writeTo(out); } boolean hasValueType = valueType != null; out.writeBoolean(hasValueType); if (hasValueType) { valueType.writeTo(out); } out.writeOptionalString(format); out.writeGenericValue(missing); boolean hasTimeZone = timeZone != null; out.writeBoolean(hasTimeZone); if (hasTimeZone) { out.writeString(timeZone.getID()); } innerWriteTo(out); }
if (kvValue.key != null && kvValue.key.equals("script")) { if (kvValue.value instanceof MethodField) { return builder.script(new Script(((MethodField) kvValue.value).getParams().get(1).toString())); } else { return builder.script(new Script(kvValue.value.toString())); return builder.script(new Script(kvValue.value.toString())); } else if (kvValue.key != null && (kvValue.key.equals("nested") || kvValue.key.equals("reverse_nested"))) { NestedType nestedType = (NestedType) kvValue.value; builder.field(nestedType.field); ChildrenType childrenType = (ChildrenType) kvValue.value; builder.field(childrenType.field); return builder.field(kvValue.toString());
@Override protected final int doHashCode() { return Objects.hash(field, format, missing, script, targetValueType, timeZone, valueType, valuesSourceType, innerHashCode()); }
@Override protected final boolean doEquals(Object obj) { ValuesSourceAggregationBuilder<?, ?> other = (ValuesSourceAggregationBuilder<?, ?>) obj; if (!Objects.equals(field, other.field)) return false; if (!Objects.equals(format, other.format)) return false; if (!Objects.equals(missing, other.missing)) return false; if (!Objects.equals(script, other.script)) return false; if (!Objects.equals(targetValueType, other.targetValueType)) return false; if (!Objects.equals(timeZone, other.timeZone)) return false; if (!Objects.equals(valueType, other.valueType)) return false; if (!Objects.equals(valuesSourceType, other.valuesSourceType)) return false; return innerEquals(obj); }
@Override public final XContentBuilder internalXContent(XContentBuilder builder, Params params) throws IOException { builder.startObject(); if (field != null) { builder.field("field", field); } if (script != null) { builder.field("script", script); } if (missing != null) { builder.field("missing", missing); } if (format != null) { builder.field("format", format); } if (timeZone != null) { builder.field("time_zone", timeZone.toString()); } if (valueType != null) { builder.field("value_type", valueType.getPreferredName()); } doXContentBody(builder, params); builder.endObject(); return builder; }
/** * Read an aggregation from a stream that does not serialize its targetValueType. This should be used by most subclasses. */ protected ValuesSourceAggregationBuilder(StreamInput in, ValuesSourceType valuesSourceType, ValueType targetValueType) throws IOException { super(in); assert false == serializeTargetValueType() : "Wrong read constructor called for subclass that provides its targetValueType"; this.valuesSourceType = valuesSourceType; this.targetValueType = targetValueType; read(in); }
@Override protected final ValuesSourceAggregatorFactory<VS, ?> doBuild(SearchContext context, AggregatorFactory<?> parent, AggregatorFactories.Builder subFactoriesBuilder) throws IOException { ValuesSourceConfig<VS> config = resolveConfig(context); ValuesSourceAggregatorFactory<VS, ?> factory = innerBuild(context, config, parent, subFactoriesBuilder); return factory; }