28
28
* Basic implementation of the {@link ExpressionVisitor} interface.
29
29
* This implementation will traverse a PathExpr object if it wraps
30
30
* around a single other expression. All other methods are empty.
31
- *
32
- * @author wolf
33
31
*
32
+ * @author wolf
34
33
*/
35
34
public class BasicExpressionVisitor implements ExpressionVisitor {
36
35
37
36
@ Override
38
- public void visit (Expression expression ) {
37
+ public void visit (final Expression expression ) {
39
38
processWrappers (expression );
40
39
}
41
40
42
41
@ Override
43
- public void visitCastExpr (CastExpression expression ) {
42
+ public void visitCastExpr (final CastExpression expression ) {
44
43
//Nothing to do
45
44
}
46
45
@@ -50,190 +49,193 @@ public void visitCastExpr(CastExpression expression) {
50
49
* expression object.
51
50
*/
52
51
@ Override
53
- public void visitPathExpr (PathExpr expression ) {
52
+ public void visitPathExpr (final PathExpr expression ) {
54
53
if (expression .getLength () == 1 ) {
55
54
final Expression next = expression .getExpression (0 );
56
55
next .accept (this );
57
56
}
58
57
}
59
58
60
59
@ Override
61
- public void visitFunctionCall (FunctionCall call ) {
60
+ public void visitFunctionCall (final FunctionCall call ) {
62
61
// Nothing to do
63
62
}
64
63
65
64
@ Override
66
- public void visitGeneralComparison (GeneralComparison comparison ) {
65
+ public void visitGeneralComparison (final GeneralComparison comparison ) {
67
66
//Nothing to do
68
67
}
69
68
70
69
@ Override
71
- public void visitUnionExpr (Union union ) {
70
+ public void visitUnionExpr (final Union union ) {
72
71
//Nothing to do
73
72
}
74
73
75
74
@ Override
76
- public void visitIntersectionExpr (Intersect intersect ) {
75
+ public void visitIntersectionExpr (final Intersect intersect ) {
77
76
//Nothing to do
78
77
}
79
78
80
79
@ Override
81
- public void visitAndExpr (OpAnd and ) {
80
+ public void visitAndExpr (final OpAnd and ) {
82
81
//Nothing to do
83
82
}
84
83
85
84
@ Override
86
- public void visitOrExpr (OpOr or ) {
85
+ public void visitOrExpr (final OpOr or ) {
87
86
//Nothing to do
88
87
}
89
88
90
89
@ Override
91
- public void visitLocationStep (LocationStep locationStep ) {
90
+ public void visitLocationStep (final LocationStep locationStep ) {
92
91
//Nothing to do
93
92
}
94
93
95
94
@ Override
96
- public void visitFilteredExpr (FilteredExpression filtered ) {
95
+ public void visitFilteredExpr (final FilteredExpression filtered ) {
97
96
//Nothing to do
98
97
}
99
98
100
99
@ Override
101
- public void visitPredicate (Predicate predicate ) {
100
+ public void visitPredicate (final Predicate predicate ) {
102
101
//Nothing to do
103
102
}
104
103
105
104
@ Override
106
- public void visitVariableReference (VariableReference ref ) {
105
+ public void visitVariableReference (final VariableReference ref ) {
107
106
//Nothing to do
108
107
}
109
108
110
109
@ Override
111
- public void visitVariableDeclaration (VariableDeclaration decl ) {
112
- // Nothing to do
110
+ public void visitVariableDeclaration (final VariableDeclaration decl ) {
111
+ // Nothing to do
113
112
}
114
-
115
- protected void processWrappers (Expression expr ) {
113
+
114
+ protected void processWrappers (final Expression expr ) {
116
115
if (expr instanceof Atomize ||
117
116
expr instanceof DynamicCardinalityCheck ||
118
117
expr instanceof DynamicNameCheck ||
119
118
expr instanceof DynamicTypeCheck ||
120
- expr instanceof UntypedValueCheck ) {
119
+ expr instanceof UntypedValueCheck ||
120
+ expr instanceof PathExpr ) {
121
121
expr .accept (this );
122
122
}
123
123
}
124
124
125
- public static LocationStep findFirstStep (Expression expr ) {
126
- if (expr instanceof LocationStep )
127
- {return (LocationStep ) expr ;}
125
+ public static LocationStep findFirstStep (final Expression expr ) {
126
+ if (expr instanceof LocationStep ) {
127
+ return (LocationStep ) expr ;
128
+ }
128
129
final FirstStepVisitor visitor = new FirstStepVisitor ();
129
130
expr .accept (visitor );
130
131
return visitor .firstStep ;
131
132
}
132
133
133
- public static List <LocationStep > findLocationSteps (Expression expr ) {
134
+ public static List <LocationStep > findLocationSteps (final Expression expr ) {
134
135
final List <LocationStep > steps = new ArrayList <>(5 );
135
136
if (expr instanceof LocationStep ) {
136
- steps .add ((LocationStep )expr );
137
+ steps .add ((LocationStep ) expr );
137
138
return steps ;
138
139
}
139
140
expr .accept (
140
- new BasicExpressionVisitor () {
141
- @ Override
142
- public void visitPathExpr (PathExpr expression ) {
143
- for (int i = 0 ; i < expression .getLength (); i ++) {
144
- final Expression next = expression .getExpression (i );
145
- next .accept (this );
146
- if (steps .size () - 1 != i ) {
147
- steps .add (null );
141
+ new BasicExpressionVisitor () {
142
+ @ Override
143
+ public void visitPathExpr (final PathExpr expression ) {
144
+ for (int i = 0 ; i < expression .getLength (); i ++) {
145
+ final Expression next = expression .getExpression (i );
146
+ next .accept (this );
147
+ if (steps .size () - 1 != i ) {
148
+ steps .add (null );
149
+ }
148
150
}
149
151
}
152
+
153
+ @ Override
154
+ public void visitLocationStep (final LocationStep locationStep ) {
155
+ steps .add (locationStep );
156
+ }
150
157
}
151
- @ Override
152
- public void visitLocationStep (LocationStep locationStep ) {
153
- steps .add (locationStep );
154
- }
155
- }
156
158
);
157
159
return steps ;
158
160
}
159
161
160
- public static VariableReference findVariableRef (Expression expr ) {
162
+ public static VariableReference findVariableRef (final Expression expr ) {
161
163
final VariableRefVisitor visitor = new VariableRefVisitor ();
162
164
expr .accept (visitor );
163
165
return visitor .ref ;
164
166
}
165
167
166
168
@ Override
167
- public void visitForExpression (ForExpr forExpr ) {
169
+ public void visitForExpression (final ForExpr forExpr ) {
168
170
//Nothing to do
169
171
}
170
172
171
173
@ Override
172
- public void visitLetExpression (LetExpr letExpr ) {
174
+ public void visitLetExpression (final LetExpr letExpr ) {
173
175
//Nothing to do
174
176
}
175
177
176
178
@ Override
177
- public void visitOrderByClause (OrderByClause orderBy ) {
179
+ public void visitOrderByClause (final OrderByClause orderBy ) {
178
180
// Nothing to do
179
181
}
180
182
181
183
@ Override
182
- public void visitGroupByClause (GroupByClause groupBy ) {
184
+ public void visitGroupByClause (final GroupByClause groupBy ) {
183
185
// Nothing to do
184
186
}
185
187
186
188
@ Override
187
- public void visitWhereClause (WhereClause where ) {
189
+ public void visitWhereClause (final WhereClause where ) {
188
190
// Nothing to do
189
191
}
190
192
191
193
@ Override
192
- public void visitBuiltinFunction (Function function ) {
194
+ public void visitBuiltinFunction (final Function function ) {
193
195
//Nothing to do
194
196
}
195
197
196
198
@ Override
197
- public void visitUserFunction (UserDefinedFunction function ) {
199
+ public void visitUserFunction (final UserDefinedFunction function ) {
198
200
//Nothing to do
199
201
}
200
202
201
203
@ Override
202
- public void visitConditional (ConditionalExpression conditional ) {
204
+ public void visitConditional (final ConditionalExpression conditional ) {
203
205
//Nothing to do
204
206
}
205
207
206
208
@ Override
207
- public void visitTryCatch (TryCatchExpression conditional ) {
209
+ public void visitTryCatch (final TryCatchExpression conditional ) {
208
210
//Nothing to do
209
211
}
210
212
211
213
@ Override
212
- public void visitDocumentConstructor (DocumentConstructor constructor ) {
213
- // Nothing to do
214
+ public void visitDocumentConstructor (final DocumentConstructor constructor ) {
215
+ // Nothing to do
214
216
}
215
-
216
- public void visitElementConstructor (ElementConstructor constructor ) {
217
+
218
+ public void visitElementConstructor (final ElementConstructor constructor ) {
217
219
//Nothing to do
218
220
}
219
221
220
222
@ Override
221
- public void visitTextConstructor (DynamicTextConstructor constructor ) {
223
+ public void visitTextConstructor (final DynamicTextConstructor constructor ) {
222
224
//Nothing to do
223
225
}
224
226
225
227
@ Override
226
- public void visitAttribConstructor (AttributeConstructor constructor ) {
228
+ public void visitAttribConstructor (final AttributeConstructor constructor ) {
227
229
//Nothing to do
228
230
}
229
231
230
232
@ Override
231
- public void visitAttribConstructor (DynamicAttributeConstructor constructor ) {
233
+ public void visitAttribConstructor (final DynamicAttributeConstructor constructor ) {
232
234
//Nothing to do
233
235
}
234
236
235
237
@ Override
236
- public void visitSimpleMapOperator (OpSimpleMap simpleMap ) {
238
+ public void visitSimpleMapOperator (final OpSimpleMap simpleMap ) {
237
239
// Nothing to do
238
240
}
239
241
@@ -246,7 +248,7 @@ public LocationStep getFirstStep() {
246
248
}
247
249
248
250
@ Override
249
- public void visitLocationStep (LocationStep locationStep ) {
251
+ public void visitLocationStep (final LocationStep locationStep ) {
250
252
firstStep = locationStep ;
251
253
}
252
254
}
@@ -256,12 +258,12 @@ public static class VariableRefVisitor extends BasicExpressionVisitor {
256
258
private VariableReference ref = null ;
257
259
258
260
@ Override
259
- public void visitVariableReference (VariableReference ref ) {
261
+ public void visitVariableReference (final VariableReference ref ) {
260
262
this .ref = ref ;
261
263
}
262
264
263
265
@ Override
264
- public void visitPathExpr (PathExpr expression ) {
266
+ public void visitPathExpr (final PathExpr expression ) {
265
267
for (int i = 0 ; i < expression .getLength (); i ++) {
266
268
final Expression next = expression .getExpression (i );
267
269
next .accept (this );
0 commit comments