svn-gvsig-desktop / trunk / libraries / libGDBMS / src / com / hardcode / gdbms / control / SemanticParser.java @ 466
History | View | Annotate | Download (17.6 KB)
1 |
package com.hardcode.gdbms.control; |
---|---|
2 |
|
3 |
import com.hardcode.gdbms.parser.ASTSQLAndExpr; |
4 |
import com.hardcode.gdbms.parser.ASTSQLBetweenClause; |
5 |
import com.hardcode.gdbms.parser.ASTSQLColRef; |
6 |
import com.hardcode.gdbms.parser.ASTSQLCompareExpr; |
7 |
import com.hardcode.gdbms.parser.ASTSQLCompareExprRight; |
8 |
import com.hardcode.gdbms.parser.ASTSQLCompareOp; |
9 |
import com.hardcode.gdbms.parser.ASTSQLDelete; |
10 |
import com.hardcode.gdbms.parser.ASTSQLExistsClause; |
11 |
import com.hardcode.gdbms.parser.ASTSQLFunction; |
12 |
import com.hardcode.gdbms.parser.ASTSQLFunctionArgs; |
13 |
import com.hardcode.gdbms.parser.ASTSQLGroupBy; |
14 |
import com.hardcode.gdbms.parser.ASTSQLInClause; |
15 |
import com.hardcode.gdbms.parser.ASTSQLInsert; |
16 |
import com.hardcode.gdbms.parser.ASTSQLIsClause; |
17 |
import com.hardcode.gdbms.parser.ASTSQLLValueElement; |
18 |
import com.hardcode.gdbms.parser.ASTSQLLValueList; |
19 |
import com.hardcode.gdbms.parser.ASTSQLLeftJoinClause; |
20 |
import com.hardcode.gdbms.parser.ASTSQLLikeClause; |
21 |
import com.hardcode.gdbms.parser.ASTSQLLiteral; |
22 |
import com.hardcode.gdbms.parser.ASTSQLLvalue; |
23 |
import com.hardcode.gdbms.parser.ASTSQLLvalueTerm; |
24 |
import com.hardcode.gdbms.parser.ASTSQLNotExpr; |
25 |
import com.hardcode.gdbms.parser.ASTSQLOrExpr; |
26 |
import com.hardcode.gdbms.parser.ASTSQLOrderBy; |
27 |
import com.hardcode.gdbms.parser.ASTSQLOrderByElem; |
28 |
import com.hardcode.gdbms.parser.ASTSQLOrderByList; |
29 |
import com.hardcode.gdbms.parser.ASTSQLOrderDirection; |
30 |
import com.hardcode.gdbms.parser.ASTSQLPattern; |
31 |
import com.hardcode.gdbms.parser.ASTSQLProductExpr; |
32 |
import com.hardcode.gdbms.parser.ASTSQLRightJoinClause; |
33 |
import com.hardcode.gdbms.parser.ASTSQLSelect; |
34 |
import com.hardcode.gdbms.parser.ASTSQLSelectCols; |
35 |
import com.hardcode.gdbms.parser.ASTSQLSelectList; |
36 |
import com.hardcode.gdbms.parser.ASTSQLStatement; |
37 |
import com.hardcode.gdbms.parser.ASTSQLSumExpr; |
38 |
import com.hardcode.gdbms.parser.ASTSQLTableList; |
39 |
import com.hardcode.gdbms.parser.ASTSQLTableRef; |
40 |
import com.hardcode.gdbms.parser.ASTSQLTerm; |
41 |
import com.hardcode.gdbms.parser.ASTSQLUnaryExpr; |
42 |
import com.hardcode.gdbms.parser.ASTSQLUnion; |
43 |
import com.hardcode.gdbms.parser.ASTSQLUpdate; |
44 |
import com.hardcode.gdbms.parser.ASTSQLUpdateAssignment; |
45 |
import com.hardcode.gdbms.parser.ASTSQLWhere; |
46 |
import com.hardcode.gdbms.parser.Node; |
47 |
import com.hardcode.gdbms.parser.SQLEngineVisitor; |
48 |
import com.hardcode.gdbms.parser.SimpleNode; |
49 |
import com.hardcode.gdbms.parser.Token; |
50 |
|
51 |
import org.xml.sax.ContentHandler; |
52 |
import org.xml.sax.SAXException; |
53 |
import org.xml.sax.helpers.AttributesImpl; |
54 |
|
55 |
import java.util.Stack; |
56 |
|
57 |
|
58 |
/**
|
59 |
* Se encarga de obtener una estructura de datos que defina la instrucci?n SQL
|
60 |
* en t?rminos de DataSources y dem?s estructuras internas a partir del ?rbol
|
61 |
* obtenido en el an?lisis sint?ctico
|
62 |
*
|
63 |
* @author Fernando Gonz?lez Cort?s
|
64 |
*/
|
65 |
public class SemanticParser implements SQLEngineVisitor { |
66 |
private Stack childs = new Stack(); |
67 |
private int current = -1; |
68 |
private Stack infos = new Stack(); |
69 |
private ContentHandler handler; |
70 |
|
71 |
/**
|
72 |
* Obtiene el texto del nodo
|
73 |
*
|
74 |
* @param s Nodo del cual se quiere obtener el texto
|
75 |
*
|
76 |
* @return String
|
77 |
*/
|
78 |
private String getText(SimpleNode s) { |
79 |
String ret = ""; |
80 |
|
81 |
for (Token tok = s.first_token; tok != s.last_token.next;
|
82 |
tok = tok.next) { |
83 |
ret += (" " + tok.image);
|
84 |
} |
85 |
|
86 |
return ret;
|
87 |
} |
88 |
|
89 |
/**
|
90 |
* Obtiene el nombre de la clase a partir de dicha clase. El nombre no
|
91 |
* cualificado, es decir, sin el paquete
|
92 |
*
|
93 |
* @param clase Clase de la cual se quiere obtener el nombre
|
94 |
*
|
95 |
* @return String con el nombre
|
96 |
*/
|
97 |
private String getClassName(Class clase) { |
98 |
String name = clase.getName();
|
99 |
|
100 |
return name.substring(name.lastIndexOf('.') + 1); |
101 |
} |
102 |
|
103 |
/**
|
104 |
* Lanza un evento SAX de startElement con la informaci?n del nodo que se
|
105 |
* pasa como parametro
|
106 |
*
|
107 |
* @param node nodo del arbol sint?ctico
|
108 |
*/
|
109 |
private void start(SimpleNode node) { |
110 |
String info = node.getClass().getName() + "(" + getText(node) + ")"; |
111 |
|
112 |
int numChilds = node.jjtGetNumChildren();
|
113 |
|
114 |
childs.push(new Integer(current)); |
115 |
infos.push(node); |
116 |
|
117 |
current = numChilds; |
118 |
|
119 |
AttributesImpl atts = new AttributesImpl();
|
120 |
atts.addAttribute("", "image", "image", "CDATA", getText(node)); |
121 |
|
122 |
if (node.first_token == node.last_token) {
|
123 |
atts.addAttribute("", "type", "type", "CDATA", |
124 |
"" + node.first_token.kind);
|
125 |
} |
126 |
|
127 |
try {
|
128 |
handler.startElement("", getClassName(node.getClass()),
|
129 |
getClassName(node.getClass()), atts); |
130 |
} catch (SAXException e) {
|
131 |
} |
132 |
|
133 |
if (numChilds == 0) { |
134 |
end(); |
135 |
} |
136 |
} |
137 |
|
138 |
/**
|
139 |
* metodo que procesa un nodo
|
140 |
*
|
141 |
* @param node nodo a procesar
|
142 |
*/
|
143 |
private void process(SimpleNode node) { |
144 |
start(node); |
145 |
} |
146 |
|
147 |
/**
|
148 |
* Lanza un evento SAX de endElement con la informaci?n del nodo que se
|
149 |
* encuentra encima de la pila
|
150 |
*/
|
151 |
private void end() { |
152 |
current--; |
153 |
|
154 |
if (current <= 0) { |
155 |
current = ((Integer) childs.pop()).intValue();
|
156 |
|
157 |
Node node = (Node) infos.pop(); |
158 |
|
159 |
try {
|
160 |
handler.endElement("", getClassName(node.getClass()),
|
161 |
getClassName(node.getClass())); |
162 |
} catch (SAXException e) {
|
163 |
} |
164 |
|
165 |
if (!childs.isEmpty()) {
|
166 |
end(); |
167 |
} |
168 |
} |
169 |
} |
170 |
|
171 |
/**
|
172 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.SimpleNode,
|
173 |
* java.lang.Object)
|
174 |
*/
|
175 |
public Object visit(SimpleNode node, Object data) { |
176 |
process(node); |
177 |
|
178 |
return null; |
179 |
} |
180 |
|
181 |
/**
|
182 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLAndExpr,
|
183 |
* java.lang.Object)
|
184 |
*/
|
185 |
public Object visit(ASTSQLAndExpr node, Object data) { |
186 |
process(node); |
187 |
|
188 |
return null; |
189 |
} |
190 |
|
191 |
/**
|
192 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLBetweenClause,
|
193 |
* java.lang.Object)
|
194 |
*/
|
195 |
public Object visit(ASTSQLBetweenClause node, Object data) { |
196 |
process(node); |
197 |
|
198 |
return null; |
199 |
} |
200 |
|
201 |
/**
|
202 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLColRef,
|
203 |
* java.lang.Object)
|
204 |
*/
|
205 |
public Object visit(ASTSQLColRef node, Object data) { |
206 |
process(node); |
207 |
|
208 |
return null; |
209 |
} |
210 |
|
211 |
/**
|
212 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLCompareExpr,
|
213 |
* java.lang.Object)
|
214 |
*/
|
215 |
public Object visit(ASTSQLCompareExpr node, Object data) { |
216 |
process(node); |
217 |
|
218 |
return null; |
219 |
} |
220 |
|
221 |
/**
|
222 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLCompareExprRight,
|
223 |
* java.lang.Object)
|
224 |
*/
|
225 |
public Object visit(ASTSQLCompareExprRight node, Object data) { |
226 |
process(node); |
227 |
|
228 |
return null; |
229 |
} |
230 |
|
231 |
/**
|
232 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLCompareOp,
|
233 |
* java.lang.Object)
|
234 |
*/
|
235 |
public Object visit(ASTSQLCompareOp node, Object data) { |
236 |
process(node); |
237 |
|
238 |
return null; |
239 |
} |
240 |
|
241 |
/**
|
242 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLDelete,
|
243 |
* java.lang.Object)
|
244 |
*/
|
245 |
public Object visit(ASTSQLDelete node, Object data) { |
246 |
process(node); |
247 |
|
248 |
return null; |
249 |
} |
250 |
|
251 |
/**
|
252 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLExistsClause,
|
253 |
* java.lang.Object)
|
254 |
*/
|
255 |
public Object visit(ASTSQLExistsClause node, Object data) { |
256 |
process(node); |
257 |
|
258 |
return null; |
259 |
} |
260 |
|
261 |
/**
|
262 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLFunction,
|
263 |
* java.lang.Object)
|
264 |
*/
|
265 |
public Object visit(ASTSQLFunction node, Object data) { |
266 |
process(node); |
267 |
|
268 |
return null; |
269 |
} |
270 |
|
271 |
/**
|
272 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLFunctionArgs,
|
273 |
* java.lang.Object)
|
274 |
*/
|
275 |
public Object visit(ASTSQLFunctionArgs node, Object data) { |
276 |
process(node); |
277 |
|
278 |
return null; |
279 |
} |
280 |
|
281 |
/**
|
282 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLGroupBy,
|
283 |
* java.lang.Object)
|
284 |
*/
|
285 |
public Object visit(ASTSQLGroupBy node, Object data) { |
286 |
process(node); |
287 |
|
288 |
return null; |
289 |
} |
290 |
|
291 |
/**
|
292 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLInClause,
|
293 |
* java.lang.Object)
|
294 |
*/
|
295 |
public Object visit(ASTSQLInClause node, Object data) { |
296 |
process(node); |
297 |
|
298 |
return null; |
299 |
} |
300 |
|
301 |
/**
|
302 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLInsert,
|
303 |
* java.lang.Object)
|
304 |
*/
|
305 |
public Object visit(ASTSQLInsert node, Object data) { |
306 |
process(node); |
307 |
|
308 |
return null; |
309 |
} |
310 |
|
311 |
/**
|
312 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLIsClause,
|
313 |
* java.lang.Object)
|
314 |
*/
|
315 |
public Object visit(ASTSQLIsClause node, Object data) { |
316 |
process(node); |
317 |
|
318 |
return null; |
319 |
} |
320 |
|
321 |
/**
|
322 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLLeftJoinClause,
|
323 |
* java.lang.Object)
|
324 |
*/
|
325 |
public Object visit(ASTSQLLeftJoinClause node, Object data) { |
326 |
process(node); |
327 |
|
328 |
return null; |
329 |
} |
330 |
|
331 |
/**
|
332 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLLikeClause,
|
333 |
* java.lang.Object)
|
334 |
*/
|
335 |
public Object visit(ASTSQLLikeClause node, Object data) { |
336 |
process(node); |
337 |
|
338 |
return null; |
339 |
} |
340 |
|
341 |
/**
|
342 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLLiteral,
|
343 |
* java.lang.Object)
|
344 |
*/
|
345 |
public Object visit(ASTSQLLiteral node, Object data) { |
346 |
process(node); |
347 |
|
348 |
return null; |
349 |
} |
350 |
|
351 |
/**
|
352 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLLvalue,
|
353 |
* java.lang.Object)
|
354 |
*/
|
355 |
public Object visit(ASTSQLLvalue node, Object data) { |
356 |
process(node); |
357 |
|
358 |
return null; |
359 |
} |
360 |
|
361 |
/**
|
362 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLLvalueTerm,
|
363 |
* java.lang.Object)
|
364 |
*/
|
365 |
public Object visit(ASTSQLLvalueTerm node, Object data) { |
366 |
process(node); |
367 |
|
368 |
return null; |
369 |
} |
370 |
|
371 |
/**
|
372 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLNotExpr,
|
373 |
* java.lang.Object)
|
374 |
*/
|
375 |
public Object visit(ASTSQLNotExpr node, Object data) { |
376 |
process(node); |
377 |
|
378 |
return null; |
379 |
} |
380 |
|
381 |
/**
|
382 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLOrderBy,
|
383 |
* java.lang.Object)
|
384 |
*/
|
385 |
public Object visit(ASTSQLOrderBy node, Object data) { |
386 |
process(node); |
387 |
|
388 |
return null; |
389 |
} |
390 |
|
391 |
/**
|
392 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLOrderByElem,
|
393 |
* java.lang.Object)
|
394 |
*/
|
395 |
public Object visit(ASTSQLOrderByElem node, Object data) { |
396 |
process(node); |
397 |
|
398 |
return null; |
399 |
} |
400 |
|
401 |
/**
|
402 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLOrderByList,
|
403 |
* java.lang.Object)
|
404 |
*/
|
405 |
public Object visit(ASTSQLOrderByList node, Object data) { |
406 |
process(node); |
407 |
|
408 |
return null; |
409 |
} |
410 |
|
411 |
/**
|
412 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLOrderDirection,
|
413 |
* java.lang.Object)
|
414 |
*/
|
415 |
public Object visit(ASTSQLOrderDirection node, Object data) { |
416 |
process(node); |
417 |
|
418 |
return null; |
419 |
} |
420 |
|
421 |
/**
|
422 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLOrExpr,
|
423 |
* java.lang.Object)
|
424 |
*/
|
425 |
public Object visit(ASTSQLOrExpr node, Object data) { |
426 |
process(node); |
427 |
|
428 |
return null; |
429 |
} |
430 |
|
431 |
/**
|
432 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLPattern,
|
433 |
* java.lang.Object)
|
434 |
*/
|
435 |
public Object visit(ASTSQLPattern node, Object data) { |
436 |
process(node); |
437 |
|
438 |
return null; |
439 |
} |
440 |
|
441 |
/**
|
442 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLProductExpr,
|
443 |
* java.lang.Object)
|
444 |
*/
|
445 |
public Object visit(ASTSQLProductExpr node, Object data) { |
446 |
process(node); |
447 |
|
448 |
return null; |
449 |
} |
450 |
|
451 |
/**
|
452 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLRightJoinClause,
|
453 |
* java.lang.Object)
|
454 |
*/
|
455 |
public Object visit(ASTSQLRightJoinClause node, Object data) { |
456 |
process(node); |
457 |
|
458 |
return null; |
459 |
} |
460 |
|
461 |
/**
|
462 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLSelect,
|
463 |
* java.lang.Object)
|
464 |
*/
|
465 |
public Object visit(ASTSQLSelect node, Object data) { |
466 |
process(node); |
467 |
|
468 |
return null; |
469 |
} |
470 |
|
471 |
/**
|
472 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLSelectCols,
|
473 |
* java.lang.Object)
|
474 |
*/
|
475 |
public Object visit(ASTSQLSelectCols node, Object data) { |
476 |
process(node); |
477 |
|
478 |
return null; |
479 |
} |
480 |
|
481 |
/**
|
482 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLSelectList,
|
483 |
* java.lang.Object)
|
484 |
*/
|
485 |
public Object visit(ASTSQLSelectList node, Object data) { |
486 |
process(node); |
487 |
|
488 |
return null; |
489 |
} |
490 |
|
491 |
/**
|
492 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLStatement,
|
493 |
* java.lang.Object)
|
494 |
*/
|
495 |
public Object visit(ASTSQLStatement node, Object data) { |
496 |
process(node); |
497 |
|
498 |
return null; |
499 |
} |
500 |
|
501 |
/**
|
502 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLSumExpr,
|
503 |
* java.lang.Object)
|
504 |
*/
|
505 |
public Object visit(ASTSQLSumExpr node, Object data) { |
506 |
process(node); |
507 |
|
508 |
return null; |
509 |
} |
510 |
|
511 |
/**
|
512 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLTableList,
|
513 |
* java.lang.Object)
|
514 |
*/
|
515 |
public Object visit(ASTSQLTableList node, Object data) { |
516 |
process(node); |
517 |
|
518 |
return null; |
519 |
} |
520 |
|
521 |
/**
|
522 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLTableRef,
|
523 |
* java.lang.Object)
|
524 |
*/
|
525 |
public Object visit(ASTSQLTableRef node, Object data) { |
526 |
process(node); |
527 |
|
528 |
return null; |
529 |
} |
530 |
|
531 |
/**
|
532 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLTerm,
|
533 |
* java.lang.Object)
|
534 |
*/
|
535 |
public Object visit(ASTSQLTerm node, Object data) { |
536 |
process(node); |
537 |
|
538 |
return null; |
539 |
} |
540 |
|
541 |
/**
|
542 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLUnaryExpr,
|
543 |
* java.lang.Object)
|
544 |
*/
|
545 |
public Object visit(ASTSQLUnaryExpr node, Object data) { |
546 |
process(node); |
547 |
|
548 |
return null; |
549 |
} |
550 |
|
551 |
/**
|
552 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLUpdate,
|
553 |
* java.lang.Object)
|
554 |
*/
|
555 |
public Object visit(ASTSQLUpdate node, Object data) { |
556 |
process(node); |
557 |
|
558 |
return null; |
559 |
} |
560 |
|
561 |
/**
|
562 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLUpdateAssignment,
|
563 |
* java.lang.Object)
|
564 |
*/
|
565 |
public Object visit(ASTSQLUpdateAssignment node, Object data) { |
566 |
process(node); |
567 |
|
568 |
return null; |
569 |
} |
570 |
|
571 |
/**
|
572 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLLValueElement,
|
573 |
* java.lang.Object)
|
574 |
*/
|
575 |
public Object visit(ASTSQLLValueElement node, Object data) { |
576 |
process(node); |
577 |
|
578 |
return null; |
579 |
} |
580 |
|
581 |
/**
|
582 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLLValueList,
|
583 |
* java.lang.Object)
|
584 |
*/
|
585 |
public Object visit(ASTSQLLValueList node, Object data) { |
586 |
process(node); |
587 |
|
588 |
return null; |
589 |
} |
590 |
|
591 |
/**
|
592 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLWhere,
|
593 |
* java.lang.Object)
|
594 |
*/
|
595 |
public Object visit(ASTSQLWhere node, Object data) { |
596 |
process(node); |
597 |
|
598 |
return null; |
599 |
} |
600 |
|
601 |
/**
|
602 |
* @see org.xml.sax.XMLReader#getContentHandler()
|
603 |
*/
|
604 |
public ContentHandler getContentHandler() { |
605 |
return handler;
|
606 |
} |
607 |
|
608 |
/**
|
609 |
* @see org.xml.sax.XMLReader#setContentHandler(org.xml.sax.ContentHandler)
|
610 |
*/
|
611 |
public void setContentHandler(ContentHandler arg0) { |
612 |
handler = arg0; |
613 |
} |
614 |
|
615 |
/**
|
616 |
* Hace que este visitor sp visite el nodo que se pasa como par?metro y
|
617 |
* cada uno de sus hijos
|
618 |
*
|
619 |
* @param root nodo raiz que se va a visitar
|
620 |
*
|
621 |
* @throws SAXException DOCUMENT ME!
|
622 |
*/
|
623 |
public void parse(Node root) throws SAXException { |
624 |
handler.startDocument(); |
625 |
parsing(root); |
626 |
handler.endDocument(); |
627 |
} |
628 |
|
629 |
/**
|
630 |
* DOCUMENT ME!
|
631 |
*
|
632 |
* @param root DOCUMENT ME!
|
633 |
*
|
634 |
* @throws SAXException DOCUMENT ME!
|
635 |
*/
|
636 |
private void parsing(Node root) throws SAXException { |
637 |
root.jjtAccept(this, null); |
638 |
|
639 |
for (int i = 0; i < root.jjtGetNumChildren(); i++) { |
640 |
parsing(root.jjtGetChild(i)); |
641 |
} |
642 |
} |
643 |
|
644 |
/**
|
645 |
* @see com.hardcode.gdbms.parser.SQLEngineVisitor#visit(com.hardcode.gdbms.parser.ASTSQLUnion, java.lang.Object)
|
646 |
*/
|
647 |
public Object visit(ASTSQLUnion node, Object data) { |
648 |
process(node); |
649 |
return null; |
650 |
} |
651 |
} |