package com.silverforge.elasticsearchrawclient.queryDSL.functions; import com.silverforge.elasticsearchrawclient.model.QueryTypeItem; import com.silverforge.elasticsearchrawclient.queryDSL.Constants; import com.silverforge.elasticsearchrawclient.definition.Scriptable; import com.silverforge.elasticsearchrawclient.queryDSL.generator.FunctionFactory; import com.silverforge.elasticsearchrawclient.utils.QueryTypeArrayList; public class ScriptScore extends BaseFunction { ScriptScore(QueryTypeArrayList<QueryTypeItem> queryBag) { super(queryBag); } public static Init<?> builder() { return new ScriptScoreBuilder(); } @Override public String getFunctionString() { return FunctionFactory .scriptScoreGenerator() .generate(queryBag); } public static class ScriptScoreBuilder extends Init<ScriptScoreBuilder> { @Override protected ScriptScoreBuilder self() { return this; } } public static abstract class Init<T extends Init<T>> extends BaseFunction.Init<T> { public T script(Scriptable scriptable) { queryBag.addItem(Constants.SCRIPT, scriptable); return self(); } public ScriptScore build() { return new ScriptScore(queryBag); } } }