001package org.apache.maven.doxia.sink.impl; 002 003/* 004 * Licensed to the Apache Software Foundation (ASF) under one 005 * or more contributor license agreements. See the NOTICE file 006 * distributed with this work for additional information 007 * regarding copyright ownership. The ASF licenses this file 008 * to you under the Apache License, Version 2.0 (the 009 * "License"); you may not use this file except in compliance 010 * with the License. You may obtain a copy of the License at 011 * 012 * http://www.apache.org/licenses/LICENSE-2.0 013 * 014 * Unless required by applicable law or agreed to in writing, 015 * software distributed under the License is distributed on an 016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 017 * KIND, either express or implied. See the License for the 018 * specific language governing permissions and limitations 019 * under the License. 020 */ 021 022import java.util.LinkedList; 023import java.util.List; 024 025import org.apache.maven.doxia.sink.SinkEventAttributes; 026import org.apache.maven.doxia.sink.impl.AbstractSink; 027 028/** 029 * This sink is used for testing purposes in order to check wether 030 * the input of some parser is well-formed. 031 * 032 * @author ltheussl 033 * @version $Id$ 034 * @since 1.1 035 */ 036public class SinkEventTestingSink 037 extends AbstractSink 038{ 039 /** The list of sink events. */ 040 private final List<SinkEventElement> events = new LinkedList<SinkEventElement>(); 041 042 /** 043 * Return the collected list of SinkEventElements. 044 * 045 * @return the collected list of SinkEventElements. 046 */ 047 public List<SinkEventElement> getEventList() 048 { 049 return this.events; 050 } 051 052 /** Clears the list of sink events. */ 053 public void reset() 054 { 055 this.events.clear(); 056 } 057 058 // 059 // sink methods 060 // 061 062 @Override 063 public void head() 064 { 065 addEvent( "head" ); 066 } 067 068 @Override 069 public void head_() 070 { 071 addEvent( "head_" ); 072 } 073 074 @Override 075 public void body() 076 { 077 addEvent( "body" ); 078 } 079 080 @Override 081 public void body_() 082 { 083 addEvent( "body_" ); 084 } 085 086 @Override 087 public void section1() 088 { 089 addEvent( "section1" ); 090 } 091 092 @Override 093 public void section1_() 094 { 095 addEvent( "section1_" ); 096 } 097 098 @Override 099 public void section2() 100 { 101 addEvent( "section2" ); 102 } 103 104 @Override 105 public void section2_() 106 { 107 addEvent( "section2_" ); 108 } 109 110 @Override 111 public void section3() 112 { 113 addEvent( "section3" ); 114 } 115 116 @Override 117 public void section3_() 118 { 119 addEvent( "section3_" ); 120 } 121 122 @Override 123 public void section4() 124 { 125 addEvent( "section4" ); 126 } 127 128 @Override 129 public void section4_() 130 { 131 addEvent( "section4_" ); 132 } 133 134 @Override 135 public void section5() 136 { 137 addEvent( "section5" ); 138 } 139 140 @Override 141 public void section5_() 142 { 143 addEvent( "section5_" ); 144 } 145 146 @Override 147 public void section6() 148 { 149 addEvent( "section6" ); 150 } 151 152 @Override 153 public void section6_() 154 { 155 addEvent( "section6_" ); 156 } 157 158 @Override 159 public void list() 160 { 161 addEvent( "list" ); 162 } 163 164 @Override 165 public void list_() 166 { 167 addEvent( "list_" ); 168 } 169 170 @Override 171 public void listItem() 172 { 173 addEvent( "listItem" ); 174 } 175 176 @Override 177 public void listItem_() 178 { 179 addEvent( "listItem_" ); 180 } 181 182 @Override 183 public void numberedList( int numbering ) 184 { 185 addEvent( "numberedList", new Object[] {new Integer( numbering )} ); 186 } 187 188 @Override 189 public void numberedList_() 190 { 191 addEvent( "numberedList_" ); 192 } 193 194 @Override 195 public void numberedListItem() 196 { 197 addEvent( "numberedListItem" ); 198 } 199 200 @Override 201 public void numberedListItem_() 202 { 203 addEvent( "numberedListItem_" ); 204 } 205 206 @Override 207 public void definitionList() 208 { 209 addEvent( "definitionList" ); 210 } 211 212 @Override 213 public void definitionList_() 214 { 215 addEvent( "definitionList_" ); 216 } 217 218 @Override 219 public void definitionListItem() 220 { 221 addEvent( "definitionListItem" ); 222 } 223 224 @Override 225 public void definitionListItem_() 226 { 227 addEvent( "definitionListItem_" ); 228 } 229 230 @Override 231 public void definition() 232 { 233 addEvent( "definition" ); 234 } 235 236 @Override 237 public void definition_() 238 { 239 addEvent( "definition_" ); 240 } 241 242 @Override 243 public void figure() 244 { 245 addEvent( "figure" ); 246 } 247 248 @Override 249 public void figure_() 250 { 251 addEvent( "figure_" ); 252 } 253 254 @Override 255 public void table() 256 { 257 addEvent( "table" ); 258 } 259 260 @Override 261 public void table_() 262 { 263 addEvent( "table_" ); 264 } 265 266 @Override 267 public void tableRows( int[] justification, boolean grid ) 268 { 269 addEvent( "tableRows", new Object[] {justification, new Boolean( grid )} ); 270 } 271 272 @Override 273 public void tableRows_() 274 { 275 addEvent( "tableRows_" ); 276 } 277 278 @Override 279 public void tableRow() 280 { 281 addEvent( "tableRow" ); 282 } 283 284 @Override 285 public void tableRow_() 286 { 287 addEvent( "tableRow_" ); 288 } 289 290 @Override 291 public void title() 292 { 293 addEvent( "title" ); 294 } 295 296 @Override 297 public void title_() 298 { 299 addEvent( "title_" ); 300 } 301 302 @Override 303 public void author() 304 { 305 addEvent( "author" ); 306 } 307 308 @Override 309 public void author_() 310 { 311 addEvent( "author_" ); 312 } 313 314 @Override 315 public void date() 316 { 317 addEvent( "date" ); 318 } 319 320 @Override 321 public void date_() 322 { 323 addEvent( "date_" ); 324 } 325 326 @Override 327 public void sectionTitle() 328 { 329 addEvent( "sectionTitle" ); 330 } 331 332 @Override 333 public void sectionTitle_() 334 { 335 addEvent( "sectionTitle_" ); 336 } 337 338 @Override 339 public void sectionTitle1() 340 { 341 addEvent( "sectionTitle1" ); 342 } 343 344 @Override 345 public void sectionTitle1_() 346 { 347 addEvent( "sectionTitle1_" ); 348 } 349 350 @Override 351 public void sectionTitle2() 352 { 353 addEvent( "sectionTitle2" ); 354 } 355 356 @Override 357 public void sectionTitle2_() 358 { 359 addEvent( "sectionTitle2_" ); 360 } 361 362 @Override 363 public void sectionTitle3() 364 { 365 addEvent( "sectionTitle3" ); 366 } 367 368 @Override 369 public void sectionTitle3_() 370 { 371 addEvent( "sectionTitle3_" ); 372 } 373 374 @Override 375 public void sectionTitle4() 376 { 377 addEvent( "sectionTitle4" ); 378 } 379 380 @Override 381 public void sectionTitle4_() 382 { 383 addEvent( "sectionTitle4_" ); 384 } 385 386 @Override 387 public void sectionTitle5() 388 { 389 addEvent( "sectionTitle5" ); 390 } 391 392 @Override 393 public void sectionTitle5_() 394 { 395 addEvent( "sectionTitle5_" ); 396 } 397 398 @Override 399 public void sectionTitle6() 400 { 401 addEvent( "sectionTitle6" ); 402 } 403 404 @Override 405 public void sectionTitle6_() 406 { 407 addEvent( "sectionTitle6_" ); 408 } 409 410 @Override 411 public void paragraph() 412 { 413 addEvent( "paragraph" ); 414 } 415 416 @Override 417 public void paragraph_() 418 { 419 addEvent( "paragraph_" ); 420 } 421 422 @Override 423 public void verbatim( boolean boxed ) 424 { 425 addEvent( "verbatim", new Object[] {new Boolean( boxed )} ); 426 } 427 428 @Override 429 public void verbatim_() 430 { 431 addEvent( "verbatim_" ); 432 } 433 434 @Override 435 public void definedTerm() 436 { 437 addEvent( "definedTerm" ); 438 } 439 440 @Override 441 public void definedTerm_() 442 { 443 addEvent( "definedTerm_" ); 444 } 445 446 @Override 447 public void figureCaption() 448 { 449 addEvent( "figureCaption" ); 450 } 451 452 @Override 453 public void figureCaption_() 454 { 455 addEvent( "figureCaption_" ); 456 } 457 458 @Override 459 public void tableCell() 460 { 461 addEvent( "tableCell" ); 462 } 463 464 @Override 465 public void tableCell( String width ) 466 { 467 addEvent( "tableCell", new Object[] {width} ); 468 } 469 470 @Override 471 public void tableCell_() 472 { 473 addEvent( "tableCell_" ); 474 } 475 476 @Override 477 public void tableHeaderCell() 478 { 479 addEvent( "tableHeaderCell" ); 480 } 481 482 @Override 483 public void tableHeaderCell( String width ) 484 { 485 addEvent( "tableHeaderCell", new Object[] {width} ); 486 } 487 488 @Override 489 public void tableHeaderCell_() 490 { 491 addEvent( "tableHeaderCell_" ); 492 } 493 494 @Override 495 public void tableCaption() 496 { 497 addEvent( "tableCaption" ); 498 } 499 500 @Override 501 public void tableCaption_() 502 { 503 addEvent( "tableCaption_" ); 504 } 505 506 @Override 507 public void figureGraphics( String name ) 508 { 509 addEvent( "figureGraphics", new Object[] {name} ); 510 } 511 512 @Override 513 public void horizontalRule() 514 { 515 addEvent( "horizontalRule" ); 516 } 517 518 @Override 519 public void pageBreak() 520 { 521 addEvent( "pageBreak" ); 522 } 523 524 @Override 525 public void anchor( String name ) 526 { 527 addEvent( "anchor", new Object[] {name} ); 528 } 529 530 @Override 531 public void anchor_() 532 { 533 addEvent( "anchor_" ); 534 } 535 536 @Override 537 public void link( String name ) 538 { 539 addEvent( "link", new Object[] {name} ); 540 } 541 542 @Override 543 public void link_() 544 { 545 addEvent( "link_" ); 546 } 547 548 @Override 549 public void italic() 550 { 551 addEvent( "italic" ); 552 } 553 554 @Override 555 public void italic_() 556 { 557 addEvent( "italic_" ); 558 } 559 560 @Override 561 public void bold() 562 { 563 addEvent( "bold" ); 564 } 565 566 @Override 567 public void bold_() 568 { 569 addEvent( "bold_" ); 570 } 571 572 @Override 573 public void monospaced() 574 { 575 addEvent( "monospaced" ); 576 } 577 578 @Override 579 public void monospaced_() 580 { 581 addEvent( "monospaced_" ); 582 } 583 584 @Override 585 public void lineBreak() 586 { 587 addEvent( "lineBreak" ); 588 } 589 590 @Override 591 public void nonBreakingSpace() 592 { 593 addEvent( "nonBreakingSpace" ); 594 } 595 596 @Override 597 public void text( String text ) 598 { 599 addEvent( "text", new Object[] {text} ); 600 } 601 602 @Override 603 public void rawText( String text ) 604 { 605 addEvent( "rawText", new Object[] {text} ); 606 } 607 608 @Override 609 public void comment( String comment ) 610 { 611 addEvent( "comment", new Object[] {comment} ); 612 } 613 614 @Override 615 public void flush() 616 { 617 addEvent( "flush" ); 618 } 619 620 @Override 621 public void close() 622 { 623 addEvent( "close" ); 624 } 625 626 @Override 627 public void head( SinkEventAttributes attributes ) 628 { 629 addEvent( "head", new Object[] {attributes} ); 630 } 631 632 @Override 633 public void title( SinkEventAttributes attributes ) 634 { 635 addEvent( "title", new Object[] {attributes} ); 636 } 637 638 @Override 639 public void author( SinkEventAttributes attributes ) 640 { 641 addEvent( "author", new Object[] {attributes} ); 642 } 643 644 @Override 645 public void date( SinkEventAttributes attributes ) 646 { 647 addEvent( "date", new Object[] {attributes} ); 648 } 649 650 @Override 651 public void body( SinkEventAttributes attributes ) 652 { 653 addEvent( "body", new Object[] {attributes} ); 654 } 655 656 @Override 657 public void section( int level, SinkEventAttributes attributes ) 658 { 659 addEvent( "section" + level, new Object[] {attributes} ); 660 } 661 662 @Override 663 public void section_( int level ) 664 { 665 addEvent( "section" + level + "_" ); 666 } 667 668 @Override 669 public void sectionTitle( int level, SinkEventAttributes attributes ) 670 { 671 addEvent( "sectionTitle" + level, new Object[] {attributes} ); 672 } 673 674 @Override 675 public void sectionTitle_( int level ) 676 { 677 678 addEvent( "sectionTitle" + level + "_" ); 679 } 680 681 @Override 682 public void list( SinkEventAttributes attributes ) 683 { 684 addEvent( "list", new Object[] {attributes} ); 685 } 686 687 @Override 688 public void listItem( SinkEventAttributes attributes ) 689 { 690 addEvent( "listItem", new Object[] {attributes} ); 691 } 692 693 @Override 694 public void numberedList( int numbering, SinkEventAttributes attributes ) 695 { 696 addEvent( "numberedList", new Object[] {new Integer( numbering ), attributes} ); 697 } 698 699 @Override 700 public void numberedListItem( SinkEventAttributes attributes ) 701 { 702 addEvent( "numberedListItem", new Object[] {attributes} ); 703 } 704 705 @Override 706 public void definitionList( SinkEventAttributes attributes ) 707 { 708 addEvent( "definitionList", new Object[] {attributes} ); 709 } 710 711 @Override 712 public void definitionListItem( SinkEventAttributes attributes ) 713 { 714 addEvent( "definitionListItem", new Object[] {attributes} ); 715 } 716 717 @Override 718 public void definition( SinkEventAttributes attributes ) 719 { 720 addEvent( "definition", new Object[] {attributes} ); 721 } 722 723 @Override 724 public void definedTerm( SinkEventAttributes attributes ) 725 { 726 addEvent( "definedTerm", new Object[] {attributes} ); 727 } 728 729 @Override 730 public void figure( SinkEventAttributes attributes ) 731 { 732 addEvent( "figure", new Object[] {attributes} ); 733 } 734 735 @Override 736 public void figureCaption( SinkEventAttributes attributes ) 737 { 738 addEvent( "figureCaption", new Object[] {attributes} ); 739 } 740 741 @Override 742 public void figureGraphics( String src, SinkEventAttributes attributes ) 743 { 744 addEvent( "figureGraphics", new Object[] {src, attributes} ); 745 } 746 747 @Override 748 public void table( SinkEventAttributes attributes ) 749 { 750 addEvent( "table", new Object[] {attributes} ); 751 } 752 753 @Override 754 public void tableRow( SinkEventAttributes attributes ) 755 { 756 addEvent( "tableRow", new Object[] {attributes} ); 757 } 758 759 @Override 760 public void tableCell( SinkEventAttributes attributes ) 761 { 762 addEvent( "tableCell", new Object[] {attributes} ); 763 } 764 765 @Override 766 public void tableHeaderCell( SinkEventAttributes attributes ) 767 { 768 addEvent( "tableHeaderCell", new Object[] {attributes} ); 769 } 770 771 @Override 772 public void tableCaption( SinkEventAttributes attributes ) 773 { 774 addEvent( "tableCaption", new Object[] {attributes} ); 775 } 776 777 @Override 778 public void paragraph( SinkEventAttributes attributes ) 779 { 780 addEvent( "paragraph", new Object[] {attributes} ); 781 } 782 783 @Override 784 public void verbatim( SinkEventAttributes attributes ) 785 { 786 addEvent( "verbatim", new Object[] {attributes} ); 787 } 788 789 @Override 790 public void horizontalRule( SinkEventAttributes attributes ) 791 { 792 addEvent( "horizontalRule", new Object[] {attributes} ); 793 } 794 795 @Override 796 public void anchor( String name, SinkEventAttributes attributes ) 797 { 798 addEvent( "anchor", new Object[] {name, attributes} ); 799 } 800 801 @Override 802 public void link( String name, SinkEventAttributes attributes ) 803 { 804 addEvent( "link", new Object[] {name, attributes} ); 805 } 806 807 @Override 808 public void lineBreak( SinkEventAttributes attributes ) 809 { 810 addEvent( "lineBreak", new Object[] {attributes} ); 811 } 812 813 @Override 814 public void text( String text, SinkEventAttributes attributes ) 815 { 816 addEvent( "text", new Object[] {text, attributes} ); 817 } 818 819 @Override 820 public void unknown( String name, Object[] requiredParams, SinkEventAttributes attributes ) 821 { 822 addEvent( "unknown", new Object[] {name, requiredParams, attributes} ); 823 } 824 825 // 826 // private 827 // 828 829 /** 830 * Adds a no-arg event to the list of events. 831 * 832 * @param string the name of the event. 833 */ 834 private void addEvent( String string ) 835 { 836 addEvent( string, null ); 837 } 838 839 /** 840 * Adds an event to the list of events. 841 * 842 * @param string the name of the event. 843 * @param arguments The array of arguments to the sink method. 844 */ 845 private void addEvent( String string, Object[] arguments ) 846 { 847 events.add( new SinkEventElement( string, arguments ) ); 848 } 849 850}