AbstractNodeVisitor.java

1
/*
2
 * Copyright OpenSearch Contributors
3
 * SPDX-License-Identifier: Apache-2.0
4
 */
5
6
7
package org.opensearch.sql.ast;
8
9
import org.opensearch.sql.ast.expression.AggregateFunction;
10
import org.opensearch.sql.ast.expression.Alias;
11
import org.opensearch.sql.ast.expression.AllFields;
12
import org.opensearch.sql.ast.expression.And;
13
import org.opensearch.sql.ast.expression.Argument;
14
import org.opensearch.sql.ast.expression.AttributeList;
15
import org.opensearch.sql.ast.expression.Case;
16
import org.opensearch.sql.ast.expression.Cast;
17
import org.opensearch.sql.ast.expression.Compare;
18
import org.opensearch.sql.ast.expression.ConstantFunction;
19
import org.opensearch.sql.ast.expression.EqualTo;
20
import org.opensearch.sql.ast.expression.Field;
21
import org.opensearch.sql.ast.expression.Function;
22
import org.opensearch.sql.ast.expression.HighlightFunction;
23
import org.opensearch.sql.ast.expression.In;
24
import org.opensearch.sql.ast.expression.Interval;
25
import org.opensearch.sql.ast.expression.Let;
26
import org.opensearch.sql.ast.expression.Literal;
27
import org.opensearch.sql.ast.expression.Map;
28
import org.opensearch.sql.ast.expression.Not;
29
import org.opensearch.sql.ast.expression.Or;
30
import org.opensearch.sql.ast.expression.QualifiedName;
31
import org.opensearch.sql.ast.expression.RelevanceFieldList;
32
import org.opensearch.sql.ast.expression.Span;
33
import org.opensearch.sql.ast.expression.UnresolvedArgument;
34
import org.opensearch.sql.ast.expression.UnresolvedAttribute;
35
import org.opensearch.sql.ast.expression.When;
36
import org.opensearch.sql.ast.expression.WindowFunction;
37
import org.opensearch.sql.ast.expression.Xor;
38
import org.opensearch.sql.ast.tree.AD;
39
import org.opensearch.sql.ast.tree.Aggregation;
40
import org.opensearch.sql.ast.tree.Dedupe;
41
import org.opensearch.sql.ast.tree.Eval;
42
import org.opensearch.sql.ast.tree.Filter;
43
import org.opensearch.sql.ast.tree.Head;
44
import org.opensearch.sql.ast.tree.Kmeans;
45
import org.opensearch.sql.ast.tree.Limit;
46
import org.opensearch.sql.ast.tree.ML;
47
import org.opensearch.sql.ast.tree.Parse;
48
import org.opensearch.sql.ast.tree.Project;
49
import org.opensearch.sql.ast.tree.RareTopN;
50
import org.opensearch.sql.ast.tree.Relation;
51
import org.opensearch.sql.ast.tree.RelationSubquery;
52
import org.opensearch.sql.ast.tree.Rename;
53
import org.opensearch.sql.ast.tree.Sort;
54
import org.opensearch.sql.ast.tree.TableFunction;
55
import org.opensearch.sql.ast.tree.Values;
56
57
/**
58
 * AST nodes visitor Defines the traverse path.
59
 */
