2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright © 2017 AT&T Intellectual Property.
6 * Copyright © 2017 Amdocs
8 * ================================================================================
9 * Licensed under the Apache License, Version 2.0 (the "License");
10 * you may not use this file except in compliance with the License.
11 * You may obtain a copy of the License ati
13 * http://www.apache.org/licenses/LICENSE-2.0
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS,
17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 * ============LICENSE_END=========================================================
22 * ECOMP and OpenECOMP are trademarks
23 * and service marks of AT&T Intellectual Property.
25 package org.openecomp.sa.searchdbabstraction.searchapi;
27 import com.fasterxml.jackson.annotation.JsonProperty;
30 * An example of a date_range aggregation:
40 * { "to": "now-10M/M" },
41 * { "from": "now-10M/M" }
51 public class DateRangeAggregation extends AbstractAggregation {
54 private String format;
56 @JsonProperty("ranges")
57 private DateRange[] dateRanges;
60 public String getFormat() {
64 public void setFormat(String format) {
68 public DateRange[] getDateRanges() {
72 public void setDateRanges(DateRange[] dateRanges) {
73 this.dateRanges = dateRanges;
77 public String toElasticSearch() {
78 StringBuilder sb = new StringBuilder();
80 sb.append("\"date_range\": {\"field\": \"");
85 sb.append(", \"format\": \"");
90 if (dateRanges != null && dateRanges.length > 0) {
91 sb.append(", \"ranges\": [");
93 for (int i = 0; i < dateRanges.length; i++) {
97 sb.append(dateRanges[i].toElasticSearch());
104 sb.append(", \"size\": ");
108 if (minThreshold != null) {
109 sb.append(", \"min_doc_count\": ").append(minThreshold);
114 return sb.toString();
118 public String toString() {
119 StringBuffer sb = new StringBuffer();
120 sb.append("date-range: {field: " + field + ", format: " + format + ", size: " + size
121 + ", minThreshold: " + minThreshold + "ranges: [");
122 for (int i = 0; i < dateRanges.length; i++) {
126 sb.append(dateRanges[i].toString());
130 return sb.toString();