All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.opensearchserver.client.common.search.query.CollapsingParameters Maven / Gradle / Ivy

/**
 * Copyright 2014-2015 OpenSearchServer Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.opensearchserver.client.common.search.query;

import java.util.ArrayList;
import java.util.List;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlTransient;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;

@XmlAccessorType(XmlAccessType.FIELD)
@JsonInclude(Include.NON_EMPTY)
public class CollapsingParameters {

	public static enum ModeEnum {
		OFF, ADJACENT, CLUSTER;
	}

	public static enum TypeEnum {
		FULL, OPTIMIZED;
	}

	public static enum FunctionEnum {
		MIN, MAX, CONCAT, COUNT;
	}

	public String field;
	public Integer max;
	public ModeEnum mode;
	public TypeEnum type;
	public List functionFields;

	public CollapsingParameters() {
		field = null;
		max = null;
		mode = null;
		type = null;
		functionFields = null;
	}

	public CollapsingParameters setField(String field) {
		this.field = field;
		return this;
	}

	public CollapsingParameters setMax(Integer max) {
		this.max = max;
		return this;
	}

	public CollapsingParameters setMode(ModeEnum mode) {
		this.mode = mode;
		return this;
	}

	public CollapsingParameters setType(TypeEnum type) {
		this.type = type;
		return this;
	}

	@JsonIgnore
	@XmlTransient
	public CollapsingParameters addFunctionField(FunctionField functionField) {
		if (functionFields == null)
			functionFields = new ArrayList(1);
		functionFields.add(functionField);
		return this;
	}

	public CollapsingParameters setFunctionField(
			List functionFields) {
		this.functionFields = functionFields;
		return this;
	}

	@XmlAccessorType(XmlAccessType.FIELD)
	@JsonInclude(Include.NON_EMPTY)
	public static class FunctionField {

		public FunctionEnum function;
		public String field;

		public FunctionField() {
			function = null;
			field = null;
		}

		public FunctionField setFunction(FunctionEnum function) {
			this.function = function;
			return this;
		}

		public FunctionField setField(String field) {
			this.field = field;
			return this;
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy