aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingExpression.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/grouping/request/GroupingExpression.java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/GroupingExpression.java14
1 files changed, 10 insertions, 4 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingExpression.java b/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingExpression.java
index 2f7691156e5..ad97f5519ee 100644
--- a/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingExpression.java
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingExpression.java
@@ -15,10 +15,14 @@ public abstract class GroupingExpression extends GroupingNode {
private Integer level = null;
- protected GroupingExpression(String image) {
- super(image);
+ protected GroupingExpression(String image, String label, Integer level) {
+ super(image, label);
+ this.level = level;
}
+ /** Returns a deep copy of this */
+ public abstract GroupingExpression copy();
+
/**
* Resolves the conceptual level of this expression. This level represents the type of data that is consumed by this
* expression, where level 0 is a single hit, level 1 is a group, level 2 is a list of groups, and so forth. This
@@ -39,8 +43,8 @@ public abstract class GroupingExpression extends GroupingNode {
/**
* Returns the conceptual level of this expression.
*
- * @return The level.
- * @throws IllegalArgumentException Thrown if the level of this expression has not been resolved.
+ * @return the level.
+ * @throws IllegalArgumentException thrown if the level of this expression has not been resolved.
* @see #resolveLevel(int)
*/
public int getLevel() {
@@ -50,6 +54,8 @@ public abstract class GroupingExpression extends GroupingNode {
return level;
}
+ protected final Integer getLevelOrNull() { return level; }
+
/**
* Recursively calls {@link ExpressionVisitor#visitExpression(GroupingExpression)} for this expression and all of
* its argument expressions.