class RequestBuilder extends Object
Grouping
objects from an instance of GroupingOperation
. It is used by the GroupingExecutor
.Modifier and Type | Class and Description |
---|---|
private static class |
RequestBuilder.BuildFrame |
private static class |
RequestBuilder.BuildState |
Modifier and Type | Field and Description |
---|---|
private ExpressionConverter |
converter |
private static int |
LOOKAHEAD |
private List<com.yahoo.searchlib.aggregation.Grouping> |
requestList |
private GroupingOperation |
root |
private int |
tag |
private GroupingTransform |
transform |
Constructor and Description |
---|
RequestBuilder(int requestId)
Constructs a new instance of this class.
|
Modifier and Type | Method and Description |
---|---|
RequestBuilder |
addContinuations(Iterable<Continuation> continuations) |
void |
build()
Constructs a set of Vespa specific grouping request that corresponds to the parameters given to this builder.
|
private com.yahoo.searchlib.aggregation.Group |
getLeafGroup(RequestBuilder.BuildFrame frame) |
private com.yahoo.searchlib.aggregation.GroupingLevel |
getLeafGroupingLevel(RequestBuilder.BuildFrame frame) |
List<com.yahoo.searchlib.aggregation.Grouping> |
getRequestList()
Returns the list of grouping objects that were created when
build() was called. |
GroupingTransform |
getTransform()
Returns the transform that was created when
build() was called. |
private void |
injectGroupByToExpressionCountAggregator(RequestBuilder.BuildFrame frame) |
private boolean |
isRootOperation(RequestBuilder.BuildFrame frame) |
private void |
processRequestNode(RequestBuilder.BuildFrame frame) |
private void |
pruneRequests() |
private void |
resolveEach(RequestBuilder.BuildFrame frame) |
private void |
resolveGroupBy(RequestBuilder.BuildFrame frame) |
private void |
resolveMax(RequestBuilder.BuildFrame frame) |
private void |
resolveOrderBy(RequestBuilder.BuildFrame frame) |
private void |
resolveOutput(RequestBuilder.BuildFrame frame) |
private void |
resolvePrecision(RequestBuilder.BuildFrame frame) |
private void |
resolveState(RequestBuilder.BuildFrame frame) |
private void |
resolveWhere(RequestBuilder.BuildFrame frame) |
RequestBuilder |
setDefaultSummaryName(String summaryName)
Sets the name of the summary class to use if a
SummaryValue has none. |
RequestBuilder |
setRootOperation(GroupingOperation root)
Sets the abstract syntax tree of the request whose back-end queries to create.
|
RequestBuilder |
setTimeZone(TimeZone timeZone)
Sets the time zone to build the request for.
|
private com.yahoo.searchlib.aggregation.AggregationResult |
toAggregationResult(GroupingExpression exp,
com.yahoo.searchlib.aggregation.Group group,
RequestBuilder.BuildFrame frame) |
private static final int LOOKAHEAD
private final ExpressionConverter converter
private final List<com.yahoo.searchlib.aggregation.Grouping> requestList
private final GroupingTransform transform
private GroupingOperation root
private int tag
public RequestBuilder(int requestId)
requestId
- The id of the corresponding GroupingRequest
.public RequestBuilder setRootOperation(GroupingOperation root)
root
- The grouping request to convert.public RequestBuilder setTimeZone(TimeZone timeZone)
timeZone
- The time zone to set.public RequestBuilder setDefaultSummaryName(String summaryName)
SummaryValue
has none.summaryName
- The summary class name to set.public GroupingTransform getTransform()
build()
was called.public List<com.yahoo.searchlib.aggregation.Grouping> getRequestList()
build()
was called.public void build()
IllegalStateException
- If this method is called more than once.UnsupportedOperationException
- If the grouping request contains unsupported constructs.public RequestBuilder addContinuations(Iterable<Continuation> continuations)
private void processRequestNode(RequestBuilder.BuildFrame frame)
private void injectGroupByToExpressionCountAggregator(RequestBuilder.BuildFrame frame)
private void resolveEach(RequestBuilder.BuildFrame frame)
private void resolveState(RequestBuilder.BuildFrame frame)
private void resolveGroupBy(RequestBuilder.BuildFrame frame)
private void resolveMax(RequestBuilder.BuildFrame frame)
private void resolveOrderBy(RequestBuilder.BuildFrame frame)
private void resolveOutput(RequestBuilder.BuildFrame frame)
private com.yahoo.searchlib.aggregation.AggregationResult toAggregationResult(GroupingExpression exp, com.yahoo.searchlib.aggregation.Group group, RequestBuilder.BuildFrame frame)
private void resolvePrecision(RequestBuilder.BuildFrame frame)
private void resolveWhere(RequestBuilder.BuildFrame frame)
private boolean isRootOperation(RequestBuilder.BuildFrame frame)
private com.yahoo.searchlib.aggregation.GroupingLevel getLeafGroupingLevel(RequestBuilder.BuildFrame frame)
private com.yahoo.searchlib.aggregation.Group getLeafGroup(RequestBuilder.BuildFrame frame)
private void pruneRequests()
Copyright © 2017. All rights reserved.