60
public abstract class AbstractNodeVisitor<T, C> {
61
62
  public T visit(Node node, C context) {
63
    return null;
64
  }
65
66
  /**
67
   * Visit child node.
68
   * @param node {@link Node}
69
   * @param context Context
70
   * @return Return Type.
71
   */
72
  public T visitChildren(Node node, C context) {
73
    T result = defaultResult();
74
75
    for (Node child : node.getChild()) {
76
      T childResult = child.accept(this, context);
77
      result = aggregateResult(result, childResult);
78
    }
79 1 1. visitChildren : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitChildren → SURVIVED
    return result;
80
  }
81
82
  private T defaultResult() {
83
    return null;
84
  }
85
86
  private T aggregateResult(T aggregate, T nextResult) {
87 1 1. aggregateResult : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::aggregateResult → SURVIVED
    return nextResult;
88
  }
89
90
  public T visitRelation(Relation node, C context) {
91 1 1. visitRelation : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitRelation → NO_COVERAGE
    return visitChildren(node, context);
92
  }
93
94
  public T visitRelationSubquery(RelationSubquery node, C context) {
95 1 1. visitRelationSubquery : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitRelationSubquery → NO_COVERAGE
    return visitChildren(node, context);
96
  }
97
98
  public T visitTableFunction(TableFunction node, C context) {
99 1 1. visitTableFunction : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitTableFunction → NO_COVERAGE
    return visitChildren(node, context);
100
  }
101
102
  public T visitFilter(Filter node, C context) {
103 1 1. visitFilter : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitFilter → NO_COVERAGE
    return visitChildren(node, context);
104
  }
105
106
  public T visitProject(Project node, C context) {
107 1 1. visitProject : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitProject → NO_COVERAGE
    return visitChildren(node, context);
108
  }
109
110
  public T visitAggregation(Aggregation node, C context) {
111 1 1. visitAggregation : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitAggregation → NO_COVERAGE
    return visitChildren(node, context);
112
  }
113
114
  public T visitEqualTo(EqualTo node, C context) {
115 1 1. visitEqualTo : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitEqualTo → NO_COVERAGE
    return visitChildren(node, context);
116
  }
117
118
  public T visitLiteral(Literal node, C context) {
119 1 1. visitLiteral : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitLiteral → NO_COVERAGE
    return visitChildren(node, context);
120
  }
121
122
  public T visitRelevanceFieldList(RelevanceFieldList node, C context) {
123 1 1. visitRelevanceFieldList : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitRelevanceFieldList → NO_COVERAGE
    return visitChildren(node, context);
124
  }
125
126
  public T visitConstantFunction(ConstantFunction node, C context) {
127 1 1. visitConstantFunction : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitConstantFunction → NO_COVERAGE
    return visitChildren(node, context);
128
  }
129
130
  public T visitUnresolvedAttribute(UnresolvedAttribute node, C context) {
131 1 1. visitUnresolvedAttribute : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitUnresolvedAttribute → NO_COVERAGE
    return visitChildren(node, context);
132
  }
133
134
  public T visitAttributeList(AttributeList node, C context) {
135 1 1. visitAttributeList : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitAttributeList → NO_COVERAGE
    return visitChildren(node, context);
136
  }
137
138
  public T visitMap(Map node, C context) {
139 1 1. visitMap : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitMap → NO_COVERAGE
    return visitChildren(node, context);
140
  }
141
142
  public T visitNot(Not node, C context) {
143 1 1. visitNot : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitNot → NO_COVERAGE
    return visitChildren(node, context);
144
  }
145
146
  public T visitOr(Or node, C context) {
147 1 1. visitOr : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitOr → NO_COVERAGE
    return visitChildren(node, context);
148
  }
149
150
  public T visitAnd(And node, C context) {
151 1 1. visitAnd : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitAnd → NO_COVERAGE
    return visitChildren(node, context);
152
  }
153
154
  public T visitXor(Xor node, C context) {
155 1 1. visitXor : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitXor → NO_COVERAGE
    return visitChildren(node, context);
156
  }
157
158
  public T visitAggregateFunction(AggregateFunction node, C context) {
159 1 1. visitAggregateFunction : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitAggregateFunction → NO_COVERAGE
    return visitChildren(node, context);
160
  }
161
162
  public T visitFunction(Function node, C context) {
163 1 1. visitFunction : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitFunction → NO_COVERAGE
    return visitChildren(node, context);
164
  }
165
166
  public T visitWindowFunction(WindowFunction node, C context) {
167 1 1. visitWindowFunction : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitWindowFunction → NO_COVERAGE
    return visitChildren(node, context);
168
  }
169
170
  public T visitIn(In node, C context) {
171 1 1. visitIn : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitIn → NO_COVERAGE
    return visitChildren(node, context);
172
  }
173
174
  public T visitCompare(Compare node, C context) {
175 1 1. visitCompare : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitCompare → NO_COVERAGE
    return visitChildren(node, context);
176
  }
177
178
  public T visitArgument(Argument node, C context) {
179 1 1. visitArgument : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitArgument → NO_COVERAGE
    return visitChildren(node, context);
180
  }
181
182
  public T visitField(Field node, C context) {
183 1 1. visitField : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitField → SURVIVED
    return visitChildren(node, context);
184
  }
185
186
  public T visitQualifiedName(QualifiedName node, C context) {
187 1 1. visitQualifiedName : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitQualifiedName → SURVIVED
    return visitChildren(node, context);
188
  }
189
190
  public T visitRename(Rename node, C context) {
191 1 1. visitRename : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitRename → NO_COVERAGE
    return visitChildren(node, context);
192
  }
193
194
  public T visitEval(Eval node, C context) {
195 1 1. visitEval : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitEval → NO_COVERAGE
    return visitChildren(node, context);
196
  }
197
198
  public T visitParse(Parse node, C context) {
199 1 1. visitParse : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitParse → NO_COVERAGE
    return visitChildren(node, context);
200
  }
201
202
  public T visitLet(Let node, C context) {
203 1 1. visitLet : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitLet → NO_COVERAGE
    return visitChildren(node, context);
204
  }
205
206
  public T visitSort(Sort node, C context) {
207 1 1. visitSort : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitSort → NO_COVERAGE
    return visitChildren(node, context);
208
  }
209
210
  public T visitDedupe(Dedupe node, C context) {
211 1 1. visitDedupe : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitDedupe → NO_COVERAGE
    return visitChildren(node, context);
212
  }
213
214
  public T visitHead(Head node, C context) {
215 1 1. visitHead : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitHead → NO_COVERAGE
    return visitChildren(node, context);
216
  }
217
218
  public T visitRareTopN(RareTopN node, C context) {
219 1 1. visitRareTopN : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitRareTopN → NO_COVERAGE
    return visitChildren(node, context);
220
  }
221
222
  public T visitValues(Values node, C context) {
223 1 1. visitValues : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitValues → NO_COVERAGE
    return visitChildren(node, context);
224
  }
225
226
  public T visitAlias(Alias node, C context) {
227 1 1. visitAlias : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitAlias → NO_COVERAGE
    return visitChildren(node, context);
228
  }
229
230
  public T visitAllFields(AllFields node, C context) {
231 1 1. visitAllFields : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitAllFields → SURVIVED
    return visitChildren(node, context);
232
  }
233
234
  public T visitInterval(Interval node, C context) {
235 1 1. visitInterval : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitInterval → NO_COVERAGE
    return visitChildren(node, context);
236
  }
237
238
  public T visitCase(Case node, C context) {
239 1 1. visitCase : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitCase → NO_COVERAGE
    return visitChildren(node, context);
240
  }
241
242
  public T visitWhen(When node, C context) {
243 1 1. visitWhen : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitWhen → NO_COVERAGE
    return visitChildren(node, context);
244
  }
245
246
  public T visitCast(Cast node, C context) {
247 1 1. visitCast : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitCast → NO_COVERAGE
    return visitChildren(node, context);
248
  }
249
250
  public T visitUnresolvedArgument(UnresolvedArgument node, C context) {
251 1 1. visitUnresolvedArgument : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitUnresolvedArgument → NO_COVERAGE
    return visitChildren(node, context);
252
  }
253
254
  public T visitLimit(Limit node, C context) {
255 1 1. visitLimit : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitLimit → NO_COVERAGE
    return visitChildren(node, context);
256
  }
257
258
  public T visitSpan(Span node, C context) {
259 1 1. visitSpan : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitSpan → NO_COVERAGE
    return visitChildren(node, context);
260
  }
261
262
  public T visitKmeans(Kmeans node, C context) {
263 1 1. visitKmeans : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitKmeans → NO_COVERAGE
    return visitChildren(node, context);
264
  }
265
266
  public T visitAD(AD node, C context) {
267 1 1. visitAD : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitAD → NO_COVERAGE
    return visitChildren(node, context);
268
  }
269
270
  public T visitML(ML node, C context) {
271 1 1. visitML : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitML → NO_COVERAGE
    return visitChildren(node, context);
272
  }
273
274
  public T visitHighlightFunction(HighlightFunction node, C context) {
275 1 1. visitHighlightFunction : replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitHighlightFunction → NO_COVERAGE
    return visitChildren(node, context);
276
  }
277
}

