diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2023-10-11 15:58:59 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2023-10-11 15:58:59 +0200 |
commit | 9a8a5c02a309339e1639c72f9dd7bdfabb1ff21a (patch) | |
tree | 1d0a7a4f26a81bf8dd58a2d9e5f58d2141788eeb /searchlib | |
parent | 3fd2ddd74fe25cddeb59c007f0fa94c1e82b6bcc (diff) |
- Use a Supplier<Identifable> to construct objects from id.
- Provide lambda for default constructing frequently used objects
to avoid reflection.
Diffstat (limited to 'searchlib')
21 files changed, 37 insertions, 48 deletions
diff --git a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/AverageAggregationResult.java b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/AverageAggregationResult.java index 5dc7cc1b634..62201db88f4 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/AverageAggregationResult.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/AverageAggregationResult.java @@ -16,7 +16,7 @@ import com.yahoo.vespa.objects.Serializer; */ public class AverageAggregationResult extends AggregationResult { - public static final int classId = registerClass(0x4000 + 85, AverageAggregationResult.class); + public static final int classId = registerClass(0x4000 + 85, AverageAggregationResult.class, AverageAggregationResult::new); private NumericResultNode sum; private long count; diff --git a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/CountAggregationResult.java b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/CountAggregationResult.java index 8a4fb7cdae8..3fa8db5f9db 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/CountAggregationResult.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/CountAggregationResult.java @@ -15,7 +15,7 @@ import com.yahoo.vespa.objects.Serializer; */ public class CountAggregationResult extends AggregationResult { - public static final int classId = registerClass(0x4000 + 81, CountAggregationResult.class); + public static final int classId = registerClass(0x4000 + 81, CountAggregationResult.class, CountAggregationResult::new); private long count = 0; /** Constructs an empty result node. <b>NOTE:</b> This instance is broken until non-optional member data is set. */ diff --git a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/ExpressionCountAggregationResult.java b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/ExpressionCountAggregationResult.java index a02acbef281..9242e01076c 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/ExpressionCountAggregationResult.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/ExpressionCountAggregationResult.java @@ -15,7 +15,7 @@ import com.yahoo.vespa.objects.Serializer; */ public class ExpressionCountAggregationResult extends AggregationResult { - public static final int classId = registerClass(0x4000 + 88, ExpressionCountAggregationResult.class); + public static final int classId = registerClass(0x4000 + 88, ExpressionCountAggregationResult.class, ExpressionCountAggregationResult::new); private static final int UNDEFINED = -1; // The unique count estimator @@ -29,7 +29,6 @@ public class ExpressionCountAggregationResult extends AggregationResult { /** Constructor used for deserialization. Will be instantiated with a default sketch. */ - @SuppressWarnings("UnusedDeclaration") public ExpressionCountAggregationResult() { this(new SparseSketch(), new HyperLogLogEstimator()); } diff --git a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/FS4Hit.java b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/FS4Hit.java index 9b79d8d0f7b..4a29c98ad89 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/FS4Hit.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/FS4Hit.java @@ -13,7 +13,7 @@ import com.yahoo.vespa.objects.Serializer; */ public class FS4Hit extends Hit { - public static final int classId = registerClass(0x4000 + 95, FS4Hit.class); // shared with c++ + public static final int classId = registerClass(0x4000 + 95, FS4Hit.class, FS4Hit::new); // shared with c++ private int path = 0; private GlobalId globalId = new GlobalId(new byte[GlobalId.LENGTH]); private int distributionKey = -1; diff --git a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/HitsAggregationResult.java b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/HitsAggregationResult.java index d6df04b2122..c737add21c0 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/HitsAggregationResult.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/HitsAggregationResult.java @@ -7,8 +7,6 @@ import com.yahoo.text.Utf8; import com.yahoo.vespa.objects.*; import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; import java.util.List; /** @@ -20,7 +18,7 @@ import java.util.List; */ public class HitsAggregationResult extends AggregationResult { - public static final int classId = registerClass(0x4000 + 87, HitsAggregationResult.class); + public static final int classId = registerClass(0x4000 + 87, HitsAggregationResult.class, HitsAggregationResult::new); private String summaryClass = "default"; private int maxHits = -1; private List<Hit> hits = new ArrayList<>(); diff --git a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/MaxAggregationResult.java b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/MaxAggregationResult.java index 0b347185f09..6d9b50b52b1 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/MaxAggregationResult.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/MaxAggregationResult.java @@ -15,7 +15,7 @@ import com.yahoo.vespa.objects.Serializer; */ public class MaxAggregationResult extends AggregationResult { - public static final int classId = registerClass(0x4000 + 83, MaxAggregationResult.class); + public static final int classId = registerClass(0x4000 + 83, MaxAggregationResult.class, MaxAggregationResult::new); private SingleResultNode max; /** diff --git a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/MinAggregationResult.java b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/MinAggregationResult.java index 0ae5587da69..1ffedb9aedc 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/MinAggregationResult.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/MinAggregationResult.java @@ -15,7 +15,7 @@ import com.yahoo.vespa.objects.Serializer; */ public class MinAggregationResult extends AggregationResult { - public static final int classId = registerClass(0x4000 + 84, MinAggregationResult.class); + public static final int classId = registerClass(0x4000 + 84, MinAggregationResult.class, MinAggregationResult::new); private SingleResultNode min; /** diff --git a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/StandardDeviationAggregationResult.java b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/StandardDeviationAggregationResult.java index c6ece6a2525..91716f00750 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/StandardDeviationAggregationResult.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/StandardDeviationAggregationResult.java @@ -11,7 +11,7 @@ import com.yahoo.vespa.objects.Serializer; * @author bjorncs */ public class StandardDeviationAggregationResult extends AggregationResult { - public static final int classId = registerClass(0x4000 + 89, StandardDeviationAggregationResult.class); + public static final int classId = registerClass(0x4000 + 89, StandardDeviationAggregationResult.class, StandardDeviationAggregationResult::new); private long count; private double sum; @@ -56,7 +56,7 @@ public class StandardDeviationAggregationResult extends AggregationResult { @Override protected boolean equalsAggregation(AggregationResult obj) { StandardDeviationAggregationResult other = (StandardDeviationAggregationResult) obj; - return count == this.count && sum == other.sum && sumOfSquared == other.sumOfSquared; + return count == other.count && sum == other.sum && sumOfSquared == other.sumOfSquared; } @Override diff --git a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/SumAggregationResult.java b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/SumAggregationResult.java index 2a78e5fde36..1f0dd0b90af 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/SumAggregationResult.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/SumAggregationResult.java @@ -15,7 +15,7 @@ import com.yahoo.vespa.objects.Serializer; */ public class SumAggregationResult extends AggregationResult { - public static final int classId = registerClass(0x4000 + 82, SumAggregationResult.class); + public static final int classId = registerClass(0x4000 + 82, SumAggregationResult.class, SumAggregationResult::new); private SingleResultNode sum; /** diff --git a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/VdsHit.java b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/VdsHit.java index 6f130137008..5f14b6a937f 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/VdsHit.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/VdsHit.java @@ -8,7 +8,7 @@ import com.yahoo.vespa.objects.Serializer; public class VdsHit extends Hit { - public static final int classId = registerClass(0x4000 + 96, VdsHit.class); + public static final int classId = registerClass(0x4000 + 96, VdsHit.class, VdsHit::new); private String docId = ""; private RawData summary = new RawData(); diff --git a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/XorAggregationResult.java b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/XorAggregationResult.java index fea59debd86..beb03160a05 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/aggregation/XorAggregationResult.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/aggregation/XorAggregationResult.java @@ -15,7 +15,7 @@ import com.yahoo.vespa.objects.Serializer; */ public class XorAggregationResult extends AggregationResult { - public static final int classId = registerClass(0x4000 + 86, XorAggregationResult.class); + public static final int classId = registerClass(0x4000 + 86, XorAggregationResult.class, XorAggregationResult::new); private long xor = 0; /** diff --git a/searchlib/src/main/java/com/yahoo/searchlib/expression/AggregationRefNode.java b/searchlib/src/main/java/com/yahoo/searchlib/expression/AggregationRefNode.java index cad08090a9e..96bed811281 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/expression/AggregationRefNode.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/expression/AggregationRefNode.java @@ -14,14 +14,11 @@ import com.yahoo.vespa.objects.Serializer; */ public class AggregationRefNode extends ExpressionNode { - public static final int classId = registerClass(0x4000 + 142, AggregationRefNode.class); + public static final int classId = registerClass(0x4000 + 142, AggregationRefNode.class, AggregationRefNode::new); private AggregationResult result = null; private int index = - 1; - @SuppressWarnings("UnusedDeclaration") - public AggregationRefNode() { - // Used by deserializer. - } + public AggregationRefNode() { } public AggregationRefNode(int index) { this.index = index; diff --git a/searchlib/src/main/java/com/yahoo/searchlib/expression/AttributeNode.java b/searchlib/src/main/java/com/yahoo/searchlib/expression/AttributeNode.java index 2aa6997646f..e5dac72938f 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/expression/AttributeNode.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/expression/AttributeNode.java @@ -13,15 +13,13 @@ import com.yahoo.vespa.objects.Serializer; */ public class AttributeNode extends FunctionNode { - public static final int classId = registerClass(0x4000 + 55, AttributeNode.class); + public static final int classId = registerClass(0x4000 + 55, AttributeNode.class, AttributeNode::new); private String attribute; /** * Constructs an empty result node. <b>NOTE:</b> This instance is broken until non-optional member data is set. */ - public AttributeNode() { - - } + public AttributeNode() { } /** * Constructs an instance of this class with given attribute name. diff --git a/searchlib/src/main/java/com/yahoo/searchlib/expression/ConstantNode.java b/searchlib/src/main/java/com/yahoo/searchlib/expression/ConstantNode.java index f04b4db52a9..0ef268aad69 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/expression/ConstantNode.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/expression/ConstantNode.java @@ -13,7 +13,7 @@ import com.yahoo.vespa.objects.Serializer; */ public class ConstantNode extends ExpressionNode { - public static final int classId = registerClass(0x4000 + 49, ConstantNode.class); + public static final int classId = registerClass(0x4000 + 49, ConstantNode.class, ConstantNode::new); private ResultNode value = null; public ConstantNode() {} diff --git a/searchlib/src/main/java/com/yahoo/searchlib/expression/FloatResultNode.java b/searchlib/src/main/java/com/yahoo/searchlib/expression/FloatResultNode.java index 8c1c357ab14..782e8edd661 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/expression/FloatResultNode.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/expression/FloatResultNode.java @@ -16,9 +16,9 @@ import java.nio.ByteBuffer; public class FloatResultNode extends NumericResultNode { // The global class identifier shared with C++. - public static final int classId = registerClass(0x4000 + 52, FloatResultNode.class); - private static FloatResultNode negativeInfinity = new FloatResultNode(Double.NEGATIVE_INFINITY); - private static FloatResultNode positiveInfinity = new FloatResultNode(Double.POSITIVE_INFINITY); + public static final int classId = registerClass(0x4000 + 52, FloatResultNode.class, FloatResultNode::new); + private static final FloatResultNode negativeInfinity = new FloatResultNode(Double.NEGATIVE_INFINITY); + private static final FloatResultNode positiveInfinity = new FloatResultNode(Double.POSITIVE_INFINITY); // The numeric value of this node. private double value; @@ -129,7 +129,7 @@ public class FloatResultNode extends NumericResultNode { @Override public Object getNumber() { - return Double.valueOf(value); + return value; } @Override @@ -141,7 +141,7 @@ public class FloatResultNode extends NumericResultNode { if (Double.isNaN(b)) { return 1; } else { - return (value < b) ? -1 : (value > b) ? 1 : 0; + return Double.compare(value, b); } } } diff --git a/searchlib/src/main/java/com/yahoo/searchlib/expression/Int16ResultNode.java b/searchlib/src/main/java/com/yahoo/searchlib/expression/Int16ResultNode.java index ed110344ba1..e3fdcf5ff51 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/expression/Int16ResultNode.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/expression/Int16ResultNode.java @@ -15,7 +15,7 @@ import java.nio.ByteBuffer; */ public class Int16ResultNode extends NumericResultNode { - public static final int classId = registerClass(0x4000 + 105, Int16ResultNode.class); + public static final int classId = registerClass(0x4000 + 105, Int16ResultNode.class, Int16ResultNode::new); private short value = 0; @SuppressWarnings("UnusedDeclaration") @@ -122,7 +122,7 @@ public class Int16ResultNode extends NumericResultNode { @Override public Object getNumber() { - return Integer.valueOf(value); + return (int) value; } @Override diff --git a/searchlib/src/main/java/com/yahoo/searchlib/expression/Int32ResultNode.java b/searchlib/src/main/java/com/yahoo/searchlib/expression/Int32ResultNode.java index c9f0f6c3c36..520cfb0c3d7 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/expression/Int32ResultNode.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/expression/Int32ResultNode.java @@ -15,13 +15,10 @@ import java.nio.ByteBuffer; */ public class Int32ResultNode extends NumericResultNode { - public static final int classId = registerClass(0x4000 + 106, Int32ResultNode.class); + public static final int classId = registerClass(0x4000 + 106, Int32ResultNode.class, Int32ResultNode::new); private int value = 0; - @SuppressWarnings("UnusedDeclaration") - public Int32ResultNode() { - // used by deserializer - } + public Int32ResultNode() { } /** * Constructs an instance of this class with given value. diff --git a/searchlib/src/main/java/com/yahoo/searchlib/expression/Int8ResultNode.java b/searchlib/src/main/java/com/yahoo/searchlib/expression/Int8ResultNode.java index 981414a473d..05b844bd996 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/expression/Int8ResultNode.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/expression/Int8ResultNode.java @@ -15,7 +15,7 @@ import java.nio.ByteBuffer; */ public class Int8ResultNode extends NumericResultNode { - public static final int classId = registerClass(0x4000 + 104, Int8ResultNode.class); + public static final int classId = registerClass(0x4000 + 104, Int8ResultNode.class, Int8ResultNode::new); private byte value = 0; public Int8ResultNode() { @@ -120,7 +120,7 @@ public class Int8ResultNode extends NumericResultNode { @Override public Object getNumber() { - return Integer.valueOf(value); + return (int) value; } @Override diff --git a/searchlib/src/main/java/com/yahoo/searchlib/expression/IntegerResultNode.java b/searchlib/src/main/java/com/yahoo/searchlib/expression/IntegerResultNode.java index 135c8129d96..f968a31f54c 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/expression/IntegerResultNode.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/expression/IntegerResultNode.java @@ -15,9 +15,9 @@ import java.nio.ByteBuffer; */ public class IntegerResultNode extends NumericResultNode { - public static final int classId = registerClass(0x4000 + 107, IntegerResultNode.class); - private static IntegerResultNode negativeInfinity = new IntegerResultNode(Long.MIN_VALUE); - private static IntegerResultNode positiveInfinity = new IntegerResultNode(Long.MAX_VALUE); + public static final int classId = registerClass(0x4000 + 107, IntegerResultNode.class, IntegerResultNode::new); + private static final IntegerResultNode negativeInfinity = new IntegerResultNode(Long.MIN_VALUE); + private static final IntegerResultNode positiveInfinity = new IntegerResultNode(Long.MAX_VALUE); private long value; /** @@ -138,13 +138,13 @@ public class IntegerResultNode extends NumericResultNode { @Override public Object getNumber() { - return Long.valueOf(value); + return value; } @Override protected int onCmp(ResultNode rhs) { long value = rhs.getInteger(); - return (this.value < value) ? -1 : (this.value > value) ? 1 : 0; + return Long.compare(this.value, value); } @Override diff --git a/searchlib/src/main/java/com/yahoo/searchlib/expression/RawResultNode.java b/searchlib/src/main/java/com/yahoo/searchlib/expression/RawResultNode.java index 78f5d529d90..3e951ae8e46 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/expression/RawResultNode.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/expression/RawResultNode.java @@ -17,7 +17,7 @@ import java.util.Arrays; public class RawResultNode extends SingleResultNode { // The global class identifier shared with C++. - public static final int classId = registerClass(0x4000 + 54, RawResultNode.class); + public static final int classId = registerClass(0x4000 + 54, RawResultNode.class, RawResultNode::new); private static final RawResultNode negativeInfinity = new RawResultNode(); private static final PositiveInfinityResultNode positiveInfinity = new PositiveInfinityResultNode(); diff --git a/searchlib/src/main/java/com/yahoo/searchlib/expression/StringResultNode.java b/searchlib/src/main/java/com/yahoo/searchlib/expression/StringResultNode.java index 20f204c5b61..ffd73bf2944 100644 --- a/searchlib/src/main/java/com/yahoo/searchlib/expression/StringResultNode.java +++ b/searchlib/src/main/java/com/yahoo/searchlib/expression/StringResultNode.java @@ -17,7 +17,7 @@ import java.util.Arrays; public class StringResultNode extends SingleResultNode { // The global class identifier shared with C++. - public static final int classId = registerClass(0x4000 + 53, StringResultNode.class); + public static final int classId = registerClass(0x4000 + 53, StringResultNode.class, StringResultNode::new); private static final StringResultNode negativeInfinity = new StringResultNode(""); private static final PositiveInfinityResultNode positiveInfinity = new PositiveInfinityResultNode(); @@ -92,7 +92,7 @@ public class StringResultNode extends SingleResultNode { @Override public long getInteger() { try { - return Integer.valueOf(getString()); + return Integer.parseInt(getString()); } catch (java.lang.NumberFormatException e) { return 0; } @@ -101,7 +101,7 @@ public class StringResultNode extends SingleResultNode { @Override public double getFloat() { try { - return Double.valueOf(getString()); + return Double.parseDouble(getString()); } catch (java.lang.NumberFormatException e) { return 0; } |