diff options
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search')
79 files changed, 189 insertions, 229 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/Query.java b/container-search/src/main/java/com/yahoo/search/Query.java index 3227b047984..4ec3fa358d2 100644 --- a/container-search/src/main/java/com/yahoo/search/Query.java +++ b/container-search/src/main/java/com/yahoo/search/Query.java @@ -772,7 +772,7 @@ public class Query extends com.yahoo.processing.Request implements Cloneable { private String serializeSortingAndLimits(boolean includeHitsAndOffset) { StringBuilder insert = new StringBuilder(); - if (getRanking().getSorting() != null && getRanking().getSorting().fieldOrders().size() > 0) { + if (getRanking().getSorting() != null && !getRanking().getSorting().fieldOrders().isEmpty()) { serializeSorting(insert); } if (includeHitsAndOffset) { diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/InvokerResult.java b/container-search/src/main/java/com/yahoo/search/dispatch/InvokerResult.java index 88d6b68a610..9c41c0b930f 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/InvokerResult.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/InvokerResult.java @@ -7,7 +7,6 @@ import com.yahoo.search.Result; import com.yahoo.search.query.Sorting; import java.util.ArrayList; -import java.util.Collections; import java.util.List; /** @@ -22,7 +21,7 @@ public class InvokerResult { public InvokerResult(Result result) { this.result = result; - this.leanHits = Collections.emptyList(); + this.leanHits = List.of(); } public InvokerResult(Query query, int expectedHits) { @@ -54,7 +53,8 @@ public class InvokerResult { fh.setCached(false); result.hits().add(fh); } - leanHits.clear(); + if (!leanHits.isEmpty()) + leanHits.clear(); } } diff --git a/container-search/src/main/java/com/yahoo/search/dispatch/SearchPath.java b/container-search/src/main/java/com/yahoo/search/dispatch/SearchPath.java index 9302ce5b7c6..add562bd5ad 100644 --- a/container-search/src/main/java/com/yahoo/search/dispatch/SearchPath.java +++ b/container-search/src/main/java/com/yahoo/search/dispatch/SearchPath.java @@ -8,7 +8,6 @@ import com.yahoo.search.dispatch.searchcluster.Node; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Optional; @@ -163,7 +162,7 @@ public class SearchPath { nodes = parseNodeRange(nodes, ret); } else { if (isWildcard(nodes)) { // any node will be accepted - return Collections.emptyList(); + return List.of(); } nodes = parseNodeNum(nodes, ret); } @@ -231,7 +230,7 @@ public class SearchPath { public Collection<Integer> matches(int max) { if (from >= max) { - return Collections.emptyList(); + return List.of(); } int end = Math.min(to, max); return IntStream.range(from, end).boxed().toList(); diff --git a/container-search/src/main/java/com/yahoo/search/grouping/GroupingQueryParser.java b/container-search/src/main/java/com/yahoo/search/grouping/GroupingQueryParser.java index 3ad610f6ee0..da0b258d6ef 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/GroupingQueryParser.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/GroupingQueryParser.java @@ -15,7 +15,6 @@ import com.yahoo.search.query.Select; import com.yahoo.search.searchchain.Execution; import com.yahoo.search.searchchain.PhaseNames; -import java.util.Collections; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; @@ -83,7 +82,7 @@ public class GroupingQueryParser extends Searcher { private List<Continuation> getContinuations(String param) { if (param == null) { - return Collections.emptyList(); + return List.of(); } List<Continuation> ret = new LinkedList<>(); for (String str : param.split(" ")) { diff --git a/container-search/src/main/java/com/yahoo/search/grouping/UniqueGroupingSearcher.java b/container-search/src/main/java/com/yahoo/search/grouping/UniqueGroupingSearcher.java index 6d2b416700a..e319740f741 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/UniqueGroupingSearcher.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/UniqueGroupingSearcher.java @@ -27,7 +27,6 @@ import com.yahoo.search.searchchain.Execution; import com.yahoo.search.searchchain.PhaseNames; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.logging.Logger; @@ -188,7 +187,7 @@ public class UniqueGroupingSearcher extends Searcher { private static List<Hit> getRequestedHits(GroupList resultGroups, int offset, int hits) { List<Hit> receivedHits = getAllHitsFromGroupingResult(resultGroups); if (receivedHits.size() <= offset) { - return Collections.emptyList(); // There weren't any hits as far out as requested. + return List.of(); // There weren't any hits as far out as requested. } int lastRequestedHit = Math.min(offset + hits, receivedHits.size()); return receivedHits.subList(offset, lastRequestedHit); diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/DateFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/DateFunction.java index 3c152f00c66..f911b695853 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/DateFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/DateFunction.java @@ -1,8 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; -import java.util.stream.Collectors; +import java.util.List; /** * This class represents a timestamp-formatter function in a {@link GroupingExpression}. It evaluates to a string on the @@ -23,14 +22,12 @@ public class DateFunction extends FunctionNode { } private DateFunction(String label, Integer level, GroupingExpression exp) { - super("time.date", label, level, Arrays.asList(exp)); + super("time.date", label, level, List.of(exp)); } @Override public DateFunction copy() { - return new DateFunction(getLabel(), - getLevelOrNull(), - getArg(0).copy()); + return new DateFunction(getLabel(), getLevelOrNull(), getArg(0).copy()); } } diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfMonthFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfMonthFunction.java index c9639b4ea71..654e969221b 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfMonthFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfMonthFunction.java @@ -1,8 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; -import java.util.stream.Collectors; +import java.util.List; /** * This class represents a day-of-month timestamp-function in a {@link GroupingExpression}. It evaluates to a long that @@ -23,14 +22,12 @@ public class DayOfMonthFunction extends FunctionNode { } private DayOfMonthFunction(String label, Integer level, GroupingExpression exp) { - super("time.dayofmonth", label, level, Arrays.asList(exp)); + super("time.dayofmonth", label, level, List.of(exp)); } @Override public DayOfMonthFunction copy() { - return new DayOfMonthFunction(getLabel(), - getLevelOrNull(), - getArg(0).copy()); + return new DayOfMonthFunction(getLabel(), getLevelOrNull(), getArg(0).copy()); } } diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfWeekFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfWeekFunction.java index 644f16a4d17..7b91ab34115 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfWeekFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfWeekFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * This class represents a day-of-week timestamp-function in a {@link GroupingExpression}. It evaluates to a long that @@ -22,14 +22,12 @@ public class DayOfWeekFunction extends FunctionNode { } private DayOfWeekFunction(String label, Integer level, GroupingExpression exp) { - super("time.dayofweek", label, level, Arrays.asList(exp)); + super("time.dayofweek", label, level, List.of(exp)); } @Override public DayOfWeekFunction copy() { - return new DayOfWeekFunction(getLabel(), - getLevelOrNull(), - getArg(0).copy()); + return new DayOfWeekFunction(getLabel(), getLevelOrNull(), getArg(0).copy()); } } diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfYearFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfYearFunction.java index f45a7724794..9f7ff969e49 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfYearFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/DayOfYearFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * This class represents a day-of-year timestamp-function in a {@link GroupingExpression}. It evaluates to a long that @@ -22,14 +22,12 @@ public class DayOfYearFunction extends FunctionNode { } private DayOfYearFunction(String label, Integer level, GroupingExpression exp) { - super("time.dayofyear", label, level, Arrays.asList(exp)); + super("time.dayofyear", label, level, List.of(exp)); } @Override public DayOfYearFunction copy() { - return new DayOfYearFunction(getLabel(), - getLevelOrNull(), - getArg(0).copy()); + return new DayOfYearFunction(getLabel(), getLevelOrNull(), getArg(0).copy()); } } diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/DebugWaitFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/DebugWaitFunction.java index 482d6fe93ce..1477d125847 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/DebugWaitFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/DebugWaitFunction.java @@ -1,8 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; -import java.util.stream.Collectors; +import java.util.List; /** * This class represents debug_wait function in a {@link GroupingExpression}. For each hit evaluated, @@ -25,7 +24,7 @@ public class DebugWaitFunction extends FunctionNode { } private DebugWaitFunction(String label, Integer level, GroupingExpression arg1, DoubleValue arg2, BooleanValue arg3) { - super("debugwait", label, level, Arrays.asList(arg1, arg2, arg3)); + super("debugwait", label, level, List.of(arg1, arg2, arg3)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/FixedWidthFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/FixedWidthFunction.java index 04f6d155699..6e0b721a584 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/FixedWidthFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/FixedWidthFunction.java @@ -1,7 +1,8 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; + +import java.util.List; /** * This class represents a fixed-width bucket-function in a {@link GroupingExpression}. It maps the input into the given @@ -23,7 +24,7 @@ public class FixedWidthFunction extends FunctionNode { } private FixedWidthFunction(String label, Integer level, GroupingExpression exp, ConstantValue width) { - super("fixedwidth", label, level, Arrays.asList(exp, width)); + super("fixedwidth", label, level, List.of(exp, width)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/FunctionNode.java b/container-search/src/main/java/com/yahoo/search/grouping/request/FunctionNode.java index c1d86ed3059..d2be51c074b 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/FunctionNode.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/FunctionNode.java @@ -66,12 +66,12 @@ public abstract class FunctionNode extends GroupingExpression implements Iterabl @SuppressWarnings("unchecked") protected static <T> List<T> asList(T arg1, T... argN) { - return asList(Arrays.asList(arg1), Arrays.asList(argN)); + return asList(List.of(arg1), List.of(argN)); } @SuppressWarnings("unchecked") protected static <T> List<T> asList(T arg1, T arg2, T... argN) { - return asList(Arrays.asList(arg1, arg2), Arrays.asList(argN)); + return asList(List.of(arg1, arg2), List.of(argN)); } protected static <T> List<T> asList(List<T> foo, List<T> bar) { diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingOperation.java b/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingOperation.java index b6fc0ffb968..fe49b46fc6f 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingOperation.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingOperation.java @@ -537,12 +537,7 @@ public abstract class GroupingOperation extends GroupingNode { } else if (level == 1) { return "single group"; } else { - StringBuilder ret = new StringBuilder(); - for (int i = 1; i < level; ++i) { - ret.append("list of "); - } - ret.append("groups"); - return ret.toString(); + return "list of ".repeat(level - 1) + "groups"; } } @@ -571,8 +566,8 @@ public abstract class GroupingOperation extends GroupingNode { * @throws IllegalArgumentException thrown if the string could not be parsed */ public static List<GroupingOperation> fromStringAsList(String string) { - if (string == null || string.trim().length() == 0) { - return Collections.emptyList(); + if (string == null || string.trim().isEmpty()) { + return List.of(); } GroupingParserInput input = new GroupingParserInput(string); try { diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/HourOfDayFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/HourOfDayFunction.java index b65e1bc2405..95dcf608a95 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/HourOfDayFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/HourOfDayFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * This class represents an hour-of-day timestamp-function in a {@link GroupingExpression}. It evaluates to a long that @@ -22,7 +22,7 @@ public class HourOfDayFunction extends FunctionNode { } private HourOfDayFunction(String label, Integer level, GroupingExpression exp) { - super("time.hourofday", label, level, Arrays.asList(exp)); + super("time.hourofday", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathACosFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathACosFunction.java index 70f3515371b..8b6ffc53680 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathACosFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathACosFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class MathACosFunction extends FunctionNode { } private MathACosFunction(String label, Integer level, GroupingExpression exp) { - super("math.acos", label, level, Arrays.asList(exp)); + super("math.acos", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathACosHFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathACosHFunction.java index 6b31e1cfaff..34570aedc58 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathACosHFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathACosHFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class MathACosHFunction extends FunctionNode { } private MathACosHFunction(String label, Integer level, GroupingExpression exp) { - super("math.acosh", label, level, Arrays.asList(exp)); + super("math.acosh", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathASinFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathASinFunction.java index cbb99536af1..1fb0b89d0aa 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathASinFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathASinFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class MathASinFunction extends FunctionNode { } private MathASinFunction(String label, Integer level, GroupingExpression exp) { - super("math.asin", label, level, Arrays.asList(exp)); + super("math.asin", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathASinHFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathASinHFunction.java index 9e159abe90f..e0d290c59dc 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathASinHFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathASinHFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class MathASinHFunction extends FunctionNode { } private MathASinHFunction(String label, Integer level, GroupingExpression exp) { - super("math.asinh", label, level, Arrays.asList(exp)); + super("math.asinh", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathATanFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathATanFunction.java index a7302769853..50c40a2ad26 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathATanFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathATanFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class MathATanFunction extends FunctionNode { } private MathATanFunction(String label, Integer level, GroupingExpression exp) { - super("math.atan", label, level, Arrays.asList(exp)); + super("math.atan", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathATanHFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathATanHFunction.java index f33b8883a79..c8b34e36aaa 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathATanHFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathATanHFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class MathATanHFunction extends FunctionNode { } private MathATanHFunction(String label, Integer level, GroupingExpression exp) { - super("math.atanh", label, level, Arrays.asList(exp)); + super("math.atanh", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathCbrtFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathCbrtFunction.java index 5e4ad8fb20f..ccec1752823 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathCbrtFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathCbrtFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class MathCbrtFunction extends FunctionNode { } private MathCbrtFunction(String label, Integer level, GroupingExpression exp) { - super("math.cbrt", label, level, Arrays.asList(exp)); + super("math.cbrt", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathCosFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathCosFunction.java index bbf303e0bce..56aaa16c2ae 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathCosFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathCosFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class MathCosFunction extends FunctionNode { } private MathCosFunction(String label, Integer level, GroupingExpression exp) { - super("math.cos", label, level, Arrays.asList(exp)); + super("math.cos", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathCosHFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathCosHFunction.java index da92164aec5..8d21435ca52 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathCosHFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathCosHFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class MathCosHFunction extends FunctionNode { } private MathCosHFunction(String label, Integer level, GroupingExpression exp) { - super("math.cosh", label, level, Arrays.asList(exp)); + super("math.cosh", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathExpFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathExpFunction.java index 124b4fdaf40..625c6358081 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathExpFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathExpFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class MathExpFunction extends FunctionNode { } private MathExpFunction(String label, Integer level, GroupingExpression exp) { - super("math.exp", label, level, Arrays.asList(exp)); + super("math.exp", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathFloorFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathFloorFunction.java index cab480e8ff6..4c775a86b19 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathFloorFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathFloorFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * Represents the math.floor(expression) function @@ -21,7 +21,7 @@ public class MathFloorFunction extends FunctionNode { } private MathFloorFunction(String label, Integer level, GroupingExpression exp) { - super("math.floor", label, level, Arrays.asList(exp)); + super("math.floor", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathFunctions.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathFunctions.java index ec2cb62b062..d76c464a6de 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathFunctions.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathFunctions.java @@ -42,29 +42,28 @@ public abstract class MathFunctions { } } public static FunctionNode newInstance(Function type, GroupingExpression x, GroupingExpression y) { - switch (type) { - case EXP: return new MathExpFunction(x); - case POW: return new MathPowFunction(x, y); - case LOG: return new MathLogFunction(x); - case LOG1P: return new MathLog1pFunction(x); - case LOG10: return new MathLog10Function(x); - case SIN: return new MathSinFunction(x); - case ASIN: return new MathASinFunction(x); - case COS: return new MathCosFunction(x); - case ACOS: return new MathACosFunction(x); - case TAN: return new MathTanFunction(x); - case ATAN: return new MathATanFunction(x); - case SQRT: return new MathSqrtFunction(x); - case SINH: return new MathSinHFunction(x); - case ASINH: return new MathASinHFunction(x); - case COSH: return new MathCosHFunction(x); - case ACOSH: return new MathACosHFunction(x); - case TANH: return new MathTanHFunction(x); - case ATANH: return new MathATanHFunction(x); - case CBRT: return new MathCbrtFunction(x); - case HYPOT: return new MathHypotFunction(x, y); - case FLOOR: return new MathFloorFunction(x); - } - return null; + return switch (type) { + case EXP -> new MathExpFunction(x); + case POW -> new MathPowFunction(x, y); + case LOG -> new MathLogFunction(x); + case LOG1P -> new MathLog1pFunction(x); + case LOG10 -> new MathLog10Function(x); + case SIN -> new MathSinFunction(x); + case ASIN -> new MathASinFunction(x); + case COS -> new MathCosFunction(x); + case ACOS -> new MathACosFunction(x); + case TAN -> new MathTanFunction(x); + case ATAN -> new MathATanFunction(x); + case SQRT -> new MathSqrtFunction(x); + case SINH -> new MathSinHFunction(x); + case ASINH -> new MathASinHFunction(x); + case COSH -> new MathCosHFunction(x); + case ACOSH -> new MathACosHFunction(x); + case TANH -> new MathTanHFunction(x); + case ATANH -> new MathATanHFunction(x); + case CBRT -> new MathCbrtFunction(x); + case HYPOT -> new MathHypotFunction(x, y); + case FLOOR -> new MathFloorFunction(x); + }; } } diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathHypotFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathHypotFunction.java index 9f7cef456cf..fd9e8d6271a 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathHypotFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathHypotFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -20,7 +20,7 @@ public class MathHypotFunction extends FunctionNode { } private MathHypotFunction(String label, Integer level, GroupingExpression x, GroupingExpression y) { - super("math.hypot", label, level, Arrays.asList(x, y)); + super("math.hypot", label, level, List.of(x, y)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathLog10Function.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathLog10Function.java index 8f4a6444bfb..0f05a1909b1 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathLog10Function.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathLog10Function.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class MathLog10Function extends FunctionNode { } private MathLog10Function(String label, Integer level, GroupingExpression exp) { - super("math.log10", label, level, Arrays.asList(exp)); + super("math.log10", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathLog1pFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathLog1pFunction.java index 35fcbd3f1a6..500edd9f90b 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathLog1pFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathLog1pFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class MathLog1pFunction extends FunctionNode { } private MathLog1pFunction(String label, Integer level, GroupingExpression exp) { - super("math.log1p", label, level, Arrays.asList(exp)); + super("math.log1p", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathLogFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathLogFunction.java index 5b06998b004..642c3230b3f 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathLogFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathLogFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class MathLogFunction extends FunctionNode { } private MathLogFunction(String label, Integer level, GroupingExpression exp) { - super("math.log", label, level, Arrays.asList(exp)); + super("math.log", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathPowFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathPowFunction.java index 6f4972c9af0..7dd398f7008 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathPowFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathPowFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -20,7 +20,7 @@ public class MathPowFunction extends FunctionNode { } private MathPowFunction(String label, Integer level, GroupingExpression x, GroupingExpression y) { - super("math.pow", label, level, Arrays.asList(x, y)); + super("math.pow", label, level, List.of(x, y)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathSinFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathSinFunction.java index 8d21fb8e0df..64051cb96e8 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathSinFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathSinFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class MathSinFunction extends FunctionNode { } private MathSinFunction(String label, Integer level, GroupingExpression exp) { - super("math.sin", label, level, Arrays.asList(exp)); + super("math.sin", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathSinHFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathSinHFunction.java index c9d30a0adec..21295278756 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathSinHFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathSinHFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class MathSinHFunction extends FunctionNode { } private MathSinHFunction(String label, Integer level, GroupingExpression exp) { - super("math.sinh", label, level, Arrays.asList(exp)); + super("math.sinh", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathSqrtFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathSqrtFunction.java index 268ddaaaf2d..411a3fe30fa 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathSqrtFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathSqrtFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class MathSqrtFunction extends FunctionNode { } private MathSqrtFunction(String label, Integer level, GroupingExpression exp) { - super("math.sqrt", label, level, Arrays.asList(exp)); + super("math.sqrt", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathTanFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathTanFunction.java index 79267e0ae17..f2a18010258 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathTanFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathTanFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class MathTanFunction extends FunctionNode { } private MathTanFunction(String label, Integer level, GroupingExpression exp) { - super("math.tan", label, level, Arrays.asList(exp)); + super("math.tan", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MathTanHFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MathTanHFunction.java index e1a83c0b630..5833f0bf887 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MathTanHFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MathTanHFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class MathTanHFunction extends FunctionNode { } private MathTanHFunction(String label, Integer level, GroupingExpression exp) { - super("math.tanh", label, level, Arrays.asList(exp)); + super("math.tanh", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/Md5Function.java b/container-search/src/main/java/com/yahoo/search/grouping/request/Md5Function.java index 720e071aebf..57604677b82 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/Md5Function.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/Md5Function.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * This class represents an md5-function in a {@link GroupingExpression}. It evaluates to a long that equals the md5 of @@ -22,7 +22,7 @@ public class Md5Function extends FunctionNode { } private Md5Function(String label, Integer level, GroupingExpression exp, LongValue numBits) { - super("md5", label, level, Arrays.asList(exp, numBits)); + super("md5", label, level, List.of(exp, numBits)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MinuteOfHourFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MinuteOfHourFunction.java index 73484de9e47..67ddd560ab9 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MinuteOfHourFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MinuteOfHourFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * This class represents a minute-of-hour timestamp-function in a {@link GroupingExpression}. It evaluates to a long @@ -22,7 +22,7 @@ public class MinuteOfHourFunction extends FunctionNode { } private MinuteOfHourFunction(String label, Integer level, GroupingExpression exp) { - super("time.minuteofhour", label, level, Arrays.asList(exp)); + super("time.minuteofhour", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/MonthOfYearFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/MonthOfYearFunction.java index e8dace1e3bf..f9b4aef23f5 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/MonthOfYearFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/MonthOfYearFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * This class represents a month-of-year timestamp-function in a {@link GroupingExpression}. It evaluates to a long that @@ -22,7 +22,7 @@ public class MonthOfYearFunction extends FunctionNode { } private MonthOfYearFunction(String label, Integer level, GroupingExpression exp) { - super("time.monthofyear", label, level, Arrays.asList(exp)); + super("time.monthofyear", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/NegFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/NegFunction.java index 9f8a8de0266..785d29301e4 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/NegFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/NegFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * This class represents a negate-function in a {@link GroupingExpression}. It evaluates to a number that equals the @@ -22,7 +22,7 @@ public class NegFunction extends FunctionNode { } private NegFunction(String label, Integer level, GroupingExpression exp) { - super("neg", label, level, Arrays.asList(exp)); + super("neg", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/NormalizeSubjectFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/NormalizeSubjectFunction.java index 1b3f48052a4..c843959249d 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/NormalizeSubjectFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/NormalizeSubjectFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** */ @@ -17,7 +17,7 @@ public class NormalizeSubjectFunction extends FunctionNode { } private NormalizeSubjectFunction(String label, Integer level, GroupingExpression exp) { - super("normalizesubject", label, level, Arrays.asList(exp)); + super("normalizesubject", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/NowFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/NowFunction.java index 7026e726675..a2e2bcd649a 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/NowFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/NowFunction.java @@ -1,8 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; -import java.util.Collections; +import java.util.List; /** * This class represents a now-function in a {@link GroupingExpression}. It evaluates to a long that equals the number @@ -21,7 +20,7 @@ public class NowFunction extends FunctionNode { } private NowFunction(String label, Integer level) { - super("now", label, level, Collections.emptyList()); + super("now", label, level, List.of()); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/ReverseFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/ReverseFunction.java index 483f2494ea9..819dd3601c4 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/ReverseFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/ReverseFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * This class represents a reverse-function in a {@link GroupingExpression}. It evaluates to a list that equals the list @@ -22,7 +22,7 @@ public class ReverseFunction extends FunctionNode { } private ReverseFunction(String label, Integer level, GroupingExpression exp) { - super("reverse", label, level, Arrays.asList(exp)); + super("reverse", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/SecondOfMinuteFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/SecondOfMinuteFunction.java index a4ef16d50d3..fdcbeefe647 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/SecondOfMinuteFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/SecondOfMinuteFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * This class represents a second-of-minute timestamp-function in a {@link GroupingExpression}. It evaluates to a long @@ -22,7 +22,7 @@ public class SecondOfMinuteFunction extends FunctionNode { } private SecondOfMinuteFunction(String label, Integer level, GroupingExpression exp) { - super("time.secondofminute", label, level, Arrays.asList(exp)); + super("time.secondofminute", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/SizeFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/SizeFunction.java index 418d1513973..33b910a1119 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/SizeFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/SizeFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * This class represents a size-function in a {@link GroupingExpression}. It evaluates to a number that equals the @@ -22,7 +22,7 @@ public class SizeFunction extends FunctionNode { } private SizeFunction(String label, Integer level, GroupingExpression exp) { - super("size", label, level, Arrays.asList(exp)); + super("size", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/SortFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/SortFunction.java index 03b9479afda..0acee311b11 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/SortFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/SortFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * This class represents a sort-function in a {@link GroupingExpression}. It evaluates to a list that equals the list @@ -22,7 +22,7 @@ public class SortFunction extends FunctionNode { } private SortFunction(String label, Integer level, GroupingExpression exp) { - super("sort", label, level, Arrays.asList(exp)); + super("sort", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/StrLenFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/StrLenFunction.java index 28b0f021b26..21679b01170 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/StrLenFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/StrLenFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * This class represents a strcat-function in a {@link GroupingExpression}. It evaluates to a long that equals the @@ -22,7 +22,7 @@ public class StrLenFunction extends FunctionNode { } private StrLenFunction(String label, Integer level, GroupingExpression exp) { - super("strlen", label, level, Arrays.asList(exp)); + super("strlen", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/ToDoubleFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/ToDoubleFunction.java index 906e7ec18cb..6d05dd69a92 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/ToDoubleFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/ToDoubleFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * This class represents a todouble-function in a {@link GroupingExpression}. It converts the result of the argument to @@ -22,7 +22,7 @@ public class ToDoubleFunction extends FunctionNode { } private ToDoubleFunction(String label, Integer level, GroupingExpression exp) { - super("todouble", label, level, Arrays.asList(exp)); + super("todouble", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/ToLongFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/ToLongFunction.java index 4c7db38442d..d92cd2814aa 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/ToLongFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/ToLongFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * This class represents a tolong-function in a {@link GroupingExpression}. It converts the result of the argument to a @@ -22,7 +22,7 @@ public class ToLongFunction extends FunctionNode { } private ToLongFunction(String label, Integer level, GroupingExpression exp) { - super("tolong", label, level, Arrays.asList(exp)); + super("tolong", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/ToRawFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/ToRawFunction.java index 9c0a581fb87..99cf3400bdc 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/ToRawFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/ToRawFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * This class represents a toraw-function in a {@link GroupingExpression}. It @@ -23,7 +23,7 @@ public class ToRawFunction extends FunctionNode { } private ToRawFunction(String label, Integer level, GroupingExpression exp) { - super("toraw", label, level, Arrays.asList(exp)); + super("toraw", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/ToStringFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/ToStringFunction.java index 0fb891bdce0..b58765c57f0 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/ToStringFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/ToStringFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * This class represents a tolong-function in a {@link GroupingExpression}. It converts the result of the argument to a @@ -22,7 +22,7 @@ public class ToStringFunction extends FunctionNode { } private ToStringFunction(String label, Integer level, GroupingExpression exp) { - super("tostring", label, level, Arrays.asList(exp)); + super("tostring", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/UcaFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/UcaFunction.java index c5e469f1379..98cb68fbb8c 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/UcaFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/UcaFunction.java @@ -1,7 +1,6 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -23,7 +22,7 @@ public class UcaFunction extends FunctionNode { * @param locale The locale to used for sorting. */ public UcaFunction(GroupingExpression exp, String locale) { - this(null, null, Arrays.asList(exp, new StringValue(locale))); + this(null, null, List.of(exp, new StringValue(locale))); } /** @@ -34,7 +33,7 @@ public class UcaFunction extends FunctionNode { * @param strength The strength level to use. */ public UcaFunction(GroupingExpression exp, String locale, String strength) { - this(null, null, Arrays.asList(exp, new StringValue(locale), new StringValue(strength))); + this(null, null, List.of(exp, new StringValue(locale), new StringValue(strength))); if ( ! validStrength(strength)) throw new IllegalArgumentException("Not a valid UCA strength: " + strength); } diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/XorBitFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/XorBitFunction.java index 2e0bf25b894..f03bf681e90 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/XorBitFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/XorBitFunction.java @@ -1,7 +1,6 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -21,7 +20,7 @@ public class XorBitFunction extends FunctionNode { * @param numBits The number of bits of the expression value to xor. */ public XorBitFunction(GroupingExpression exp, int numBits) { - this(null, null, Arrays.asList(exp, new LongValue(numBits))); + this(null, null, List.of(exp, new LongValue(numBits))); } private XorBitFunction(String label, Integer level, List<GroupingExpression> exp) { diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/YearFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/YearFunction.java index 150b54855f3..528a6253ab0 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/YearFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/YearFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * This class represents a year timestamp-function in a {@link GroupingExpression}. It evaluates to a long that equals @@ -22,7 +22,7 @@ public class YearFunction extends FunctionNode { } private YearFunction(String label, Integer level, GroupingExpression exp) { - super("time.year", label, level, Arrays.asList(exp)); + super("time.year", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/ZCurveXFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/ZCurveXFunction.java index 29216e20825..e954e2c24fc 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/ZCurveXFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/ZCurveXFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -19,7 +19,7 @@ public class ZCurveXFunction extends FunctionNode { } private ZCurveXFunction(String label, Integer level, GroupingExpression exp) { - super("zcurve.x", label, level, Arrays.asList(exp)); + super("zcurve.x", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/ZCurveYFunction.java b/container-search/src/main/java/com/yahoo/search/grouping/request/ZCurveYFunction.java index 4803f145487..edbc9417a6b 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/ZCurveYFunction.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/ZCurveYFunction.java @@ -1,7 +1,7 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.grouping.request; -import java.util.Arrays; +import java.util.List; /** * @author baldersheim @@ -18,7 +18,7 @@ public class ZCurveYFunction extends FunctionNode { } private ZCurveYFunction(String label, Integer level, GroupingExpression exp) { - super("zcurve.y", label, level, Arrays.asList(exp)); + super("zcurve.y", label, level, List.of(exp)); } @Override diff --git a/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingExecutor.java b/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingExecutor.java index be4f2f786e5..fba9064298c 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingExecutor.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/vespa/GroupingExecutor.java @@ -21,7 +21,6 @@ import com.yahoo.search.searchchain.Execution; import com.yahoo.searchlib.aggregation.Grouping; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedList; @@ -357,7 +356,7 @@ public class GroupingExecutor extends Searcher { public static List<Grouping> getGroupingList(Query query) { Object obj = query.properties().get(PROP_GROUPINGLIST); if (!(obj instanceof List)) { - return Collections.emptyList(); + return List.of(); } return (List<Grouping>)obj; } diff --git a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java index c1eff1eec67..c2a5ad0222d 100644 --- a/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java +++ b/container-search/src/main/java/com/yahoo/search/handler/SearchHandler.java @@ -3,7 +3,6 @@ package com.yahoo.search.handler; import ai.vespa.metrics.ContainerMetrics; import ai.vespa.cloud.ZoneInfo; -import ai.vespa.metrics.ContainerMetrics; import com.yahoo.collections.Tuple2; import com.yahoo.component.ComponentSpecification; import com.yahoo.component.Vtag; @@ -117,7 +116,7 @@ public class SearchHandler extends LoggingRequestHandler { ZoneInfo zoneInfo) { this(metric, threadpool.executor(), queryProfileRegistry, embedders, executionFactory, config.numQueriesToTraceOnDebugAfterConstruction(), - config.hostResponseHeaderKey().equals("") ? Optional.empty() : Optional.of(config.hostResponseHeaderKey()), + config.hostResponseHeaderKey().isEmpty() ? Optional.empty() : Optional.of(config.hostResponseHeaderKey()), zoneInfo); } diff --git a/container-search/src/main/java/com/yahoo/search/pagetemplates/PageTemplateSearcher.java b/container-search/src/main/java/com/yahoo/search/pagetemplates/PageTemplateSearcher.java index e07b290f66e..22bc97b9ca1 100644 --- a/container-search/src/main/java/com/yahoo/search/pagetemplates/PageTemplateSearcher.java +++ b/container-search/src/main/java/com/yahoo/search/pagetemplates/PageTemplateSearcher.java @@ -22,8 +22,6 @@ import com.yahoo.search.result.ErrorMessage; import com.yahoo.search.searchchain.Execution; import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -99,7 +97,7 @@ public class PageTemplateSearcher extends Searcher { * @param resolvers the resolvers to use, in addition to the default resolvers */ public PageTemplateSearcher(PageTemplateRegistry templateRegistry, Resolver... resolvers) { - this(templateRegistry, Arrays.asList(resolvers)); + this(templateRegistry, List.of(resolvers)); } private PageTemplateSearcher(PageTemplateRegistry templateRegistry, List<Resolver> resolvers) { @@ -139,13 +137,13 @@ public class PageTemplateSearcher extends Searcher { if (pageIds == null) { String pageIdString = query.properties().getString(pageIdName,"").trim(); if (!pageIdString.isEmpty()) - pageIds = Arrays.asList(pageIdString.split(" ")); + pageIds = List.of(pageIdString.split(" ")); } // If none set, just return the default or null if none if (pageIds == null) { PageElement defaultPage=templateRegistry.getComponent("default"); - return (defaultPage == null ? Collections.<PageElement>emptyList() : Collections.singletonList(defaultPage)); + return (defaultPage == null ? List.of() : List.of(defaultPage)); } // Resolve the id list to page templates diff --git a/container-search/src/main/java/com/yahoo/search/pagetemplates/config/PageTemplateXMLReader.java b/container-search/src/main/java/com/yahoo/search/pagetemplates/config/PageTemplateXMLReader.java index f59124e293e..3ee195bdf55 100644 --- a/container-search/src/main/java/com/yahoo/search/pagetemplates/config/PageTemplateXMLReader.java +++ b/container-search/src/main/java/com/yahoo/search/pagetemplates/config/PageTemplateXMLReader.java @@ -72,7 +72,7 @@ public class PageTemplateXMLReader { File file = new File(fileName); pageReader = new NamedReader(fileName,new FileReader(file)); String firstName = file.getName().substring(0, file.getName().length() - 4); - return read(Collections.singletonList(pageReader), true).getComponent(firstName); + return read(List.of(pageReader), true).getComponent(firstName); } catch (IOException e) { throw new IllegalArgumentException("Could not read the page template '" + fileName + "'", e); @@ -85,7 +85,7 @@ public class PageTemplateXMLReader { private List<File> sortFiles(File dir) { ArrayList<File> files = new ArrayList<>(); - files.addAll(Arrays.asList(dir.listFiles())); + files.addAll(List.of(dir.listFiles())); Collections.sort(files); return files; } @@ -296,7 +296,7 @@ public class PageTemplateXMLReader { if ("item".equals(value.getNodeName())) map.values().add(readPageElements(value)); else - map.values().add(Collections.singletonList(readPageElement(value))); + map.values().add(List.of(readPageElement(value))); } return map; } @@ -311,7 +311,7 @@ public class PageTemplateXMLReader { else if (alternative.getNodeName().equals("include")) // Implicit include choice.alternatives().add(readInclude(alternative)); else // Other implicit - choice.alternatives().add(Collections.singletonList(readPageElement(alternative))); + choice.alternatives().add(List.of(readPageElement(alternative))); } return choice; } @@ -323,7 +323,7 @@ public class PageTemplateXMLReader { if ("alternative".equals(alternative.getNodeName())) // Explicit alternative container source.renderer().alternatives().addAll(readRenderers(XML.children(alternative))); else // Implicit alternative - yes implicit and explicit may be combined - source.renderer().alternatives().addAll(readRenderers(Collections.singletonList(alternative))); + source.renderer().alternatives().addAll(readRenderers(List.of(alternative))); } } } @@ -331,7 +331,7 @@ public class PageTemplateXMLReader { private Map<String,String> readParameters(Element containingElement) { List<Element> parameterElements=XML.getChildren(containingElement,"parameter"); - if (parameterElements.size()==0) return Collections.emptyMap(); // Shortcut + if (parameterElements.size()==0) return Map.of(); // Shortcut Map<String,String> parameters=new LinkedHashMap<>(); for (Element parameter : parameterElements) { diff --git a/container-search/src/main/java/com/yahoo/search/query/Select.java b/container-search/src/main/java/com/yahoo/search/query/Select.java index 32e28dc3ff7..6735a6bd050 100644 --- a/container-search/src/main/java/com/yahoo/search/query/Select.java +++ b/container-search/src/main/java/com/yahoo/search/query/Select.java @@ -10,7 +10,6 @@ import com.yahoo.search.query.profile.types.QueryProfileType; import com.yahoo.search.yql.VespaGroupingStep; import java.util.ArrayList; -import java.util.Collections; import java.util.List; import java.util.Objects; @@ -53,7 +52,7 @@ public class Select implements Cloneable { } public Select(String where, String grouping, Query query) { - this(where, grouping, null, query, Collections.emptyList()); + this(where, grouping, null, query, List.of()); } private Select(String where, String grouping, String groupingExpressionString, Query query, List<GroupingRequest> groupingRequests) { diff --git a/container-search/src/main/java/com/yahoo/search/query/SelectParser.java b/container-search/src/main/java/com/yahoo/search/query/SelectParser.java index 93df7fdfb18..c897afe144c 100644 --- a/container-search/src/main/java/com/yahoo/search/query/SelectParser.java +++ b/container-search/src/main/java/com/yahoo/search/query/SelectParser.java @@ -55,7 +55,6 @@ import com.yahoo.slime.SlimeUtils; import com.yahoo.slime.Type; import java.nio.charset.StandardCharsets; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -147,7 +146,7 @@ public class SelectParser implements Parser { private final Normalizer normalizer; private IndexFacts.Session indexFactsSession; - private static final List<String> FUNCTION_CALLS = Arrays.asList(WAND, WEIGHTED_SET, DOT_PRODUCT, GEO_LOCATION, NEAREST_NEIGHBOR, PREDICATE, RANK, WEAK_AND); + private static final List<String> FUNCTION_CALLS = List.of(WAND, WEIGHTED_SET, DOT_PRODUCT, GEO_LOCATION, NEAREST_NEIGHBOR, PREDICATE, RANK, WEAK_AND); public SelectParser(ParserEnvironment environment) { indexFacts = environment.getIndexFacts(); diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/CopyOnWriteContent.java b/container-search/src/main/java/com/yahoo/search/query/profile/CopyOnWriteContent.java index 53f8ccbe6de..3587175b671 100644 --- a/container-search/src/main/java/com/yahoo/search/query/profile/CopyOnWriteContent.java +++ b/container-search/src/main/java/com/yahoo/search/query/profile/CopyOnWriteContent.java @@ -66,7 +66,7 @@ public class CopyOnWriteContent extends FreezableClass implements Cloneable { public void freeze() { // Freeze this if (unmodifiableMap==null) - unmodifiableMap= map!=null ? Collections.unmodifiableMap(map) : Collections.<String, Object>emptyMap(); + unmodifiableMap= map!=null ? Collections.unmodifiableMap(map) : Map.of(); map=null; // just to keep the states simpler // Freeze content @@ -119,7 +119,7 @@ public class CopyOnWriteContent extends FreezableClass implements Cloneable { //------- Content access ------------------------------------------------------- public Map<String,Object> unmodifiableMap() { - if (isEmpty()) return Collections.emptyMap(); + if (isEmpty()) return Map.of(); if (map==null) // in COPYONWRITE or FROZEN state return unmodifiableMap; // In WRITABLE state: Create unmodifiable wrapper if necessary and return it diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfile.java b/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfile.java index 1c694417475..d638f57422c 100644 --- a/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfile.java +++ b/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfile.java @@ -121,7 +121,7 @@ public class QueryProfile extends FreezableSimpleComponent implements Cloneable */ public List<QueryProfile> inherited() { if (isFrozen()) return inherited; // Frozen profiles always have an unmodifiable, non-null list - if (inherited == null) return Collections.emptyList(); + if (inherited == null) return List.of(); return Collections.unmodifiableList(inherited); } diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfileProperties.java b/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfileProperties.java index 8778dcc7348..261e42a972d 100644 --- a/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfileProperties.java +++ b/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfileProperties.java @@ -18,7 +18,6 @@ import com.yahoo.search.query.profile.types.QueryProfileType; import com.yahoo.tensor.Tensor; import java.util.ArrayList; -import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -127,7 +126,7 @@ public class QueryProfileProperties extends Properties { name = unalias(name, context); if (context == null) - context = Collections.emptyMap(); + context = Map.of(); if ( ! profile.isOverridable(name, context)) return; @@ -237,7 +236,7 @@ public class QueryProfileProperties extends Properties { context = contextWithZoneInfo(context); path = unalias(path, context); - if (context == null) context = Collections.emptyMap(); + if (context == null) context = Map.of(); Map<String, Object> properties = new HashMap<>(); for (var entry : profile.listValues(path, context, substitution).entrySet()) { diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfileVariants.java b/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfileVariants.java index 0ed6b590227..c9dbfe9d89a 100644 --- a/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfileVariants.java +++ b/container-search/src/main/java/com/yahoo/search/query/profile/QueryProfileVariants.java @@ -5,7 +5,6 @@ import com.yahoo.component.provider.Freezable; import com.yahoo.search.query.profile.types.QueryProfileType; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.List; @@ -187,7 +186,7 @@ public class QueryProfileVariants implements Freezable, Cloneable { * @param dimensionBinding the dimension bindings to use in this */ public Object get(String name, QueryProfileType type, boolean allowQueryProfileResult, DimensionBinding dimensionBinding) { - SingleValueQueryProfileVisitor visitor = new SingleValueQueryProfileVisitor(Collections.singletonList(name),allowQueryProfileResult); + SingleValueQueryProfileVisitor visitor = new SingleValueQueryProfileVisitor(List.of(name),allowQueryProfileResult); visitor.enter(""); accept(true, type, visitor, dimensionBinding); visitor.leave(""); @@ -370,7 +369,7 @@ public class QueryProfileVariants implements Freezable, Cloneable { /** Returns the field values (values for various dimensions) for this field as a read-only list (never null) */ public List<FieldValue> asList() { - if (resolutionList == null) return Collections.emptyList(); + if (resolutionList == null) return List.of(); return resolutionList; } diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/compiled/CompiledQueryProfile.java b/container-search/src/main/java/com/yahoo/search/query/profile/compiled/CompiledQueryProfile.java index 4b3c3ede1e9..562d59846d1 100644 --- a/container-search/src/main/java/com/yahoo/search/query/profile/compiled/CompiledQueryProfile.java +++ b/container-search/src/main/java/com/yahoo/search/query/profile/compiled/CompiledQueryProfile.java @@ -9,7 +9,6 @@ import com.yahoo.search.query.profile.QueryProfileProperties; import com.yahoo.search.query.profile.SubstituteString; import com.yahoo.search.query.profile.types.QueryProfileType; -import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.regex.Matcher; @@ -102,7 +101,7 @@ public class CompiledQueryProfile extends AbstractComponent implements Cloneable * For example, if {a.d => "a.d-value" ,a.e => "a.e-value", b.d => "b.d-value", then calling listValues("a") * will return {"d" => "a.d-value","e" => "a.e-value"} */ - public final Map<String, Object> listValues(CompoundName prefix) { return listValues(prefix, Collections.emptyMap()); } + public final Map<String, Object> listValues(CompoundName prefix) { return listValues(prefix, Map.of()); } public final Map<String, Object> listValues(String prefix) { return listValues(new CompoundName(prefix)); } /** diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/compiled/DimensionalValue.java b/container-search/src/main/java/com/yahoo/search/query/profile/compiled/DimensionalValue.java index b6fa58628a1..0823989a104 100644 --- a/container-search/src/main/java/com/yahoo/search/query/profile/compiled/DimensionalValue.java +++ b/container-search/src/main/java/com/yahoo/search/query/profile/compiled/DimensionalValue.java @@ -2,18 +2,15 @@ package com.yahoo.search.query.profile.compiled; import com.yahoo.processing.request.CompoundName; -import com.yahoo.search.query.profile.DimensionBinding; import com.yahoo.search.query.profile.SubstituteString; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.Set; /** * Contains the values a given key in a DimensionalMap may take for different dimensional contexts. @@ -44,7 +41,7 @@ public class DimensionalValue<VALUE> { /** Returns the value matching this context, or null if none */ public VALUE get(Map<String, String> context) { if (context == null) - context = Collections.emptyMap(); + context = Map.of(); for (BindingSpec spec : bindingSpecs) { if ( ! spec.matches(context)) continue; @@ -156,8 +153,7 @@ public class DimensionalValue<VALUE> { variants.add(binding); // We're combining values for efficiency, so remove incorrect provenance info - if (value instanceof ValueWithSource) { - ValueWithSource v1 = (ValueWithSource)value; + if (value instanceof ValueWithSource v1) { ValueWithSource v2 = (ValueWithSource)newValue; if (v1.source() != null && ! v1.source().equals(v2.source())) @@ -220,14 +216,12 @@ public class DimensionalValue<VALUE> { private VALUE substituteIfRelative(VALUE value, Binding variant, Map<CompoundName, DimensionalValue.Builder<VALUE>> entries) { - if (value instanceof ValueWithSource && ((ValueWithSource)value).value() instanceof SubstituteString) { - ValueWithSource valueWithSource = (ValueWithSource)value; + if (value instanceof ValueWithSource valueWithSource && ((ValueWithSource)value).value() instanceof SubstituteString) { SubstituteString substitute = (SubstituteString)valueWithSource.value(); if (substitute.hasRelative()) { List<SubstituteString.Component> resolvedComponents = new ArrayList<>(substitute.components().size()); for (SubstituteString.Component component : substitute.components()) { - if (component instanceof SubstituteString.RelativePropertyComponent) { - SubstituteString.RelativePropertyComponent relativeComponent = (SubstituteString.RelativePropertyComponent)component; + if (component instanceof SubstituteString.RelativePropertyComponent relativeComponent) { var substituteValues = lookupByLocalName(relativeComponent.fieldName(), entries); if (substituteValues == null) throw new IllegalArgumentException("Could not resolve local substitution '" + @@ -274,8 +268,8 @@ public class DimensionalValue<VALUE> { /** Returns whether this context contains all the keys of this */ public boolean matches(Map<String, String> context) { - for (int i = 0; i < dimensions.length; i++) - if ( ! context.containsKey(dimensions[i])) return false; + for (String dimension : dimensions) + if (!context.containsKey(dimension)) return false; return true; } diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/config/QueryProfileXMLReader.java b/container-search/src/main/java/com/yahoo/search/query/profile/config/QueryProfileXMLReader.java index f2eb76f2367..abb0129eed0 100644 --- a/container-search/src/main/java/com/yahoo/search/query/profile/config/QueryProfileXMLReader.java +++ b/container-search/src/main/java/com/yahoo/search/query/profile/config/QueryProfileXMLReader.java @@ -18,7 +18,6 @@ import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -68,7 +67,7 @@ public class QueryProfileXMLReader { private List<File> sortFiles(File dir) { ArrayList<File> files = new ArrayList<>(); - files.addAll(Arrays.asList(dir.listFiles())); + files.addAll(List.of(dir.listFiles())); Collections.sort(files); return files; } diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemArguments.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemArguments.java index 080f938d61a..e5319b50b4f 100644 --- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemArguments.java +++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemArguments.java @@ -1,7 +1,6 @@ // Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.search.query.textserialize.item; -import java.util.Collections; import java.util.List; import java.util.Map; @@ -19,7 +18,7 @@ public class ItemArguments { properties = (Map<?, ?>) ListUtil.first(arguments); children = ListUtil.rest(arguments); } else { - properties = Collections.emptyMap(); + properties = Map.of(); children = arguments; } } diff --git a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemInitializer.java b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemInitializer.java index c8c9f7241d2..7971bc0a30e 100644 --- a/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemInitializer.java +++ b/container-search/src/main/java/com/yahoo/search/query/textserialize/item/ItemInitializer.java @@ -7,7 +7,6 @@ import com.yahoo.prelude.query.TaggableItem; import com.yahoo.search.query.textserialize.serializer.DispatchForm; import com.yahoo.search.query.textserialize.serializer.ItemIdMapper; -import java.util.Arrays; import java.util.List; import java.util.Map; @@ -116,7 +115,7 @@ public class ItemInitializer { Item connectedItem = taggableItem.getConnectedItem(); if (connectedItem != null) { form.setProperty("connectivity", - Arrays.asList(itemIdMapper.getId(connectedItem), taggableItem.getConnectivity())); + List.of(itemIdMapper.getId(connectedItem), taggableItem.getConnectivity())); } if (taggableItem.hasExplicitSignificance()) { diff --git a/container-search/src/main/java/com/yahoo/search/rendering/RendererRegistry.java b/container-search/src/main/java/com/yahoo/search/rendering/RendererRegistry.java index d62860afcda..74e79475ce6 100644 --- a/container-search/src/main/java/com/yahoo/search/rendering/RendererRegistry.java +++ b/container-search/src/main/java/com/yahoo/search/rendering/RendererRegistry.java @@ -10,7 +10,7 @@ import com.yahoo.search.Result; import com.yahoo.search.pagetemplates.result.PageTemplatesXmlRenderer; import java.util.Collection; -import java.util.Collections; +import java.util.List; import java.util.concurrent.Executor; /** @@ -34,7 +34,7 @@ public final class RendererRegistry extends ComponentRegistry<com.yahoo.processi * Use MoreExecutors.directExecutor(). */ public RendererRegistry(Executor executor) { - this(Collections.emptyList(), executor); + this(List.of(), executor); } /** @@ -111,7 +111,7 @@ public final class RendererRegistry extends ComponentRegistry<com.yahoo.processi private String rendererNames() { StringBuilder r = new StringBuilder(); for (Renderer<Result> c : allComponents()) { - if (r.length() > 0) + if (!r.isEmpty()) r.append(", "); r.append(c.getId().stringValue()); } diff --git a/container-search/src/main/java/com/yahoo/search/rendering/SectionedRenderer.java b/container-search/src/main/java/com/yahoo/search/rendering/SectionedRenderer.java index 6f376042f2d..7bd3ca1174f 100644 --- a/container-search/src/main/java/com/yahoo/search/rendering/SectionedRenderer.java +++ b/container-search/src/main/java/com/yahoo/search/rendering/SectionedRenderer.java @@ -15,7 +15,6 @@ import java.io.IOException; import java.io.Writer; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.List; @@ -156,7 +155,7 @@ abstract public class SectionedRenderer<WRITER> extends Renderer { } private void renderResultContent(WRITER writer, Result result) throws IOException { - if (result.hits().getError() != null || result.hits().getQuery().errors().size() > 0) { + if (result.hits().getError() != null || !result.hits().getQuery().errors().isEmpty()) { error(writer, asUnmodifiableSearchErrorList(result.hits().getQuery().errors(), result.hits().getError())); } @@ -172,14 +171,14 @@ abstract public class SectionedRenderer<WRITER> extends Renderer { } private Collection<ErrorMessage> asUnmodifiableSearchErrorList(List<com.yahoo.processing.request.ErrorMessage> queryErrors,ErrorMessage resultError) { - if (queryErrors.size() == 0) - return Collections.singletonList(resultError); + if (queryErrors.isEmpty()) + return List.of(resultError); List<ErrorMessage> searchErrors = new ArrayList<>(queryErrors.size() + (resultError != null ? 1 :0) ); - for (int i=0; i<queryErrors.size(); i++) - searchErrors.add(ErrorMessage.from(queryErrors.get(i))); + for (com.yahoo.processing.request.ErrorMessage queryError : queryErrors) + searchErrors.add(ErrorMessage.from(queryError)); if (resultError != null) searchErrors.add(resultError); - return Collections.unmodifiableCollection(searchErrors); + return List.copyOf(searchErrors); } private void renderHitGroup(WRITER writer, HitGroup hitGroup) throws IOException { diff --git a/container-search/src/main/java/com/yahoo/search/result/FeatureData.java b/container-search/src/main/java/com/yahoo/search/result/FeatureData.java index 0f26ecdcce7..55a4c6c11f2 100644 --- a/container-search/src/main/java/com/yahoo/search/result/FeatureData.java +++ b/container-search/src/main/java/com/yahoo/search/result/FeatureData.java @@ -14,7 +14,6 @@ import com.yahoo.tensor.serialization.TypedBinaryFormat; import static com.yahoo.searchlib.rankingexpression.Reference.wrapInRankingExpression; import java.nio.charset.StandardCharsets; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.Map; @@ -150,7 +149,7 @@ public class FeatureData implements Inspectable, JsonProducer { /** Returns the names of the features available in this */ public Set<String> featureNames() { - if (this == empty) return Collections.emptySet(); + if (this == empty) return Set.of(); if (featureNames != null) return featureNames; featureNames = new HashSet<>(); diff --git a/container-search/src/main/java/com/yahoo/search/result/Hit.java b/container-search/src/main/java/com/yahoo/search/result/Hit.java index d81880cc548..4d3b8bb0884 100644 --- a/container-search/src/main/java/com/yahoo/search/result/Hit.java +++ b/container-search/src/main/java/com/yahoo/search/result/Hit.java @@ -333,6 +333,7 @@ public class Hit extends ListenableFreezableClass implements Data, Comparable<Hi */ public void setFillable() { if (filled == null) { + //TODO Should have used Set.of(), but it checks that contains is not called with null filled = Collections.emptySet(); unmodifiableFilled = filled; } @@ -347,6 +348,7 @@ public class Hit extends ListenableFreezableClass implements Data, Comparable<Hi */ public void setFilled(String summaryClass) { if (filled == null || filled.isEmpty()) { + //TODO Should have used Set.of(), but it checks that contains is not called with null filled = Collections.singleton(summaryClass); unmodifiableFilled = filled; } else if (filled.size() == 1) { @@ -483,7 +485,7 @@ public class Hit extends ListenableFreezableClass implements Data, Comparable<Hi private Map<String, Object> getUnmodifiableFieldMap() { if (unmodifiableFieldMap == null) { if (fields == null) { - return Collections.emptyMap(); + return Map.of(); } else { unmodifiableFieldMap = Collections.unmodifiableMap(fields); } @@ -574,12 +576,12 @@ public class Hit extends ListenableFreezableClass implements Data, Comparable<Hi /** Attach some data to this hit for this searcher */ public void setSearcherSpecificMetaData(Searcher searcher, Object data) { if (searcherSpecificMetaData == null) { - searcherSpecificMetaData = Collections.singletonMap(searcher, data); + if (data != null) + searcherSpecificMetaData = Map.of(searcher, data); } else { if (searcherSpecificMetaData.size() == 1) { - Object tmp = searcherSpecificMetaData.get(searcher); - if (tmp != null) { - searcherSpecificMetaData = Collections.singletonMap(searcher, data); + if (searcherSpecificMetaData.containsKey(searcher)) { + searcherSpecificMetaData = (data != null) ? Map.of(searcher, data) : null; } else { searcherSpecificMetaData = new TreeMap<>(searcherSpecificMetaData); searcherSpecificMetaData.put(searcher, data); diff --git a/container-search/src/main/java/com/yahoo/search/result/HitGroup.java b/container-search/src/main/java/com/yahoo/search/result/HitGroup.java index 51c0caf38a9..be31b91a304 100644 --- a/container-search/src/main/java/com/yahoo/search/result/HitGroup.java +++ b/container-search/src/main/java/com/yahoo/search/result/HitGroup.java @@ -718,6 +718,7 @@ public class HitGroup extends Hit implements DataList<Hit>, Cloneable, Iterable< if (hitFilled.isEmpty()) { filled = null; } else if (hitFilled.size() == 1) { + //TODO Avoid needing set that allows null .... filled = Collections.singleton(hitFilled.iterator().next()); } else { filled = new HashSet<>(hitFilled); @@ -799,6 +800,7 @@ public class HitGroup extends Hit implements DataList<Hit>, Cloneable, Iterable< analyzeHit(hit); Set<String> hitFilled = hit.getFilled(); if (hitFilled != null) { + //TODO Avoid needing set that allows null .... filled = (hitFilled.size() == 1) ? Collections.singleton(hitFilled.iterator().next()) : hitFilled.isEmpty() ? null : new HashSet<>(hitFilled); diff --git a/container-search/src/main/java/com/yahoo/search/searchchain/SearchChain.java b/container-search/src/main/java/com/yahoo/search/searchchain/SearchChain.java index 27d7430a0d9..9698735fb52 100644 --- a/container-search/src/main/java/com/yahoo/search/searchchain/SearchChain.java +++ b/container-search/src/main/java/com/yahoo/search/searchchain/SearchChain.java @@ -6,7 +6,6 @@ import com.yahoo.component.chain.Chain; import com.yahoo.component.chain.Phase; import com.yahoo.search.Searcher; -import java.util.Arrays; import java.util.Collection; import java.util.List; @@ -33,7 +32,7 @@ public class SearchChain extends Chain<Searcher> { } public SearchChain(ComponentId id, Searcher... searchers) { - this(id, Arrays.asList(searchers)); + this(id, List.of(searchers)); } public SearchChain(ComponentId id, Collection<Searcher> searchers) { diff --git a/container-search/src/main/java/com/yahoo/search/searchchain/model/VespaSearchers.java b/container-search/src/main/java/com/yahoo/search/searchchain/model/VespaSearchers.java index f21ea506fde..69a1f8ec6cb 100644 --- a/container-search/src/main/java/com/yahoo/search/searchchain/model/VespaSearchers.java +++ b/container-search/src/main/java/com/yahoo/search/searchchain/model/VespaSearchers.java @@ -11,7 +11,6 @@ import com.yahoo.search.searchchain.model.federation.FederationSearcherModel; import java.util.ArrayList; import java.util.Collection; -import java.util.Collections; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; @@ -61,7 +60,7 @@ public class VespaSearchers { private static FederationSearcherModel federationSearcherModel() { return new FederationSearcherModel(new ComponentSpecification("federation"), Dependencies.emptyDependencies(), - Collections.emptyList(), + List.of(), true); } diff --git a/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java b/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java index 7ae02c18e7a..e66cac5766c 100644 --- a/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java +++ b/container-search/src/main/java/com/yahoo/search/yql/YqlParser.java @@ -913,7 +913,7 @@ public class YqlParser implements Parser { GroupingOperation groupingOperation = GroupingOperation.fromString(groupingAst.getArgument(0)); VespaGroupingStep groupingStep = new VespaGroupingStep(groupingOperation); List<Object> continuations = getAnnotation(groupingAst, "continuations", List.class, - Collections.emptyList(), "grouping continuations"); + List.of(), "grouping continuations"); for (Object continuation : continuations) { groupingStep.continuations().add(Continuation.fromString(dereference(continuation))); @@ -1614,7 +1614,7 @@ public class YqlParser implements Parser { { Item leaf = (Item) out; Map<?, ?> itemAnnotations = getAnnotation(ast, ANNOTATIONS, - Map.class, Collections.emptyMap(), "item annotation map"); + Map.class, Map.of(), "item annotation map"); for (Map.Entry<?, ?> entry : itemAnnotations.entrySet()) { Preconditions.checkArgument(entry.getKey() instanceof String, "Expected String annotation key, got %s.", entry.getKey().getClass()); |