View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one or more
3    * contributor license agreements.  See the NOTICE file distributed with
4    * this work for additional information regarding copyright ownership.
5    * The ASF licenses this file to You under the Apache License, Version 2.0
6    * (the "License"); you may not use this file except in compliance with
7    * the License.  You may obtain a copy of the License at
8    *
9    *      http://www.apache.org/licenses/LICENSE-2.0
10   *
11   * Unless required by applicable law or agreed to in writing, software
12   * distributed under the License is distributed on an "AS IS" BASIS,
13   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14   * See the License for the specific language governing permissions and
15   * limitations under the License.
16   */
17  package org.apache.commons.jexl3.internal;
18  
19  import org.apache.commons.jexl3.JexlExpression;
20  import org.apache.commons.jexl3.JexlScript;
21  import org.apache.commons.jexl3.parser.*;
22  
23  /**
24   * Concrete visitor base, used for feature and operator controllers.
25   */
26  public class ScriptVisitor extends ParserVisitor {
27      /**
28       * Visits all AST constituents of a JEXL expression.
29       * @param jscript the expression
30       * @param data some data context
31       * @return the visit result or null if jscript was not a Script implementation
32       */
33      public Object visitExpression (final JexlExpression jscript, final Object data) {
34          if (jscript instanceof Script) {
35              return ((Script) jscript).getScript().jjtAccept(this, data);
36          }
37          return null;
38      }
39  
40      /**
41       * Visits all AST constituents of a JEXL script.
42       * @param jscript the expression
43       * @param data some data context
44       * @return the visit result or null if jscript was not a Script implementation
45       */
46      public Object visitScript(final JexlScript jscript, final Object data) {
47          if (jscript instanceof Script) {
48              return ((Script) jscript).getScript().jjtAccept(this, data);
49          }
50          return null;
51      }
52  
53      /**
54       * Visits a node.
55       * Default implementation visits all its children.
56       * @param node the node to visit
57       * @param data visitor pattern argument
58       * @return visitor pattern value
59       */
60      protected Object visitNode(final JexlNode node, final Object data) {
61          return node.childrenAccept(this, data);
62      }
63  
64      @Override
65      protected Object visit(final ASTJexlScript node, final Object data) {
66          return visitNode(node, data);
67      }
68  
69      @Override
70      protected Object visit(final ASTBlock node, final Object data) {
71          return visitNode(node, data);
72      }
73  
74      @Override
75      protected Object visit(final ASTIfStatement node, final Object data) {
76          return visitNode(node, data);
77      }
78  
79      @Override
80      protected Object visit(final ASTWhileStatement node, final Object data) {
81          return visitNode(node, data);
82      }
83  
84      @Override
85      protected Object visit(final ASTDoWhileStatement node, final Object data) {
86          return visitNode(node, data);
87      }
88  
89      @Override
90      protected Object visit(final ASTContinue node, final Object data) {
91          return visitNode(node, data);
92      }
93  
94      @Override
95      protected Object visit(final ASTBreak node, final Object data) {
96          return visitNode(node, data);
97      }
98  
99      @Override
100     protected Object visit(final ASTForeachStatement node, final Object data) {
101         return visitNode(node, data);
102     }
103 
104     @Override
105     protected Object visit(final ASTReturnStatement node, final Object data) {
106         return visitNode(node, data);
107     }
108 
109     @Override
110     protected Object visit(final ASTAssignment node, final Object data) {
111         return visitNode(node, data);
112     }
113 
114     @Override
115     protected Object visit(final ASTVar node, final Object data) {
116         return visitNode(node, data);
117     }
118 
119     @Override
120     protected Object visit(final ASTDefineVars node, final Object data) {
121         return visitNode(node, data);
122     }
123 
124     @Override
125     protected Object visit(final ASTReference node, final Object data) {
126         return visitNode(node, data);
127     }
128 
129     @Override
130     protected Object visit(final ASTTernaryNode node, final Object data) {
131         return visitNode(node, data);
132     }
133 
134     @Override
135     protected Object visit(final ASTNullpNode node, final Object data) {
136         return visitNode(node, data);
137     }
138 
139     @Override
140     protected Object visit(final ASTOrNode node, final Object data) {
141         return visitNode(node, data);
142     }
143 
144     @Override
145     protected Object visit(final ASTAndNode node, final Object data) {
146         return visitNode(node, data);
147     }
148 
149     @Override
150     protected Object visit(final ASTBitwiseOrNode node, final Object data) {
151         return visitNode(node, data);
152     }
153 
154     @Override
155     protected Object visit(final ASTBitwiseXorNode node, final Object data) {
156         return visitNode(node, data);
157     }
158 
159     @Override
160     protected Object visit(final ASTBitwiseAndNode node, final Object data) {
161         return visitNode(node, data);
162     }
163 
164     @Override
165     protected Object visit(final ASTShiftLeftNode node, final Object data) {
166         return visitNode(node, data);
167     }
168 
169     @Override
170     protected Object visit(final ASTShiftRightUnsignedNode node, final Object data) {
171         return visitNode(node, data);
172     }
173 
174     @Override
175     protected Object visit(final ASTShiftRightNode node, final Object data) {
176         return visitNode(node, data);
177     }
178 
179     @Override
180     protected Object visit(final ASTEQNode node, final Object data) {
181         return visitNode(node, data);
182     }
183 
184     @Override
185     protected Object visit(final ASTNENode node, final Object data) {
186         return visitNode(node, data);
187     }
188 
189     @Override
190     protected Object visit(final ASTLTNode node, final Object data) {
191         return visitNode(node, data);
192     }
193 
194     @Override
195     protected Object visit(final ASTGTNode node, final Object data) {
196         return visitNode(node, data);
197     }
198 
199     @Override
200     protected Object visit(final ASTLENode node, final Object data) {
201         return visitNode(node, data);
202     }
203 
204     @Override
205     protected Object visit(final ASTGENode node, final Object data) {
206         return visitNode(node, data);
207     }
208 
209     @Override
210     protected Object visit(final ASTERNode node, final Object data) {
211         return visitNode(node, data);
212     }
213 
214     @Override
215     protected Object visit(final ASTNRNode node, final Object data) {
216         return visitNode(node, data);
217     }
218 
219     @Override
220     protected Object visit(final ASTSWNode node, final Object data) {
221         return visitNode(node, data);
222     }
223 
224     @Override
225     protected Object visit(final ASTNSWNode node, final Object data) {
226         return visitNode(node, data);
227     }
228 
229     @Override
230     protected Object visit(final ASTEWNode node, final Object data) {
231         return visitNode(node, data);
232     }
233 
234     @Override
235     protected Object visit(final ASTNEWNode node, final Object data) {
236         return visitNode(node, data);
237     }
238 
239     @Override
240     protected Object visit(final ASTAddNode node, final Object data) {
241         return visitNode(node, data);
242     }
243 
244     @Override
245     protected Object visit(final ASTSubNode node, final Object data) {
246         return visitNode(node, data);
247     }
248 
249     @Override
250     protected Object visit(final ASTMulNode node, final Object data) {
251         return visitNode(node, data);
252     }
253 
254     @Override
255     protected Object visit(final ASTDivNode node, final Object data) {
256         return visitNode(node, data);
257     }
258 
259     @Override
260     protected Object visit(final ASTModNode node, final Object data) {
261         return visitNode(node, data);
262     }
263 
264     @Override
265     protected Object visit(final ASTUnaryMinusNode node, final Object data) {
266         return visitNode(node, data);
267     }
268 
269     @Override
270     protected Object visit(final ASTUnaryPlusNode node, final Object data) {
271         return visitNode(node, data);
272     }
273 
274     @Override
275     protected Object visit(final ASTBitwiseComplNode node, final Object data) {
276         return visitNode(node, data);
277     }
278 
279     @Override
280     protected Object visit(final ASTNotNode node, final Object data) {
281         return visitNode(node, data);
282     }
283 
284     @Override
285     protected Object visit(final ASTIdentifier node, final Object data) {
286         return visitNode(node, data);
287     }
288 
289     @Override
290     protected Object visit(final ASTNullLiteral node, final Object data) {
291         return visitNode(node, data);
292     }
293 
294     @Override
295     protected Object visit(final ASTTrueNode node, final Object data) {
296         return visitNode(node, data);
297     }
298 
299     @Override
300     protected Object visit(final ASTFalseNode node, final Object data) {
301         return visitNode(node, data);
302     }
303 
304     @Override
305     protected Object visit(final ASTNumberLiteral node, final Object data) {
306         return visitNode(node, data);
307     }
308 
309     @Override
310     protected Object visit(final ASTStringLiteral node, final Object data) {
311         return visitNode(node, data);
312     }
313 
314     @Override
315     protected Object visit(final ASTRegexLiteral node, final Object data) {
316         return visitNode(node, data);
317     }
318 
319     @Override
320     protected Object visit(final ASTSetLiteral node, final Object data) {
321         return visitNode(node, data);
322     }
323 
324     @Override
325     protected Object visit(final ASTExtendedLiteral node, final Object data) {
326         return visitNode(node, data);
327     }
328 
329     @Override
330     protected Object visit(final ASTArrayLiteral node, final Object data) {
331         return visitNode(node, data);
332     }
333 
334     @Override
335     protected Object visit(final ASTRangeNode node, final Object data) {
336         return visitNode(node, data);
337     }
338 
339     @Override
340     protected Object visit(final ASTMapLiteral node, final Object data) {
341         return visitNode(node, data);
342     }
343 
344     @Override
345     protected Object visit(final ASTMapEntry node, final Object data) {
346         return visitNode(node, data);
347     }
348 
349     @Override
350     protected Object visit(final ASTEmptyFunction node, final Object data) {
351         return visitNode(node, data);
352     }
353 
354     @Override
355     protected Object visit(final ASTSizeFunction node, final Object data) {
356         return visitNode(node, data);
357     }
358 
359     @Override
360     protected Object visit(final ASTFunctionNode node, final Object data) {
361         return visitNode(node, data);
362     }
363 
364     @Override
365     protected Object visit(final ASTMethodNode node, final Object data) {
366         return visitNode(node, data);
367     }
368 
369     @Override
370     protected Object visit(final ASTConstructorNode node, final Object data) {
371         return visitNode(node, data);
372     }
373 
374     @Override
375     protected Object visit(final ASTArrayAccess node, final Object data) {
376         return visitNode(node, data);
377     }
378 
379     @Override
380     protected Object visit(final ASTIdentifierAccess node, final Object data) {
381         return visitNode(node, data);
382     }
383 
384     @Override
385     protected Object visit(final ASTArguments node, final Object data) {
386         return visitNode(node, data);
387     }
388 
389     @Override
390     protected Object visit(final ASTReferenceExpression node, final Object data) {
391         return visitNode(node, data);
392     }
393 
394     @Override
395     protected Object visit(final ASTSetAddNode node, final Object data) {
396         return visitNode(node, data);
397     }
398 
399     @Override
400     protected Object visit(final ASTSetSubNode node, final Object data) {
401         return visitNode(node, data);
402     }
403 
404     @Override
405     protected Object visit(final ASTSetMultNode node, final Object data) {
406         return visitNode(node, data);
407     }
408 
409     @Override
410     protected Object visit(final ASTSetDivNode node, final Object data) {
411         return visitNode(node, data);
412     }
413 
414     @Override
415     protected Object visit(final ASTSetModNode node, final Object data) {
416         return visitNode(node, data);
417     }
418 
419     @Override
420     protected Object visit(final ASTSetAndNode node, final Object data) {
421         return visitNode(node, data);
422     }
423 
424     @Override
425     protected Object visit(final ASTSetOrNode node, final Object data) {
426         return visitNode(node, data);
427     }
428 
429     @Override
430     protected Object visit(final ASTSetXorNode node, final Object data) {
431         return visitNode(node, data);
432     }
433 
434     @Override
435     protected Object visit(final ASTSetShiftLeftNode node, final Object data) {
436         return visitNode(node, data);
437     }
438 
439     @Override
440     protected Object visit(final ASTSetShiftRightUnsignedNode node, final Object data) {
441         return visitNode(node, data);
442     }
443 
444     @Override
445     protected Object visit(final ASTGetDecrementNode node, final Object data) { return visitNode(node, data); }
446 
447     @Override
448     protected Object visit(final ASTGetIncrementNode node, final Object data) { return visitNode(node, data); }
449 
450     @Override
451     protected Object visit(final ASTDecrementGetNode node, final Object data) { return visitNode(node, data); }
452 
453     @Override
454     protected Object visit(final ASTIncrementGetNode node, final Object data) { return visitNode(node, data); }
455 
456     @Override
457     protected Object visit(final ASTSetShiftRightNode node, final Object data) {
458         return visitNode(node, data);
459     }
460 
461     @Override
462     protected Object visit(final ASTJxltLiteral node, final Object data) {
463         return visitNode(node, data);
464     }
465 
466     @Override
467     protected Object visit(final ASTAnnotation node, final Object data) {
468         return visitNode(node, data);
469     }
470 
471     @Override
472     protected Object visit(final ASTAnnotatedStatement node, final Object data) {
473         return visitNode(node, data);
474     }
475 
476     @Override
477     protected Object visit(final ASTQualifiedIdentifier node, final Object data) {
478         return visitNode(node, data);
479     }
480 }