diff options
author | Arne H Juul <arnej@yahooinc.com> | 2021-10-21 13:06:18 +0000 |
---|---|---|
committer | Arne H Juul <arnej@yahooinc.com> | 2021-10-21 14:21:27 +0000 |
commit | d1fd3f5dd8b4f44c4e8a36390273205e79f8728c (patch) | |
tree | 5c47a9488e48a4978aa9654ed27eb76cfa62ce6a /container-search/src/main/java/com/yahoo/search | |
parent | 9abe019606f2367b05e4e13d796de65dddf7c449 (diff) |
add TrueItem
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/yql/VespaSerializer.java | 12 | ||||
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/yql/YqlParser.java | 6 |
2 files changed, 17 insertions, 1 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/yql/VespaSerializer.java b/container-search/src/main/java/com/yahoo/search/yql/VespaSerializer.java index 012f427a781..897bcde4fc3 100644 --- a/container-search/src/main/java/com/yahoo/search/yql/VespaSerializer.java +++ b/container-search/src/main/java/com/yahoo/search/yql/VespaSerializer.java @@ -97,6 +97,7 @@ import com.yahoo.prelude.query.SuffixItem; import com.yahoo.prelude.query.TaggableItem; import com.yahoo.prelude.query.ToolBox; import com.yahoo.prelude.query.ToolBox.QueryVisitor; +import com.yahoo.prelude.query.TrueItem; import com.yahoo.prelude.query.UriItem; import com.yahoo.prelude.query.WandItem; import com.yahoo.prelude.query.WeakAndItem; @@ -484,6 +485,16 @@ public class VespaSerializer { } + private static class TrueSerializer extends Serializer<TrueItem> { + @Override + void onExit(StringBuilder destination, TrueItem item) { } + @Override + boolean serialize(StringBuilder destination, TrueItem item) { + destination.append("true"); + return false; + } + } + private static class FalseSerializer extends Serializer<FalseItem> { @Override void onExit(StringBuilder destination, FalseItem item) { } @@ -1205,6 +1216,7 @@ public class VespaSerializer { dispatchBuilder.put(IntItem.class, new NumberSerializer()); dispatchBuilder.put(GeoLocationItem.class, new GeoLocationSerializer()); dispatchBuilder.put(BoolItem.class, new BoolSerializer()); + dispatchBuilder.put(TrueItem.class, new TrueSerializer()); dispatchBuilder.put(FalseItem.class, new FalseSerializer()); dispatchBuilder.put(MarkerWordItem.class, new WordSerializer()); // gotcha dispatchBuilder.put(NearItem.class, new NearSerializer()); 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 fa2b9fd14e7..c688f61add0 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 @@ -62,6 +62,7 @@ import com.yahoo.prelude.query.TaggableItem; import com.yahoo.prelude.query.TermItem; import com.yahoo.prelude.query.ToolBox; import com.yahoo.prelude.query.ToolBox.QueryVisitor; +import com.yahoo.prelude.query.TrueItem; import com.yahoo.prelude.query.UriItem; import com.yahoo.prelude.query.WandItem; import com.yahoo.prelude.query.WeakAndItem; @@ -450,10 +451,13 @@ public class YqlParser implements Parser { private Item buildLiteral(OperatorNode<ExpressionOperator> ast) { var literal = ast.getArgument(0); + if (Boolean.TRUE.equals(literal)) { + return new TrueItem(); + } if (Boolean.FALSE.equals(literal)) { return new FalseItem(); } - throw newUnexpectedArgumentException(literal, Boolean.FALSE); + throw newUnexpectedArgumentException(literal, Boolean.FALSE, Boolean.TRUE); } private Item buildNearestNeighbor(OperatorNode<ExpressionOperator> ast) { |