diff options
Diffstat (limited to 'document')
22 files changed, 118 insertions, 58 deletions
diff --git a/document/src/main/java/com/yahoo/document/select/Context.java b/document/src/main/java/com/yahoo/document/select/Context.java index a401621b585..481131b4776 100644 --- a/document/src/main/java/com/yahoo/document/select/Context.java +++ b/document/src/main/java/com/yahoo/document/select/Context.java @@ -7,7 +7,8 @@ import java.util.HashMap; import java.util.Map; public class Context { - private DocumentOperation documentOperation = null; + private DocumentOperation documentOperation; + private Map<String, Object> variables = new HashMap<>(); public Context(DocumentOperation documentOperation) { this.documentOperation = documentOperation; @@ -28,7 +29,4 @@ public class Context { public void setVariables(Map<String, Object> variables) { this.variables = variables; } - - private Map<String, Object> variables = new HashMap<>(); - } diff --git a/document/src/main/java/com/yahoo/document/select/DocumentSelector.java b/document/src/main/java/com/yahoo/document/select/DocumentSelector.java index 7f5b92ea233..1ee6ff45c99 100644 --- a/document/src/main/java/com/yahoo/document/select/DocumentSelector.java +++ b/document/src/main/java/com/yahoo/document/select/DocumentSelector.java @@ -84,7 +84,7 @@ public class DocumentSelector { * @return True if the document is accepted. * @throws RuntimeException if the evaluation enters an illegal state */ - public ResultList getMatchingResultList(Context context) { + private ResultList getMatchingResultList(Context context) { return ResultList.toResultList(expression.evaluate(context)); } diff --git a/document/src/main/java/com/yahoo/document/select/NowCheckVisitor.java b/document/src/main/java/com/yahoo/document/select/NowCheckVisitor.java index 5efcdec848a..fd799e36a70 100644 --- a/document/src/main/java/com/yahoo/document/select/NowCheckVisitor.java +++ b/document/src/main/java/com/yahoo/document/select/NowCheckVisitor.java @@ -1,8 +1,18 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.document.select; -import com.yahoo.document.select.Visitor; -import com.yahoo.document.select.rule.*; +import com.yahoo.document.select.rule.ArithmeticNode; +import com.yahoo.document.select.rule.AttributeNode; +import com.yahoo.document.select.rule.ComparisonNode; +import com.yahoo.document.select.rule.DocumentNode; +import com.yahoo.document.select.rule.EmbracedNode; +import com.yahoo.document.select.rule.IdNode; +import com.yahoo.document.select.rule.LiteralNode; +import com.yahoo.document.select.rule.LogicNode; +import com.yahoo.document.select.rule.NegationNode; +import com.yahoo.document.select.rule.NowNode; +import com.yahoo.document.select.rule.SearchColumnNode; +import com.yahoo.document.select.rule.VariableNode; /** * Traverse and check if there exists any now() function in the expression tree. diff --git a/document/src/main/java/com/yahoo/document/select/Result.java b/document/src/main/java/com/yahoo/document/select/Result.java index 784b7fdc7e7..5f057da900c 100644 --- a/document/src/main/java/com/yahoo/document/select/Result.java +++ b/document/src/main/java/com/yahoo/document/select/Result.java @@ -15,7 +15,7 @@ public enum Result { FALSE, INVALID; - // Inherit doc from Object. + @Override public String toString() { return name().toLowerCase(); } @@ -38,7 +38,7 @@ public enum Result { */ public static Result toResult(Object value) { if (value == null || value == Result.FALSE || value == Boolean.FALSE || - (Number.class.isInstance(value) && ((Number)value).doubleValue() == 0)) { + (value instanceof Number && ((Number)value).doubleValue() == 0)) { return Result.FALSE; } else if (value == INVALID) { return Result.INVALID; diff --git a/document/src/main/java/com/yahoo/document/select/ResultList.java b/document/src/main/java/com/yahoo/document/select/ResultList.java index 35b4a1ef5be..edf05eb044e 100644 --- a/document/src/main/java/com/yahoo/document/select/ResultList.java +++ b/document/src/main/java/com/yahoo/document/select/ResultList.java @@ -43,7 +43,7 @@ public class ResultList { } } - List<ResultPair> results = new ArrayList<ResultPair>(); + private List<ResultPair> results = new ArrayList<>(); public ResultList() { } @@ -86,7 +86,7 @@ public class ResultList { } } - boolean combineVariables(FieldPathIteratorHandler.VariableMap output, FieldPathIteratorHandler.VariableMap input) { + private boolean combineVariables(FieldPathIteratorHandler.VariableMap output, FieldPathIteratorHandler.VariableMap input) { // First, verify that all variables are overlapping for (Map.Entry<String, FieldPathIteratorHandler.IndexValue> entry : output.entrySet()) { FieldPathIteratorHandler.IndexValue found = input.get(entry.getKey()); @@ -196,7 +196,7 @@ public class ResultList { } return retVal; } else if (value == null || value == Result.FALSE || value == Boolean.FALSE || - (Number.class.isInstance(value) && ((Number)value).doubleValue() == 0)) { + (value instanceof Number && ((Number)value).doubleValue() == 0)) { return new ResultList(Result.FALSE); } else if (value == Result.INVALID) { return new ResultList(Result.INVALID); diff --git a/document/src/main/java/com/yahoo/document/select/convert/NowQueryExpression.java b/document/src/main/java/com/yahoo/document/select/convert/NowQueryExpression.java index d379a73aec1..a4ce6afb099 100644 --- a/document/src/main/java/com/yahoo/document/select/convert/NowQueryExpression.java +++ b/document/src/main/java/com/yahoo/document/select/convert/NowQueryExpression.java @@ -16,7 +16,7 @@ public class NowQueryExpression { private final ComparisonNode comparison; private final NowQueryNode now; - public NowQueryExpression(AttributeNode attribute, ComparisonNode comparison, ArithmeticNode arithmetic) { + NowQueryExpression(AttributeNode attribute, ComparisonNode comparison, ArithmeticNode arithmetic) { this.attribute = attribute; this.comparison = comparison; this.now = (arithmetic != null ? new NowQueryNode(arithmetic) : new NowQueryNode(0)); diff --git a/document/src/main/java/com/yahoo/document/select/convert/NowQueryNode.java b/document/src/main/java/com/yahoo/document/select/convert/NowQueryNode.java index 121fa0a45eb..0bd94a3854c 100644 --- a/document/src/main/java/com/yahoo/document/select/convert/NowQueryNode.java +++ b/document/src/main/java/com/yahoo/document/select/convert/NowQueryNode.java @@ -10,10 +10,10 @@ import com.yahoo.document.select.rule.ArithmeticNode; */ public class NowQueryNode { private final long value; - public NowQueryNode(long value) { + NowQueryNode(long value) { this.value = value; } - public NowQueryNode(ArithmeticNode node) { + NowQueryNode(ArithmeticNode node) { // Assumes that the structure is checked and verified earlier this.value = Long.parseLong(node.getItems().get(1).getNode().toString()); } diff --git a/document/src/main/java/com/yahoo/document/select/convert/SelectionExpressionConverter.java b/document/src/main/java/com/yahoo/document/select/convert/SelectionExpressionConverter.java index 46721254b9f..a5708871529 100644 --- a/document/src/main/java/com/yahoo/document/select/convert/SelectionExpressionConverter.java +++ b/document/src/main/java/com/yahoo/document/select/convert/SelectionExpressionConverter.java @@ -3,7 +3,20 @@ package com.yahoo.document.select.convert; import com.yahoo.document.select.NowCheckVisitor; import com.yahoo.document.select.Visitor; -import com.yahoo.document.select.rule.*; +import com.yahoo.document.select.rule.ArithmeticNode; +import com.yahoo.document.select.rule.AttributeNode; +import com.yahoo.document.select.rule.ComparisonNode; +import com.yahoo.document.select.rule.DocumentNode; +import com.yahoo.document.select.rule.EmbracedNode; +import com.yahoo.document.select.rule.ExpressionNode; +import com.yahoo.document.select.rule.IdNode; +import com.yahoo.document.select.rule.LiteralNode; +import com.yahoo.document.select.rule.LogicNode; +import com.yahoo.document.select.rule.NegationNode; +import com.yahoo.document.select.rule.NowNode; +import com.yahoo.document.select.rule.SearchColumnNode; +import com.yahoo.document.select.rule.VariableNode; + import java.util.HashMap; import java.util.Map; @@ -15,14 +28,13 @@ import java.util.Map; */ public class SelectionExpressionConverter implements Visitor { - private Map<String, NowQueryExpression> expressionMap = new HashMap<String, NowQueryExpression>(); + private Map<String, NowQueryExpression> expressionMap = new HashMap<>(); private class BuildState { public AttributeNode attribute; public ComparisonNode comparison; public ArithmeticNode arithmetic; public NowNode now; - public boolean hasNow() { return now != null; } } private BuildState state; @@ -38,7 +50,7 @@ public class SelectionExpressionConverter implements Visitor { } public Map<String, String> getQueryMap() { - Map<String, String> ret = new HashMap<String, String>(); + Map<String, String> ret = new HashMap<>(); for (NowQueryExpression expression : expressionMap.values()) { ret.put(expression.getDocumentType(), expression.toString()); } @@ -92,7 +104,6 @@ public class SelectionExpressionConverter implements Visitor { } state.comparison = node; if (state.attribute != null && - state.comparison != null && (state.arithmetic != null || state.now != null)) { NowQueryExpression expression = new NowQueryExpression(state.attribute, state.comparison, state.arithmetic); expressionMap.put(expression.getDocumentType(), expression); diff --git a/document/src/main/java/com/yahoo/document/select/parser/SelectParserUtils.java b/document/src/main/java/com/yahoo/document/select/parser/SelectParserUtils.java index 6537eefaa7a..2bfed803ea7 100644 --- a/document/src/main/java/com/yahoo/document/select/parser/SelectParserUtils.java +++ b/document/src/main/java/com/yahoo/document/select/parser/SelectParserUtils.java @@ -10,7 +10,7 @@ import java.math.BigInteger; */ public class SelectParserUtils { - public static long decodeLong(String str) { + static long decodeLong(String str) { if (str.startsWith("0x") || str.startsWith("0X")) { str = Long.toString(new BigInteger(str.substring(2), 16).longValue()); } diff --git a/document/src/main/java/com/yahoo/document/select/rule/ArithmeticNode.java b/document/src/main/java/com/yahoo/document/select/rule/ArithmeticNode.java index 015b3f24dd8..c39bd7e668d 100644 --- a/document/src/main/java/com/yahoo/document/select/rule/ArithmeticNode.java +++ b/document/src/main/java/com/yahoo/document/select/rule/ArithmeticNode.java @@ -39,12 +39,12 @@ public class ArithmeticNode implements ExpressionNode { return items; } - // Inherit doc from ExpressionNode. + @Override public BucketSet getBucketSet(BucketIdFactory factory) { return null; } - // Inherit doc from ExpressionNode. + @Override public Object evaluate(Context context) { StringBuilder ret = null; Stack<ValueItem> buf = new Stack<>(); @@ -80,7 +80,7 @@ public class ArithmeticNode implements ExpressionNode { ret.append(val); continue; } - } else if (Number.class.isInstance(val)) { + } else if (val instanceof Number) { if (!buf.isEmpty()) { while (buf.peek().operator > item.operator) { popOffTheTop(buf); @@ -174,10 +174,12 @@ public class ArithmeticNode implements ExpressionNode { } } + @Override public OrderingSpecification getOrdering(int order) { return null; } + @Override public void accept(Visitor visitor) { visitor.visit(this); } @@ -196,7 +198,7 @@ public class ArithmeticNode implements ExpressionNode { private int operator; private ExpressionNode node; - public NodeItem(int operator, ExpressionNode node) { + NodeItem(int operator, ExpressionNode node) { this.operator = operator; this.node = node; } diff --git a/document/src/main/java/com/yahoo/document/select/rule/AttributeNode.java b/document/src/main/java/com/yahoo/document/select/rule/AttributeNode.java index b6d75acd0ea..3e03709d0f1 100644 --- a/document/src/main/java/com/yahoo/document/select/rule/AttributeNode.java +++ b/document/src/main/java/com/yahoo/document/select/rule/AttributeNode.java @@ -2,10 +2,21 @@ package com.yahoo.document.select.rule; import com.yahoo.collections.BobHash; -import com.yahoo.document.*; +import com.yahoo.document.BucketIdFactory; +import com.yahoo.document.Document; +import com.yahoo.document.DocumentGet; +import com.yahoo.document.DocumentPut; +import com.yahoo.document.DocumentRemove; +import com.yahoo.document.DocumentUpdate; +import com.yahoo.document.FieldPath; import com.yahoo.document.datatypes.FieldPathIteratorHandler; import com.yahoo.document.datatypes.FieldValue; -import com.yahoo.document.select.*; +import com.yahoo.document.select.BucketSet; +import com.yahoo.document.select.Context; +import com.yahoo.document.select.OrderingSpecification; +import com.yahoo.document.select.Result; +import com.yahoo.document.select.ResultList; +import com.yahoo.document.select.Visitor; import java.util.ArrayList; import java.util.List; @@ -16,7 +27,7 @@ import java.util.List; public class AttributeNode implements ExpressionNode { private ExpressionNode value; - private final List<Item> items = new ArrayList<Item>(); + private final List<Item> items = new ArrayList<>(); public AttributeNode(ExpressionNode value, List items) { this.value = value; @@ -43,14 +54,14 @@ public class AttributeNode implements ExpressionNode { return items; } - // Inherit doc from ExpressionNode. + @Override public BucketSet getBucketSet(BucketIdFactory factory) { return null; } - // Inherit doc from ExpressionNode. + @Override public Object evaluate(Context context) { - String pos = value.toString(); + StringBuilder pos = new StringBuilder(value.toString()); Object obj = value.evaluate(context); StringBuilder builder = new StringBuilder(); @@ -74,7 +85,7 @@ public class AttributeNode implements ExpressionNode { obj = evaluateFunction(item.getName(), obj); } - pos = pos + "." + item; + pos.append(".").append(item); } if (builder.length() > 0) { @@ -98,7 +109,7 @@ public class AttributeNode implements ExpressionNode { private static Object applyFunction(String function, Object value) { if (function.equalsIgnoreCase("abs")) { - if (Number.class.isInstance(value)) { + if (value instanceof Number) { Number nValue = (Number)value; if (value instanceof Double) { return nValue.doubleValue() * (nValue.doubleValue() < 0 ? -1 : 1); @@ -157,6 +168,7 @@ public class AttributeNode implements ExpressionNode { return applyFunction(function, value); } + @Override public void accept(Visitor visitor) { visitor.visit(this); } @@ -171,6 +183,7 @@ public class AttributeNode implements ExpressionNode { return ret.toString(); } + @Override public OrderingSpecification getOrdering(int order) { return null; } diff --git a/document/src/main/java/com/yahoo/document/select/rule/ComparisonNode.java b/document/src/main/java/com/yahoo/document/select/rule/ComparisonNode.java index 2d4ebc905d6..a7ab3d62c58 100644 --- a/document/src/main/java/com/yahoo/document/select/rule/ComparisonNode.java +++ b/document/src/main/java/com/yahoo/document/select/rule/ComparisonNode.java @@ -108,6 +108,7 @@ public class ComparisonNode implements ExpressionNode { return null; } + @Override public OrderingSpecification getOrdering(int order) { if (lhs instanceof IdNode && rhs instanceof LiteralNode) { return getOrdering((IdNode)lhs, (LiteralNode)rhs, operator, order); @@ -118,7 +119,7 @@ public class ComparisonNode implements ExpressionNode { return null; } - // Inherit doc from ExpressionNode. + @Override public BucketSet getBucketSet(BucketIdFactory factory) { if (operator.equals("==") || operator.equals("=")) { if (lhs instanceof IdNode && rhs instanceof LiteralNode) { @@ -421,6 +422,7 @@ public class ComparisonNode implements ExpressionNode { } } + @Override public void accept(Visitor visitor) { visitor.visit(this); } diff --git a/document/src/main/java/com/yahoo/document/select/rule/DocumentNode.java b/document/src/main/java/com/yahoo/document/select/rule/DocumentNode.java index c0907693dab..9b766a56eb3 100644 --- a/document/src/main/java/com/yahoo/document/select/rule/DocumentNode.java +++ b/document/src/main/java/com/yahoo/document/select/rule/DocumentNode.java @@ -1,7 +1,13 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.document.select.rule; -import com.yahoo.document.*; +import com.yahoo.document.BucketIdFactory; +import com.yahoo.document.DocumentGet; +import com.yahoo.document.DocumentOperation; +import com.yahoo.document.DocumentPut; +import com.yahoo.document.DocumentRemove; +import com.yahoo.document.DocumentType; +import com.yahoo.document.DocumentUpdate; import com.yahoo.document.select.BucketSet; import com.yahoo.document.select.Context; import com.yahoo.document.select.OrderingSpecification; diff --git a/document/src/main/java/com/yahoo/document/select/rule/EmbracedNode.java b/document/src/main/java/com/yahoo/document/select/rule/EmbracedNode.java index e1bd4b2d53f..7bf3413bafb 100644 --- a/document/src/main/java/com/yahoo/document/select/rule/EmbracedNode.java +++ b/document/src/main/java/com/yahoo/document/select/rule/EmbracedNode.java @@ -27,11 +27,12 @@ public class EmbracedNode implements ExpressionNode { return this; } - // Inherit doc from ExpressionNode. + @Override public BucketSet getBucketSet(BucketIdFactory factory) { return node.getBucketSet(factory); } + @Override public Object evaluate(Context context) { return node.evaluate(context); } @@ -41,10 +42,12 @@ public class EmbracedNode implements ExpressionNode { return "(" + node + ")"; } + @Override public void accept(Visitor visitor) { visitor.visit(this); } + @Override public OrderingSpecification getOrdering(int order) { return null; } diff --git a/document/src/main/java/com/yahoo/document/select/rule/ExpressionNode.java b/document/src/main/java/com/yahoo/document/select/rule/ExpressionNode.java index 29f49c4459c..9350b8ac1c5 100644 --- a/document/src/main/java/com/yahoo/document/select/rule/ExpressionNode.java +++ b/document/src/main/java/com/yahoo/document/select/rule/ExpressionNode.java @@ -21,14 +21,14 @@ public interface ExpressionNode { * @param doc The document to evaluate over. * @return The value of this. */ - public Object evaluate(Context doc); + Object evaluate(Context doc); /** * Returns the set of bucket ids covered by this node. * * @param factory The factory used by the current application. */ - public BucketSet getBucketSet(BucketIdFactory factory); + BucketSet getBucketSet(BucketIdFactory factory); /** * If this document selection implies a specific ordering (using the orderdoc scheme), @@ -36,13 +36,13 @@ public interface ExpressionNode { * * @param order The order in which we are looking to traverse the ordering (ASCENDING or DESCENDING) */ - public OrderingSpecification getOrdering(int order); + OrderingSpecification getOrdering(int order); /** * Perform visitation of this node. * * @param visitor The visitor that wishes to visit the node. */ - public void accept(Visitor visitor); + void accept(Visitor visitor); } diff --git a/document/src/main/java/com/yahoo/document/select/rule/IdNode.java b/document/src/main/java/com/yahoo/document/select/rule/IdNode.java index 3c15a2866cc..3ca53c1d07d 100644 --- a/document/src/main/java/com/yahoo/document/select/rule/IdNode.java +++ b/document/src/main/java/com/yahoo/document/select/rule/IdNode.java @@ -3,8 +3,11 @@ package com.yahoo.document.select.rule; import com.yahoo.document.DocumentId; import com.yahoo.document.BucketIdFactory; -import com.yahoo.document.select.*; -import com.yahoo.document.idstring.*; +import com.yahoo.document.idstring.OrderDocIdString; +import com.yahoo.document.select.BucketSet; +import com.yahoo.document.select.Context; +import com.yahoo.document.select.OrderingSpecification; +import com.yahoo.document.select.Visitor; /** * @author Simon Thoresen Hult @@ -46,7 +49,7 @@ public class IdNode implements ExpressionNode { return divisionBits; } - // Inherit doc from ExpressionNode. + @Override public BucketSet getBucketSet(BucketIdFactory factory) { return null; } @@ -55,7 +58,7 @@ public class IdNode implements ExpressionNode { return null; } - // Inherit doc from ExpressionNode. + @Override public Object evaluate(Context context) { DocumentId id = context.getDocumentOperation().getId(); if (id == null) { @@ -97,6 +100,7 @@ public class IdNode implements ExpressionNode { return null; } + @Override public void accept(Visitor visitor) { visitor.visit(this); } diff --git a/document/src/main/java/com/yahoo/document/select/rule/LogicNode.java b/document/src/main/java/com/yahoo/document/select/rule/LogicNode.java index 804dda5741d..1ae397398b3 100644 --- a/document/src/main/java/com/yahoo/document/select/rule/LogicNode.java +++ b/document/src/main/java/com/yahoo/document/select/rule/LogicNode.java @@ -188,11 +188,11 @@ public class LogicNode implements ExpressionNode { buf.push(new LazyCombinedItem(lhs, rhs)); } + @Override public void accept(Visitor visitor) { visitor.visit(this); } - // Inherit doc from Object. @Override public String toString() { StringBuilder ret = new StringBuilder(); diff --git a/document/src/main/java/com/yahoo/document/select/rule/NegationNode.java b/document/src/main/java/com/yahoo/document/select/rule/NegationNode.java index c89759bbf07..ba75b13747d 100644 --- a/document/src/main/java/com/yahoo/document/select/rule/NegationNode.java +++ b/document/src/main/java/com/yahoo/document/select/rule/NegationNode.java @@ -28,16 +28,17 @@ public class NegationNode implements ExpressionNode { return this; } - // Inherit doc from ExpressionNode. + @Override public BucketSet getBucketSet(BucketIdFactory factory) { return null; } - // Inherit doc from ExpressionNode. + @Override public Object evaluate(Context context) { return Result.invert(Result.toResult(node.evaluate(context))); } + @Override public void accept(Visitor visitor) { visitor.visit(this); } @@ -47,6 +48,7 @@ public class NegationNode implements ExpressionNode { return "not " + node; } + @Override public OrderingSpecification getOrdering(int order) { return null; } diff --git a/document/src/main/java/com/yahoo/document/select/rule/NowNode.java b/document/src/main/java/com/yahoo/document/select/rule/NowNode.java index 900423addff..567d9ddcb1f 100644 --- a/document/src/main/java/com/yahoo/document/select/rule/NowNode.java +++ b/document/src/main/java/com/yahoo/document/select/rule/NowNode.java @@ -1,22 +1,25 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.document.select.rule; + import com.yahoo.document.BucketIdFactory; -import com.yahoo.document.select.*; +import com.yahoo.document.select.BucketSet; +import com.yahoo.document.select.Context; +import com.yahoo.document.select.OrderingSpecification; +import com.yahoo.document.select.Visitor; /** * @author Ulf Lilleengen */ public class NowNode implements ExpressionNode { - // Inherit doc from ExpressionNode. + @Override public BucketSet getBucketSet(BucketIdFactory factory) { return null; } - // Inherit doc from ExpressionNode. + @Override public Object evaluate(Context context) { - Object ret = System.currentTimeMillis() / 1000; - return ret; + return System.currentTimeMillis() / 1000; } @Override @@ -24,10 +27,11 @@ public class NowNode implements ExpressionNode { return "now()"; } + @Override public OrderingSpecification getOrdering(int order) { return null; } - + @Override public void accept(Visitor visitor) { visitor.visit(this); } diff --git a/document/src/main/java/com/yahoo/document/select/rule/SearchColumnNode.java b/document/src/main/java/com/yahoo/document/select/rule/SearchColumnNode.java index ffcf576dcfc..071e51c192f 100644 --- a/document/src/main/java/com/yahoo/document/select/rule/SearchColumnNode.java +++ b/document/src/main/java/com/yahoo/document/select/rule/SearchColumnNode.java @@ -3,7 +3,10 @@ package com.yahoo.document.select.rule; import com.yahoo.document.BucketDistribution; import com.yahoo.document.BucketIdFactory; -import com.yahoo.document.select.*; +import com.yahoo.document.select.BucketSet; +import com.yahoo.document.select.Context; +import com.yahoo.document.select.OrderingSpecification; +import com.yahoo.document.select.Visitor; /** * @author Simon Thoresen Hult @@ -31,16 +34,17 @@ public class SearchColumnNode implements ExpressionNode { return distribution; } - // Inherit doc from ExpressionNode. + @Override public BucketSet getBucketSet(BucketIdFactory factory) { return null; } - // Inherit doc from ExpressionNode. + @Override public Object evaluate(Context context) { return distribution.getColumn(factory.getBucketId(context.getDocumentOperation().getId())); } + @Override public void accept(Visitor visitor) { visitor.visit(this); } @@ -50,6 +54,7 @@ public class SearchColumnNode implements ExpressionNode { return "searchcolumn." + field; } + @Override public OrderingSpecification getOrdering(int order) { return null; } diff --git a/document/src/main/java/com/yahoo/document/select/simple/IdSpecParser.java b/document/src/main/java/com/yahoo/document/select/simple/IdSpecParser.java index f792c4b8c0f..db4d46e871b 100644 --- a/document/src/main/java/com/yahoo/document/select/simple/IdSpecParser.java +++ b/document/src/main/java/com/yahoo/document/select/simple/IdSpecParser.java @@ -9,7 +9,7 @@ import com.yahoo.document.select.rule.IdNode; public class IdSpecParser extends Parser { private IdNode id; public IdNode getId() { return id; } - public boolean isUserSpec() { return "user".equals(id.getField()); } + boolean isUserSpec() { return "user".equals(id.getField()); } public boolean parse(CharSequence s) { boolean retval = false; int pos = eatWhite(s); diff --git a/document/src/main/java/com/yahoo/document/select/simple/StringParser.java b/document/src/main/java/com/yahoo/document/select/simple/StringParser.java index d43c57aee03..50d4915e360 100644 --- a/document/src/main/java/com/yahoo/document/select/simple/StringParser.java +++ b/document/src/main/java/com/yahoo/document/select/simple/StringParser.java @@ -14,7 +14,7 @@ public class StringParser extends Parser { int pos = eatWhite(s); if (pos + 1 < s.length()) { if (s.charAt(pos++) == '"') { - StringBuffer str = new StringBuffer(""); + StringBuilder str = new StringBuilder(); for(; (pos < s.length()) && (s.charAt(pos) != '"');pos++) { if ((pos < s.length()) && (s.charAt(pos) == '\\')) { pos++; |