Skip to content

Commit 8c524de

Browse files
committed
feat(core): add context to RelVisitor, ExpressionVisitor and FuncArgVisitor
BREAKING CHANGE: adds a new context argument to RelVisitor, ExpressionVisitor and FuncArgVisitor Signed-off-by: Niels Pardon <[email protected]>
1 parent bb4c3bd commit 8c524de

File tree

71 files changed

+1341
-941
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+1341
-941
lines changed
Lines changed: 85 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -1,206 +1,208 @@
11
package io.substrait.expression;
22

3-
public abstract class AbstractExpressionVisitor<OUTPUT, EXCEPTION extends Exception>
4-
implements ExpressionVisitor<OUTPUT, EXCEPTION> {
5-
public abstract OUTPUT visitFallback(Expression expr);
3+
import io.substrait.util.VisitationContext;
4+
5+
public abstract class AbstractExpressionVisitor<O, C extends VisitationContext, E extends Exception>
6+
implements ExpressionVisitor<O, C, E> {
7+
public abstract O visitFallback(Expression expr, C context);
68

79
@Override
8-
public OUTPUT visit(Expression.NullLiteral expr) throws EXCEPTION {
9-
return visitFallback(expr);
10+
public O visit(Expression.NullLiteral expr, C context) throws E {
11+
return visitFallback(expr, context);
1012
}
1113

1214
@Override
13-
public OUTPUT visit(Expression.BoolLiteral expr) throws EXCEPTION {
14-
return visitFallback(expr);
15+
public O visit(Expression.BoolLiteral expr, C context) throws E {
16+
return visitFallback(expr, context);
1517
}
1618

1719
@Override
18-
public OUTPUT visit(Expression.I8Literal expr) throws EXCEPTION {
19-
return visitFallback(expr);
20+
public O visit(Expression.I8Literal expr, C context) throws E {
21+
return visitFallback(expr, context);
2022
}
2123

2224
@Override
23-
public OUTPUT visit(Expression.I16Literal expr) throws EXCEPTION {
24-
return visitFallback(expr);
25+
public O visit(Expression.I16Literal expr, C context) throws E {
26+
return visitFallback(expr, context);
2527
}
2628

2729
@Override
28-
public OUTPUT visit(Expression.I32Literal expr) throws EXCEPTION {
29-
return visitFallback(expr);
30+
public O visit(Expression.I32Literal expr, C context) throws E {
31+
return visitFallback(expr, context);
3032
}
3133

3234
@Override
33-
public OUTPUT visit(Expression.I64Literal expr) throws EXCEPTION {
34-
return visitFallback(expr);
35+
public O visit(Expression.I64Literal expr, C context) throws E {
36+
return visitFallback(expr, context);
3537
}
3638

3739
@Override
38-
public OUTPUT visit(Expression.FP32Literal expr) throws EXCEPTION {
39-
return visitFallback(expr);
40+
public O visit(Expression.FP32Literal expr, C context) throws E {
41+
return visitFallback(expr, context);
4042
}
4143

4244
@Override
43-
public OUTPUT visit(Expression.FP64Literal expr) throws EXCEPTION {
44-
return visitFallback(expr);
45+
public O visit(Expression.FP64Literal expr, C context) throws E {
46+
return visitFallback(expr, context);
4547
}
4648

4749
@Override
48-
public OUTPUT visit(Expression.StrLiteral expr) throws EXCEPTION {
49-
return visitFallback(expr);
50+
public O visit(Expression.StrLiteral expr, C context) throws E {
51+
return visitFallback(expr, context);
5052
}
5153

5254
@Override
53-
public OUTPUT visit(Expression.BinaryLiteral expr) throws EXCEPTION {
54-
return visitFallback(expr);
55+
public O visit(Expression.BinaryLiteral expr, C context) throws E {
56+
return visitFallback(expr, context);
5557
}
5658

5759
@Override
58-
public OUTPUT visit(Expression.TimeLiteral expr) throws EXCEPTION {
59-
return visitFallback(expr);
60+
public O visit(Expression.TimeLiteral expr, C context) throws E {
61+
return visitFallback(expr, context);
6062
}
6163

6264
@Override
63-
public OUTPUT visit(Expression.DateLiteral expr) throws EXCEPTION {
64-
return visitFallback(expr);
65+
public O visit(Expression.DateLiteral expr, C context) throws E {
66+
return visitFallback(expr, context);
6567
}
6668

6769
@Override
68-
public OUTPUT visit(Expression.TimestampLiteral expr) throws EXCEPTION {
69-
return visitFallback(expr);
70+
public O visit(Expression.TimestampLiteral expr, C context) throws E {
71+
return visitFallback(expr, context);
7072
}
7173

7274
@Override
73-
public OUTPUT visit(Expression.TimestampTZLiteral expr) throws EXCEPTION {
74-
return visitFallback(expr);
75+
public O visit(Expression.TimestampTZLiteral expr, C context) throws E {
76+
return visitFallback(expr, context);
7577
}
7678

7779
@Override
78-
public OUTPUT visit(Expression.PrecisionTimestampLiteral expr) throws EXCEPTION {
79-
return visitFallback(expr);
80+
public O visit(Expression.PrecisionTimestampLiteral expr, C context) throws E {
81+
return visitFallback(expr, context);
8082
}
8183

8284
@Override
83-
public OUTPUT visit(Expression.PrecisionTimestampTZLiteral expr) throws EXCEPTION {
84-
return visitFallback(expr);
85+
public O visit(Expression.PrecisionTimestampTZLiteral expr, C context) throws E {
86+
return visitFallback(expr, context);
8587
}
8688

8789
@Override
88-
public OUTPUT visit(Expression.IntervalYearLiteral expr) throws EXCEPTION {
89-
return visitFallback(expr);
90+
public O visit(Expression.IntervalYearLiteral expr, C context) throws E {
91+
return visitFallback(expr, context);
9092
}
9193

9294
@Override
93-
public OUTPUT visit(Expression.IntervalDayLiteral expr) throws EXCEPTION {
94-
return visitFallback(expr);
95+
public O visit(Expression.IntervalDayLiteral expr, C context) throws E {
96+
return visitFallback(expr, context);
9597
}
9698

9799
@Override
98-
public OUTPUT visit(Expression.IntervalCompoundLiteral expr) throws EXCEPTION {
99-
return visitFallback(expr);
100+
public O visit(Expression.IntervalCompoundLiteral expr, C context) throws E {
101+
return visitFallback(expr, context);
100102
}
101103

102104
@Override
103-
public OUTPUT visit(Expression.UUIDLiteral expr) throws EXCEPTION {
104-
return visitFallback(expr);
105+
public O visit(Expression.UUIDLiteral expr, C context) throws E {
106+
return visitFallback(expr, context);
105107
}
106108

107109
@Override
108-
public OUTPUT visit(Expression.FixedCharLiteral expr) throws EXCEPTION {
109-
return visitFallback(expr);
110+
public O visit(Expression.FixedCharLiteral expr, C context) throws E {
111+
return visitFallback(expr, context);
110112
}
111113

112114
@Override
113-
public OUTPUT visit(Expression.VarCharLiteral expr) throws EXCEPTION {
114-
return visitFallback(expr);
115+
public O visit(Expression.VarCharLiteral expr, C context) throws E {
116+
return visitFallback(expr, context);
115117
}
116118

117119
@Override
118-
public OUTPUT visit(Expression.FixedBinaryLiteral expr) throws EXCEPTION {
119-
return visitFallback(expr);
120+
public O visit(Expression.FixedBinaryLiteral expr, C context) throws E {
121+
return visitFallback(expr, context);
120122
}
121123

122124
@Override
123-
public OUTPUT visit(Expression.DecimalLiteral expr) throws EXCEPTION {
124-
return visitFallback(expr);
125+
public O visit(Expression.DecimalLiteral expr, C context) throws E {
126+
return visitFallback(expr, context);
125127
}
126128

127129
@Override
128-
public OUTPUT visit(Expression.MapLiteral expr) throws EXCEPTION {
129-
return visitFallback(expr);
130+
public O visit(Expression.MapLiteral expr, C context) throws E {
131+
return visitFallback(expr, context);
130132
}
131133

132134
@Override
133-
public OUTPUT visit(Expression.EmptyMapLiteral expr) throws EXCEPTION {
134-
return visitFallback(expr);
135+
public O visit(Expression.EmptyMapLiteral expr, C context) throws E {
136+
return visitFallback(expr, context);
135137
}
136138

137139
@Override
138-
public OUTPUT visit(Expression.ListLiteral expr) throws EXCEPTION {
139-
return visitFallback(expr);
140+
public O visit(Expression.ListLiteral expr, C context) throws E {
141+
return visitFallback(expr, context);
140142
}
141143

142144
@Override
143-
public OUTPUT visit(Expression.EmptyListLiteral expr) throws EXCEPTION {
144-
return visitFallback(expr);
145+
public O visit(Expression.EmptyListLiteral expr, C context) throws E {
146+
return visitFallback(expr, context);
145147
}
146148

147149
@Override
148-
public OUTPUT visit(Expression.StructLiteral expr) throws EXCEPTION {
149-
return visitFallback(expr);
150+
public O visit(Expression.StructLiteral expr, C context) throws E {
151+
return visitFallback(expr, context);
150152
}
151153

152154
@Override
153-
public OUTPUT visit(Expression.Switch expr) throws EXCEPTION {
154-
return visitFallback(expr);
155+
public O visit(Expression.Switch expr, C context) throws E {
156+
return visitFallback(expr, context);
155157
}
156158

157159
@Override
158-
public OUTPUT visit(Expression.IfThen expr) throws EXCEPTION {
159-
return visitFallback(expr);
160+
public O visit(Expression.IfThen expr, C context) throws E {
161+
return visitFallback(expr, context);
160162
}
161163

162164
@Override
163-
public OUTPUT visit(Expression.ScalarFunctionInvocation expr) throws EXCEPTION {
164-
return visitFallback(expr);
165+
public O visit(Expression.ScalarFunctionInvocation expr, C context) throws E {
166+
return visitFallback(expr, context);
165167
}
166168

167169
@Override
168-
public OUTPUT visit(Expression.WindowFunctionInvocation expr) throws EXCEPTION {
169-
return visitFallback(expr);
170+
public O visit(Expression.WindowFunctionInvocation expr, C context) throws E {
171+
return visitFallback(expr, context);
170172
}
171173

172174
@Override
173-
public OUTPUT visit(Expression.Cast expr) throws EXCEPTION {
174-
return visitFallback(expr);
175+
public O visit(Expression.Cast expr, C context) throws E {
176+
return visitFallback(expr, context);
175177
}
176178

177179
@Override
178-
public OUTPUT visit(Expression.SingleOrList expr) throws EXCEPTION {
179-
return visitFallback(expr);
180+
public O visit(Expression.SingleOrList expr, C context) throws E {
181+
return visitFallback(expr, context);
180182
}
181183

182184
@Override
183-
public OUTPUT visit(Expression.MultiOrList expr) throws EXCEPTION {
184-
return visitFallback(expr);
185+
public O visit(Expression.MultiOrList expr, C context) throws E {
186+
return visitFallback(expr, context);
185187
}
186188

187189
@Override
188-
public OUTPUT visit(FieldReference expr) throws EXCEPTION {
189-
return visitFallback(expr);
190+
public O visit(FieldReference expr, C context) throws E {
191+
return visitFallback(expr, context);
190192
}
191193

192194
@Override
193-
public OUTPUT visit(Expression.SetPredicate expr) throws EXCEPTION {
194-
return visitFallback(expr);
195+
public O visit(Expression.SetPredicate expr, C context) throws E {
196+
return visitFallback(expr, context);
195197
}
196198

197199
@Override
198-
public OUTPUT visit(Expression.ScalarSubquery expr) throws EXCEPTION {
199-
return visitFallback(expr);
200+
public O visit(Expression.ScalarSubquery expr, C context) throws E {
201+
return visitFallback(expr, context);
200202
}
201203

202204
@Override
203-
public OUTPUT visit(Expression.InPredicate expr) throws EXCEPTION {
204-
return visitFallback(expr);
205+
public O visit(Expression.InPredicate expr, C context) throws E {
206+
return visitFallback(expr, context);
205207
}
206208
}

core/src/main/java/io/substrait/expression/EnumArg.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.substrait.expression;
22

33
import io.substrait.extension.SimpleExtension;
4+
import io.substrait.util.VisitationContext;
45
import java.util.Optional;
56
import org.immutables.value.Value;
67

@@ -16,9 +17,10 @@ public interface EnumArg extends FunctionArg {
1617
Optional<String> value();
1718

1819
@Override
19-
default <R, E extends Throwable> R accept(
20-
SimpleExtension.Function fnDef, int argIdx, FuncArgVisitor<R, E> fnArgVisitor) throws E {
21-
return fnArgVisitor.visitEnumArg(fnDef, argIdx, this);
20+
default <R, C extends VisitationContext, E extends Throwable> R accept(
21+
SimpleExtension.Function fnDef, int argIdx, FuncArgVisitor<R, C, E> fnArgVisitor, C context)
22+
throws E {
23+
return fnArgVisitor.visitEnumArg(fnDef, argIdx, this, context);
2224
}
2325

2426
static EnumArg of(SimpleExtension.EnumArgument enumArg, String option) {

0 commit comments

Comments
 (0)