diff options
Diffstat (limited to 'container-search/src/main/java/com/yahoo/search/grouping/request/GroupingOperation.java')
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/grouping/request/GroupingOperation.java | 56 |
1 files changed, 7 insertions, 49 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingOperation.java b/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingOperation.java index 93619913b4f..4c29ca7d98d 100644 --- a/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingOperation.java +++ b/container-search/src/main/java/com/yahoo/search/grouping/request/GroupingOperation.java @@ -23,7 +23,7 @@ public abstract class GroupingOperation extends GroupingNode { private final List<GroupingExpression> orderBy = new ArrayList<>(); private final List<GroupingExpression> outputs = new ArrayList<>(); private final List<GroupingOperation> children = new ArrayList<>(); - private final Map<String, GroupingExpression> aliases = LazyMap.newHashMap(); + private final Map<String, GroupingExpression> alias = LazyMap.newHashMap(); private final Set<String> hints = LazySet.newHashSet(); private GroupingExpression groupBy = null; @@ -35,44 +35,10 @@ public abstract class GroupingOperation extends GroupingNode { private int level = -1; private int max = -1; - protected GroupingOperation(String image, String label) { - super(image, label); - } - - protected GroupingOperation(GroupingOperation parentOfCopy, - String image, - String label, - List<GroupingExpression> orderBy, - List<GroupingExpression> outputs, - List<GroupingOperation> children, - Map<String, GroupingExpression> aliases, - Set<String> hints, - GroupingExpression groupBy, - String where, - boolean forceSinglePass, - double accuracy, - int precision, - int level, - int max) { - super(image, label); - this.parent = parentOfCopy; - orderBy.forEach(item -> this.orderBy.add(item.copy())); - outputs.forEach(item -> this.outputs.add(item.copy())); - children.forEach(item -> this.children.add(item.copy(this))); - aliases.forEach((key, value) -> this.aliases.put(key, value.copy())); - this.hints.addAll(hints); - if (groupBy != null) this.groupBy = groupBy.copy(); - this.where = where; - this.forceSinglePass = forceSinglePass; - this.accuracy = accuracy; - this.precision = precision; - this.level = level; - this.max = max; + protected GroupingOperation(String image) { + super(image); } - /** Returns a deep copy of this */ - public abstract GroupingOperation copy(GroupingOperation parentOfCopy); - /** * Registers an alias with this operation. An alias is made available to expressions in both this node and all child * nodes. @@ -82,7 +48,7 @@ public abstract class GroupingOperation extends GroupingNode { * @return This, to allow chaining. */ public GroupingOperation putAlias(String id, GroupingExpression exp) { - aliases.put(id, exp); + alias.put(id, exp); return this; } @@ -94,8 +60,8 @@ public abstract class GroupingOperation extends GroupingNode { * @return The expression associated with the id. */ public GroupingExpression getAlias(String id) { - if (aliases.containsKey(id)) { - return aliases.get(id); + if (alias.containsKey(id)) { + return alias.get(id); } else if (parent != null) { return parent.getAlias(id); } else { @@ -103,11 +69,6 @@ public abstract class GroupingOperation extends GroupingNode { } } - /** Returns a direct, mutable copy of the aliases of this, never null */ - protected Map<String, GroupingExpression> getAliases() { - return aliases; - } - /** * Adds a hint to this. * @@ -264,9 +225,6 @@ public abstract class GroupingOperation extends GroupingNode { } } - /** Returns the parent of this, or null if none */ - protected GroupingOperation getParent() { return parent; } - public GroupingOperation setForceSinglePass(boolean forceSinglePass) { this.forceSinglePass = forceSinglePass; return this; @@ -488,7 +446,7 @@ public abstract class GroupingOperation extends GroupingNode { * @param visitor The visitor to call. */ public void visitExpressions(ExpressionVisitor visitor) { - for (GroupingExpression exp : aliases.values()) { + for (GroupingExpression exp : alias.values()) { exp.visit(visitor); } for (GroupingExpression exp : outputs) { |