summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/search/grouping/request/DocumentValue.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/grouping/request/DocumentValue.java')
-rw-r--r--container-search/src/main/java/com/yahoo/search/grouping/request/DocumentValue.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/DocumentValue.java b/container-search/src/main/java/com/yahoo/search/grouping/request/DocumentValue.java
new file mode 100644
index 00000000000..98d5a6fe21f
--- /dev/null
+++ b/container-search/src/main/java/com/yahoo/search/grouping/request/DocumentValue.java
@@ -0,0 +1,24 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.search.grouping.request;
+
+/**
+ * This class represents a document value in a {@link GroupingExpression}. As such, the subclasses of this can only be
+ * used as document-level expressions (i.e. level 0, see {@link GroupingExpression#resolveLevel(int)}).
+ *
+ * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a>
+ */
+public abstract class DocumentValue extends GroupingExpression {
+
+ protected DocumentValue(String image) {
+ super(image);
+ }
+
+ @Override
+ public void resolveLevel(int level) {
+ if (level != 0) {
+ throw new IllegalArgumentException("Expression '" + this + "' not applicable for " +
+ GroupingOperation.getLevelDesc(level) + ".");
+ }
+ super.resolveLevel(level);
+ }
+}