diff options
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/querytransform/QueryTreeUtil.java')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/querytransform/QueryTreeUtil.java | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/querytransform/QueryTreeUtil.java b/container-search/src/main/java/com/yahoo/search/querytransform/QueryTreeUtil.java new file mode 100644 index 00000000000..fb5373d59ea --- /dev/null +++ b/container-search/src/main/java/com/yahoo/search/querytransform/QueryTreeUtil.java @@ -0,0 +1,35 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.search.querytransform; + +import com.yahoo.prelude.query.AndItem; +import com.yahoo.prelude.query.Item; +import com.yahoo.search.Query; +import com.yahoo.search.query.QueryTree; + +/** + * Utility class for manipulating a QueryTree. + * + * @author <a href="mailto:geirst@yahoo-inc.com">Geir Storli</a> + */ +public class QueryTreeUtil { + + static public void andQueryItemWithRoot(Query query, Item item) { + andQueryItemWithRoot(query.getModel().getQueryTree(), item); + } + + static public void andQueryItemWithRoot(QueryTree tree, Item item) { + if (tree.isEmpty()) { + tree.setRoot(item); + } else { + Item oldRoot = tree.getRoot(); + if (oldRoot.getClass() == AndItem.class) { + ((AndItem) oldRoot).addItem(item); + } else { + AndItem newRoot = new AndItem(); + newRoot.addItem(oldRoot); + newRoot.addItem(item); + tree.setRoot(newRoot); + } + } + } +} |