Skip to content

Commit c6d96d3

Browse files
committed
refactor(Discovery v1): Support aggregation deserialization inside of the QueryAggregation class
1 parent 503a462 commit c6d96d3

1 file changed

Lines changed: 22 additions & 8 deletions

File tree

discovery/src/main/java/com/ibm/watson/discovery/v1/model/QueryAggregation.java

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* (C) Copyright IBM Corp. 2019.
2+
* (C) Copyright IBM Corp. 2020.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
55
* the License. You may obtain a copy of the License at
@@ -14,22 +14,36 @@
1414

1515
import java.util.List;
1616

17-
import com.google.gson.annotations.JsonAdapter;
1817
import com.google.gson.annotations.SerializedName;
1918
import com.ibm.cloud.sdk.core.service.model.GenericModel;
20-
import com.ibm.watson.discovery.v1.query.AggregationDeserializer;
2119

2220
/**
2321
* An aggregation produced by Discovery to analyze the input provided.
2422
*/
25-
@JsonAdapter(AggregationDeserializer.class)
2623
public class QueryAggregation extends GenericModel {
24+
@SuppressWarnings("unused")
25+
protected static String discriminatorPropertyName = "type";
26+
protected static java.util.Map<String, Class<?>> discriminatorMapping;
27+
static {
28+
discriminatorMapping = new java.util.HashMap<>();
29+
discriminatorMapping.put("histogram", Histogram.class);
30+
discriminatorMapping.put("max", Calculation.class);
31+
discriminatorMapping.put("min", Calculation.class);
32+
discriminatorMapping.put("average", Calculation.class);
33+
discriminatorMapping.put("sum", Calculation.class);
34+
discriminatorMapping.put("unique_count", Calculation.class);
35+
discriminatorMapping.put("term", Term.class);
36+
discriminatorMapping.put("filter", Filter.class);
37+
discriminatorMapping.put("nested", Nested.class);
38+
discriminatorMapping.put("timeslice", Timeslice.class);
39+
discriminatorMapping.put("top_hits", TopHits.class);
40+
}
2741

28-
private String type;
29-
private List<AggregationResult> results;
42+
protected String type;
43+
protected List<AggregationResult> results;
3044
@SerializedName("matching_results")
31-
private Long matchingResults;
32-
private List<QueryAggregation> aggregations;
45+
protected Long matchingResults;
46+
protected List<QueryAggregation> aggregations;
3347

3448
/**
3549
* Gets the type.

0 commit comments

Comments
 (0)