Mutations

79

1.1
Location : visitChildren
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitChildren → SURVIVED

87

1.1
Location : aggregateResult
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::aggregateResult → SURVIVED

91

1.1
Location : visitRelation
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitRelation → NO_COVERAGE

95

1.1
Location : visitRelationSubquery
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitRelationSubquery → NO_COVERAGE

99

1.1
Location : visitTableFunction
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitTableFunction → NO_COVERAGE

103

1.1
Location : visitFilter
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitFilter → NO_COVERAGE

107

1.1
Location : visitProject
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitProject → NO_COVERAGE

111

1.1
Location : visitAggregation
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitAggregation → NO_COVERAGE

115

1.1
Location : visitEqualTo
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitEqualTo → NO_COVERAGE

119

1.1
Location : visitLiteral
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitLiteral → NO_COVERAGE

123

1.1
Location : visitRelevanceFieldList
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitRelevanceFieldList → NO_COVERAGE

127

1.1
Location : visitConstantFunction
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitConstantFunction → NO_COVERAGE

131

1.1
Location : visitUnresolvedAttribute
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitUnresolvedAttribute → NO_COVERAGE

135

1.1
Location : visitAttributeList
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitAttributeList → NO_COVERAGE

139

1.1
Location : visitMap
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitMap → NO_COVERAGE

