1 package org.apache.maven.doxia.sink;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.LinkedList;
23 import java.util.List;
24 import java.util.Stack;
25
26
27
28
29
30
31
32
33
34 public class WellformednessCheckingSink
35 extends AbstractSink
36 {
37 private Stack elements = new Stack();
38
39 private List errors = new LinkedList();
40
41 public void head()
42 {
43 startElement( "head" );
44 }
45
46 public void head_()
47 {
48 checkWellformedness( "head" );
49 }
50
51 public void body()
52 {
53 startElement( "body" );
54 }
55
56 public void body_()
57 {
58 checkWellformedness( "body" );
59 }
60
61 public void section1()
62 {
63 startElement( "section1" );
64 }
65
66 public void section1_()
67 {
68 checkWellformedness( "section1" );
69 }
70
71 public void section2()
72 {
73 startElement( "section2" );
74 }
75
76 public void section2_()
77 {
78 checkWellformedness( "section2" );
79 }
80
81 public void section3()
82 {
83 startElement( "section3" );
84 }
85
86 public void section3_()
87 {
88 checkWellformedness( "section3" );
89 }
90
91 public void section4()
92 {
93 startElement( "section4" );
94 }
95
96 public void section4_()
97 {
98 checkWellformedness( "section4" );
99 }
100
101 public void section5()
102 {
103 startElement( "section5" );
104 }
105
106 public void section5_()
107 {
108 checkWellformedness( "section5" );
109 }
110
111 public void list()
112 {
113 startElement( "list" );
114 }
115
116 public void list_()
117 {
118 checkWellformedness( "list" );
119 }
120
121 public void listItem()
122 {
123 startElement( "listItem" );
124 }
125
126 public void listItem_()
127 {
128 checkWellformedness( "listItem" );
129 }
130
131 public void numberedList( int numbering )
132 {
133 startElement( "numberedList" );
134 }
135
136 public void numberedList_()
137 {
138 checkWellformedness( "numberedList" );
139 }
140
141 public void numberedListItem()
142 {
143 startElement( "numberedListItem" );
144 }
145
146 public void numberedListItem_()
147 {
148 checkWellformedness( "numberedListItem" );
149 }
150
151 public void definitionList()
152 {
153 startElement( "definitionList" );
154 }
155
156 public void definitionList_()
157 {
158 checkWellformedness( "definitionList" );
159 }
160
161 public void definitionListItem()
162 {
163 startElement( "definitionListItem" );
164 }
165
166 public void definitionListItem_()
167 {
168 checkWellformedness( "definitionListItem" );
169 }
170
171 public void definition()
172 {
173 startElement( "definition" );
174 }
175
176 public void definition_()
177 {
178 checkWellformedness( "definition" );
179 }
180
181 public void figure()
182 {
183 startElement( "figure" );
184 }
185
186 public void figure_()
187 {
188 checkWellformedness( "figure" );
189 }
190
191 public void table()
192 {
193 startElement( "table" );
194 }
195
196 public void table_()
197 {
198 checkWellformedness( "table" );
199 }
200
201 public void tableRows( int[] justification, boolean grid )
202 {
203 startElement( "tableRows" );
204 }
205
206 public void tableRows_()
207 {
208 checkWellformedness( "tableRows" );
209 }
210
211 public void tableRow()
212 {
213 startElement( "tableRow" );
214 }
215
216 public void tableRow_()
217 {
218 checkWellformedness( "tableRow" );
219 }
220
221 public void title()
222 {
223 startElement( "title" );
224 }
225
226 public void title_()
227 {
228 checkWellformedness( "title" );
229 }
230
231 public void author()
232 {
233 startElement( "author" );
234 }
235
236 public void author_()
237 {
238 checkWellformedness( "author" );
239 }
240
241 public void date()
242 {
243 startElement( "date" );
244 }
245
246 public void date_()
247 {
248 checkWellformedness( "date" );
249 }
250
251 public void sectionTitle()
252 {
253 startElement( "sectionTitle" );
254 }
255
256 public void sectionTitle_()
257 {
258 checkWellformedness( "sectionTitle" );
259 }
260
261 public void sectionTitle1()
262 {
263 startElement( "sectionTitle1" );
264 }
265
266 public void sectionTitle1_()
267 {
268 checkWellformedness( "sectionTitle1" );
269 }
270
271 public void sectionTitle2()
272 {
273 startElement( "sectionTitle2" );
274 }
275
276 public void sectionTitle2_()
277 {
278 checkWellformedness( "sectionTitle2" );
279 }
280
281 public void sectionTitle3()
282 {
283 startElement( "sectionTitle3" );
284 }
285
286 public void sectionTitle3_()
287 {
288 checkWellformedness( "sectionTitle3" );
289 }
290
291 public void sectionTitle4()
292 {
293 startElement( "sectionTitle4" );
294 }
295
296 public void sectionTitle4_()
297 {
298 checkWellformedness( "sectionTitle4" );
299 }
300
301 public void sectionTitle5()
302 {
303 startElement( "sectionTitle5" );
304 }
305
306 public void sectionTitle5_()
307 {
308 checkWellformedness( "sectionTitle5" );
309 }
310
311 public void paragraph()
312 {
313 startElement( "paragraph" );
314 }
315
316 public void paragraph_()
317 {
318 checkWellformedness( "paragraph" );
319 }
320
321 public void verbatim( boolean boxed )
322 {
323 startElement( "verbatim" );
324 }
325
326 public void verbatim_()
327 {
328 checkWellformedness( "verbatim" );
329 }
330
331 public void definedTerm()
332 {
333 startElement( "definedTerm" );
334 }
335
336 public void definedTerm_()
337 {
338 checkWellformedness( "definedTerm" );
339 }
340
341 public void figureCaption()
342 {
343 startElement( "figureCaption" );
344 }
345
346 public void figureCaption_()
347 {
348 checkWellformedness( "figureCaption" );
349 }
350
351 public void tableCell()
352 {
353 startElement( "tableCell" );
354 }
355
356 public void tableCell( String width )
357 {
358 startElement( "tableCell" );
359 }
360
361 public void tableCell_()
362 {
363 checkWellformedness( "tableCell" );
364 }
365
366 public void tableHeaderCell()
367 {
368 startElement( "tableHeaderCell" );
369 }
370
371 public void tableHeaderCell( String width )
372 {
373 startElement( "tableHeaderCell" );
374 }
375
376 public void tableHeaderCell_()
377 {
378 checkWellformedness( "tableHeaderCell" );
379 }
380
381 public void tableCaption()
382 {
383 startElement( "tableCaption" );
384 }
385
386 public void tableCaption_()
387 {
388 checkWellformedness( "tableCaption" );
389 }
390
391 public void figureGraphics( String name )
392 {
393 }
394
395 public void horizontalRule()
396 {
397 }
398
399 public void pageBreak()
400 {
401 }
402
403 public void anchor( String name )
404 {
405 startElement( "anchor" );
406 }
407
408 public void anchor_()
409 {
410 checkWellformedness( "anchor" );
411 }
412
413 public void link( String name )
414 {
415 startElement( "link" );
416 }
417
418 public void link_()
419 {
420 checkWellformedness( "link" );
421 }
422
423 public void italic()
424 {
425 startElement( "italic" );
426 }
427
428 public void italic_()
429 {
430 checkWellformedness( "italic" );
431 }
432
433 public void bold()
434 {
435 startElement( "bold" );
436 }
437
438 public void bold_()
439 {
440 checkWellformedness( "bold" );
441 }
442
443 public void monospaced()
444 {
445 startElement( "monospaced" );
446 }
447
448 public void monospaced_()
449 {
450 checkWellformedness( "monospaced" );
451 }
452
453 public void lineBreak()
454 {
455 }
456
457 public void nonBreakingSpace()
458 {
459 }
460
461 public void text( String text )
462 {
463 }
464
465 public void rawText( String text )
466 {
467 }
468
469
470 public void comment( String comment )
471 {
472 }
473
474 public void flush()
475 {
476 }
477
478 public void close()
479 {
480 }
481
482
483
484
485
486
487
488 public boolean isWellformed()
489 {
490 return errors.size() == 0;
491 }
492
493
494
495
496
497
498
499 public String getOffender()
500 {
501 if ( isWellformed() )
502 {
503 return null;
504 }
505
506 return (String) errors.get( errors.size() - 1 );
507 }
508
509
510
511
512
513
514 public List getOffenders()
515 {
516 return errors;
517 }
518
519
520
521
522
523
524
525 private void checkWellformedness( String actual )
526 {
527 String expected = (String) elements.pop();
528
529 if ( !expected.equals( actual ) )
530 {
531 errors.add( "Encountered closing: " + actual + ", expected " + expected );
532 }
533 }
534
535
536
537
538
539
540
541 private void startElement( String string )
542 {
543 elements.push( string );
544 }
545
546
547 public void head( SinkEventAttributes attributes )
548 {
549 head();
550 }
551
552
553 public void title( SinkEventAttributes attributes )
554 {
555 title();
556 }
557
558
559 public void author( SinkEventAttributes attributes )
560 {
561 author();
562 }
563
564
565 public void date( SinkEventAttributes attributes )
566 {
567 date();
568 }
569
570
571 public void body( SinkEventAttributes attributes )
572 {
573 body();
574 }
575
576
577 public void section( int level, SinkEventAttributes attributes )
578 {
579 startElement( "section" + level );
580 }
581
582
583 public void section_( int level )
584 {
585 checkWellformedness( "section" + level );
586 }
587
588
589 public void sectionTitle( int level, SinkEventAttributes attributes )
590 {
591 startElement( "sectionTitle" + level );
592 }
593
594
595 public void sectionTitle_( int level )
596 {
597 checkWellformedness( "sectionTitle" + level );
598 }
599
600
601 public void list( SinkEventAttributes attributes )
602 {
603 list();
604 }
605
606
607 public void listItem( SinkEventAttributes attributes )
608 {
609 listItem();
610 }
611
612
613 public void numberedList( int numbering, SinkEventAttributes attributes )
614 {
615 numberedList( numbering );
616 }
617
618
619 public void numberedListItem( SinkEventAttributes attributes )
620 {
621 numberedListItem();
622 }
623
624
625 public void definitionList( SinkEventAttributes attributes )
626 {
627 definitionList();
628 }
629
630
631 public void definitionListItem( SinkEventAttributes attributes )
632 {
633 definitionListItem();
634 }
635
636
637 public void definition( SinkEventAttributes attributes )
638 {
639 definition();
640 }
641
642
643 public void definedTerm( SinkEventAttributes attributes )
644 {
645 definedTerm();
646 }
647
648
649 public void figure( SinkEventAttributes attributes )
650 {
651 figure();
652 }
653
654
655 public void figureCaption( SinkEventAttributes attributes )
656 {
657 figureCaption();
658 }
659
660
661 public void figureGraphics( String src, SinkEventAttributes attributes )
662 {
663 figureGraphics( src );
664 }
665
666
667 public void table( SinkEventAttributes attributes )
668 {
669 table();
670 }
671
672
673 public void tableRow( SinkEventAttributes attributes )
674 {
675 tableRow();
676 }
677
678
679 public void tableCell( SinkEventAttributes attributes )
680 {
681 tableCell();
682 }
683
684
685 public void tableHeaderCell( SinkEventAttributes attributes )
686 {
687 tableHeaderCell();
688 }
689
690
691 public void tableCaption( SinkEventAttributes attributes )
692 {
693 tableCaption();
694 }
695
696
697 public void paragraph( SinkEventAttributes attributes )
698 {
699 paragraph();
700 }
701
702
703 public void verbatim( SinkEventAttributes attributes )
704 {
705 verbatim( false );
706 }
707
708
709 public void horizontalRule( SinkEventAttributes attributes )
710 {
711 horizontalRule();
712 }
713
714
715 public void anchor( String name, SinkEventAttributes attributes )
716 {
717 anchor( name );
718 }
719
720
721 public void link( String name, SinkEventAttributes attributes )
722 {
723 link( name );
724 }
725
726
727 public void lineBreak( SinkEventAttributes attributes )
728 {
729 lineBreak();
730 }
731
732
733 public void text( String text, SinkEventAttributes attributes )
734 {
735 text( text );
736 }
737
738
739 public void unknown( String name, Object[] requiredParams, SinkEventAttributes attributes )
740 {
741
742 }
743 }