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    *      https://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.parser;
18  
19  /**
20   * Fully abstract to avoid public interface exposition.
21   */
22  public abstract class ParserVisitor {
23      protected abstract Object visit(ASTAddNode node, Object data);
24  
25      /**
26       * Unused, should throw in Parser.
27       *
28       * @param node a node
29       * @param data the data
30       * @return does not return
31       */
32      protected final Object visit(final ASTAmbiguous node, final Object data) {
33          throw new UnsupportedOperationException("unexpected type of node");
34      }
35  
36      protected abstract Object visit(ASTAndNode node, Object data);
37  
38      protected abstract Object visit(ASTAnnotatedStatement node, Object data);
39  
40      protected abstract Object visit(ASTAnnotation node, Object data);
41  
42      protected abstract Object visit(ASTArguments node, Object data);
43  
44      protected abstract Object visit(ASTArrayAccess node, Object data);
45  
46      protected abstract Object visit(ASTArrayLiteral node, Object data);
47  
48      protected abstract Object visit(ASTAssignment node, Object data);
49  
50      protected abstract Object visit(ASTBitwiseAndNode node, Object data);
51  
52      protected abstract Object visit(ASTBitwiseComplNode node, Object data);
53  
54      protected abstract Object visit(ASTBitwiseOrNode node, Object data);
55  
56      protected abstract Object visit(ASTBitwiseXorNode node, Object data);
57  
58      protected abstract Object visit(ASTBlock node, Object data);
59  
60      protected abstract Object visit(ASTBreak node, Object data);
61  
62      protected abstract Object visit(ASTConstructorNode node, Object data);
63  
64      protected abstract Object visit(ASTSwitchStatement node, final Object data);
65  
66      protected abstract Object visit(ASTCaseStatement node, final Object data);
67  
68      protected abstract Object visit(ASTSwitchExpression node, final Object data);
69  
70      protected abstract Object visit(ASTCaseExpression node, final Object data);
71  
72      protected abstract Object visit(ASTContinue node, Object data);
73  
74      protected abstract Object visit(ASTDecrementGetNode node, final Object data);
75  
76      protected abstract Object visit(ASTDefineVars node, Object data);
77  
78      protected abstract Object visit(ASTDivNode node, Object data);
79  
80      protected abstract Object visit(ASTDoWhileStatement node, Object data);
81  
82      protected abstract Object visit(ASTEmptyFunction node, Object data);
83  
84      protected abstract Object visit(ASTEQNode node, Object data);
85  
86      protected abstract Object visit(ASTEQSNode node, Object data);
87  
88      protected abstract Object visit(ASTERNode node, Object data);
89  
90      protected abstract Object visit(ASTEWNode node, Object data);
91  
92      protected abstract Object visit(ASTExtendedLiteral node, Object data);
93  
94      protected abstract Object visit(ASTFalseNode node, Object data);
95  
96      protected abstract Object visit(ASTForeachStatement node, Object data);
97  
98      protected abstract Object visit(ASTFunctionNode node, Object data);
99  
100     protected abstract Object visit(ASTGENode node, Object data);
101 
102     protected abstract Object visit(ASTGetDecrementNode node, final Object data);
103 
104     protected abstract Object visit(ASTGetIncrementNode node, final Object data);
105 
106     protected abstract Object visit(ASTGTNode node, Object data);
107 
108     protected abstract Object visit(ASTIdentifier node, Object data);
109 
110     protected abstract Object visit(ASTIdentifierAccess node, Object data);
111 
112     protected abstract Object visit(ASTIfStatement node, Object data);
113 
114     protected abstract Object visit(ASTIncrementGetNode node, final Object data);
115 
116     protected abstract Object visit(final ASTInstanceOf node, final Object data);
117 
118     protected abstract Object visit(ASTJexlScript node, Object data);
119 
120     protected abstract Object visit(ASTJxltLiteral node, Object data);
121 
122     protected abstract Object visit(ASTLENode node, Object data);
123 
124     protected abstract Object visit(ASTLTNode node, Object data);
125 
126     protected abstract Object visit(ASTMapEntry node, Object data);
127 
128     protected abstract Object visit(ASTMapLiteral node, Object data);
129 
130     protected abstract Object visit(ASTMethodNode node, Object data);
131 
132     protected abstract Object visit(ASTModNode node, Object data);
133 
134     protected abstract Object visit(ASTMulNode node, Object data);
135 
136     protected abstract Object visit(ASTNENode node, Object data);
137 
138     protected abstract Object visit(ASTNESNode node, Object data);
139 
140     protected abstract Object visit(ASTNEWNode node, Object data);
141 
142     protected abstract Object visit(final ASTNotInstanceOf node, final Object data);
143 
144     protected abstract Object visit(ASTNotNode node, Object data);
145 
146     protected abstract Object visit(ASTNRNode node, Object data);
147 
148     protected abstract Object visit(ASTNSWNode node, Object data);
149 
150     protected abstract Object visit(ASTNullLiteral node, Object data);
151 
152     protected abstract Object visit(ASTNullpNode node, Object data);
153 
154     protected abstract Object visit(ASTNumberLiteral node, Object data);
155 
156     protected abstract Object visit(ASTOrNode node, Object data);
157 
158     protected abstract Object visit(final ASTQualifiedIdentifier node, final Object data);
159 
160     protected abstract Object visit(ASTRangeNode node, Object data);
161 
162     protected abstract Object visit(ASTReference node, Object data);
163 
164     protected abstract Object visit(ASTReferenceExpression node, Object data);
165 
166     protected abstract Object visit(ASTRegexLiteral node, Object data);
167 
168     protected abstract Object visit(ASTReturnStatement node, Object data);
169 
170     protected abstract Object visit(ASTSetAddNode node, Object data);
171 
172     protected abstract Object visit(ASTSetAndNode node, Object data);
173 
174     protected abstract Object visit(ASTSetDivNode node, Object data);
175 
176     protected abstract Object visit(ASTSetLiteral node, Object data);
177 
178     protected abstract Object visit(ASTSetModNode node, Object data);
179 
180     protected abstract Object visit(ASTSetMultNode node, Object data);
181 
182     protected abstract Object visit(ASTSetOrNode node, Object data);
183 
184     protected abstract Object visit(ASTSetShiftLeftNode node, final Object data);
185 
186     protected abstract Object visit(ASTSetShiftRightNode node, final Object data);
187 
188     protected abstract Object visit(ASTSetShiftRightUnsignedNode node, final Object data);
189 
190     protected abstract Object visit(ASTSetSubNode node, Object data);
191 
192     protected abstract Object visit(ASTSetXorNode node, Object data);
193 
194     protected abstract Object visit(ASTShiftLeftNode node, final Object data);
195 
196     protected abstract Object visit(ASTShiftRightNode node, final Object data);
197 
198     protected abstract Object visit(ASTShiftRightUnsignedNode node, final Object data);
199 
200     protected abstract Object visit(ASTSizeFunction node, Object data);
201 
202     protected abstract Object visit(ASTStringLiteral node, Object data);
203 
204     protected abstract Object visit(ASTSubNode node, Object data);
205 
206     protected abstract Object visit(ASTSWNode node, Object data);
207 
208     protected abstract Object visit(ASTTernaryNode node, Object data);
209 
210     protected abstract Object visit(ASTThrowStatement node, Object data);
211 
212     protected abstract Object visit(ASTTrueNode node, Object data);
213 
214     protected abstract Object visit(ASTTryResources node, Object data);
215 
216     protected abstract Object visit(ASTTryStatement node, Object data);
217 
218     protected abstract Object visit(ASTUnaryMinusNode node, Object data);
219 
220     protected abstract Object visit(ASTUnaryPlusNode node, Object data);
221 
222     protected abstract Object visit(ASTVar node, Object data);
223 
224     protected abstract Object visit(ASTWhileStatement node, Object data);
225 
226     /**
227      * Unused, satisfy ParserVisitor interface.
228      *
229      * @param node a node
230      * @param data the data
231      * @return does not return
232      */
233     protected final Object visit(final SimpleNode node, final Object data) {
234         throw new UnsupportedOperationException(node.getClass().getSimpleName() + " : not supported yet.");
235     }
236 }