143

1.1
Location : visitNot
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitNot → NO_COVERAGE

147

1.1
Location : visitOr
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitOr → NO_COVERAGE

151

1.1
Location : visitAnd
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitAnd → NO_COVERAGE

155

1.1
Location : visitXor
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitXor → NO_COVERAGE

159

1.1
Location : visitAggregateFunction
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitAggregateFunction → NO_COVERAGE

163

1.1
Location : visitFunction
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitFunction → NO_COVERAGE

167

1.1
Location : visitWindowFunction
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitWindowFunction → NO_COVERAGE

171

1.1
Location : visitIn
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitIn → NO_COVERAGE

175

1.1
Location : visitCompare
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitCompare → NO_COVERAGE

179

1.1
Location : visitArgument
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitArgument → NO_COVERAGE

183

1.1
Location : visitField
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitField → SURVIVED

187

1.1
Location : visitQualifiedName
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitQualifiedName → SURVIVED

191

1.1
Location : visitRename
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitRename → NO_COVERAGE

195

1.1
Location : visitEval
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitEval → NO_COVERAGE

199

1.1
Location : visitParse
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitParse → NO_COVERAGE

203

1.1
Location : visitLet
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitLet → NO_COVERAGE

207

1.1
Location : visitSort
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitSort → NO_COVERAGE

211

1.1
Location : visitDedupe
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitDedupe → NO_COVERAGE

215

1.1
Location : visitHead
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitHead → NO_COVERAGE

219

1.1
Location : visitRareTopN
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitRareTopN → NO_COVERAGE

223

1.1
Location : visitValues
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitValues → NO_COVERAGE

227

1.1
Location : visitAlias
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitAlias → NO_COVERAGE

231

1.1
Location : visitAllFields
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitAllFields → SURVIVED

235

1.1
Location : visitInterval
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitInterval → NO_COVERAGE

239

1.1
Location : visitCase
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitCase → NO_COVERAGE

243

1.1
Location : visitWhen
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitWhen → NO_COVERAGE

247

1.1
Location : visitCast
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitCast → NO_COVERAGE

251

1.1
Location : visitUnresolvedArgument
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitUnresolvedArgument → NO_COVERAGE

255

1.1
Location : visitLimit
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitLimit → NO_COVERAGE

259

1.1
Location : visitSpan
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitSpan → NO_COVERAGE

263

1.1
Location : visitKmeans
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitKmeans → NO_COVERAGE

267

1.1
Location : visitAD
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitAD → NO_COVERAGE

271

1.1
Location : visitML
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitML → NO_COVERAGE

275

1.1
Location : visitHighlightFunction
Killed by : none
replaced return value with null for org/opensearch/sql/ast/AbstractNodeVisitor::visitHighlightFunction → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.9.0