package com.silverforge.elasticsearchrawclient.queryDSL.functions; import com.silverforge.elasticsearchrawclient.exceptions.MandatoryParametersAreMissingException; import com.silverforge.elasticsearchrawclient.model.QueryTypeItem; import com.silverforge.elasticsearchrawclient.queryDSL.Constants; import com.silverforge.elasticsearchrawclient.queryDSL.generator.FunctionFactory; import com.silverforge.elasticsearchrawclient.utils.QueryTypeArrayList; public class Gauss extends BaseFunction { Gauss(QueryTypeArrayList<QueryTypeItem> queryBag) { super(queryBag); } @Override public String getFunctionString() { return FunctionFactory .gaussGenerator() .generate(queryBag); } public static Init<?> builder() { return new GaussBuilder(); } public static class GaussBuilder extends Init<GaussBuilder> { @Override protected GaussBuilder self() { return this; } } public abstract static class Init<T extends Init<T>> extends DecayFunction.Init<T> { public Gauss build() throws MandatoryParametersAreMissingException { if (!queryBag.containsKey(Constants.FIELD_NAME)) throw new MandatoryParametersAreMissingException(Constants.FIELD_NAME); if (!queryBag.containsKey(Constants.ORIGIN)) throw new MandatoryParametersAreMissingException(Constants.ORIGIN); if (!queryBag.containsKey(Constants.SCALE)) throw new MandatoryParametersAreMissingException(Constants.SCALE); return new Gauss(queryBag); } } }