summaryrefslogtreecommitdiff
path: root/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/InternalPercentilesBucket.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/InternalPercentilesBucket.java')
-rw-r--r--core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/InternalPercentilesBucket.java61
1 files changed, 22 insertions, 39 deletions
diff --git a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/InternalPercentilesBucket.java b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/InternalPercentilesBucket.java
index badbb9411a..059d72a8e1 100644
--- a/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/InternalPercentilesBucket.java
+++ b/core/src/main/java/org/elasticsearch/search/aggregations/pipeline/bucketmetrics/percentile/InternalPercentilesBucket.java
@@ -23,7 +23,6 @@ import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput;
import org.elasticsearch.common.xcontent.XContentBuilder;
import org.elasticsearch.search.DocValueFormat;
-import org.elasticsearch.search.aggregations.AggregationStreams;
import org.elasticsearch.search.aggregations.InternalAggregation;
import org.elasticsearch.search.aggregations.metrics.InternalNumericMetricsAggregation;
import org.elasticsearch.search.aggregations.metrics.max.InternalMax;
@@ -38,28 +37,9 @@ import java.util.List;
import java.util.Map;
public class InternalPercentilesBucket extends InternalNumericMetricsAggregation.MultiValue implements PercentilesBucket {
-
- public static final Type TYPE = new Type("percentiles_bucket");
-
- public static final AggregationStreams.Stream STREAM = new AggregationStreams.Stream() {
- @Override
- public InternalPercentilesBucket readResult(StreamInput in) throws IOException {
- InternalPercentilesBucket result = new InternalPercentilesBucket();
- result.readFrom(in);
- return result;
- }
- };
-
- public static void registerStreams() {
- AggregationStreams.registerStream(STREAM, TYPE.stream());
- }
-
private double[] percentiles;
private double[] percents;
- protected InternalPercentilesBucket() {
- } // for serialization
-
public InternalPercentilesBucket(String name, double[] percents, double[] percentiles,
DocValueFormat formatter, List<PipelineAggregator> pipelineAggregators,
Map<String, Object> metaData) {
@@ -69,6 +49,28 @@ public class InternalPercentilesBucket extends InternalNumericMetricsAggregation
this.percents = percents;
}
+ /**
+ * Read from a stream.
+ */
+ public InternalPercentilesBucket(StreamInput in) throws IOException {
+ super(in);
+ format = in.readNamedWriteable(DocValueFormat.class);
+ percentiles = in.readDoubleArray();
+ percents = in.readDoubleArray();
+ }
+
+ @Override
+ protected void doWriteTo(StreamOutput out) throws IOException {
+ out.writeNamedWriteable(format);
+ out.writeDoubleArray(percentiles);
+ out.writeDoubleArray(percents);
+ }
+
+ @Override
+ public String getWriteableName() {
+ return PercentilesBucketPipelineAggregationBuilder.NAME;
+ }
+
@Override
public double percentile(double percent) throws IllegalArgumentException {
int index = Arrays.binarySearch(percents, percent);
@@ -95,30 +97,11 @@ public class InternalPercentilesBucket extends InternalNumericMetricsAggregation
}
@Override
- public Type type() {
- return TYPE;
- }
-
- @Override
public InternalMax doReduce(List<InternalAggregation> aggregations, ReduceContext reduceContext) {
throw new UnsupportedOperationException("Not supported");
}
@Override
- protected void doReadFrom(StreamInput in) throws IOException {
- format = in.readNamedWriteable(DocValueFormat.class);
- percentiles = in.readDoubleArray();
- percents = in.readDoubleArray();
- }
-
- @Override
- protected void doWriteTo(StreamOutput out) throws IOException {
- out.writeNamedWriteable(format);
- out.writeDoubleArray(percentiles);
- out.writeDoubleArray(percents);
- }
-
- @Override
public XContentBuilder doXContentBody(XContentBuilder builder, Params params) throws IOException {
builder.startObject("values");
for (double percent : percents) {