View Javadoc
1   package org.apache.maven.doxia.sink.impl;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import java.util.LinkedList;
23  import java.util.List;
24  
25  import org.apache.maven.doxia.sink.SinkEventAttributes;
26  import org.apache.maven.doxia.sink.impl.AbstractSink;
27  
28  /**
29   * This sink is used for testing purposes in order to check wether
30   * the input of some parser is well-formed.
31   *
32   * @author ltheussl
33   * @since 1.1
34   */
35  public class SinkEventTestingSink
36      extends AbstractSink
37  {
38      /** The list of sink events. */
39      private final List<SinkEventElement> events = new LinkedList<>();
40  
41      /**
42       * Return the collected list of SinkEventElements.
43       *
44       * @return the collected list of SinkEventElements.
45       */
46      public List<SinkEventElement> getEventList()
47      {
48          return this.events;
49      }
50  
51      /** Clears the list of sink events. */
52      public void reset()
53      {
54          this.events.clear();
55      }
56  
57        //
58       // sink methods
59      //
60  
61      @Override
62      public void head()
63      {
64          addEvent( "head" );
65      }
66  
67      @Override
68      public void head_()
69      {
70          addEvent( "head_" );
71      }
72  
73      @Override
74      public void body()
75      {
76          addEvent( "body" );
77      }
78  
79      @Override
80      public void body_()
81      {
82          addEvent( "body_" );
83      }
84  
85      @Override
86      public void article()
87      {
88          addEvent( "article" );
89      }
90  
91      @Override
92      public void article_()
93      {
94          addEvent( "article_" );
95      }
96  
97      @Override
98      public void navigation()
99      {
100         addEvent( "navigation" );
101     }
102 
103     @Override
104     public void navigation_()
105     {
106         addEvent( "navigation_" );
107     }
108 
109     @Override
110     public void sidebar()
111     {
112         addEvent( "sidebar" );
113     }
114 
115     @Override
116     public void sidebar_()
117     {
118         addEvent( "sidebar_" );
119     }
120 
121     @Override
122     public void section1()
123     {
124         addEvent( "section1" );
125     }
126 
127     @Override
128     public void section1_()
129     {
130         addEvent( "section1_" );
131     }
132 
133     @Override
134     public void section2()
135     {
136         addEvent( "section2" );
137     }
138 
139     @Override
140     public void section2_()
141     {
142         addEvent( "section2_" );
143     }
144 
145     @Override
146     public void section3()
147     {
148         addEvent( "section3" );
149     }
150 
151     @Override
152     public void section3_()
153     {
154         addEvent( "section3_" );
155     }
156 
157     @Override
158     public void section4()
159     {
160         addEvent( "section4" );
161     }
162 
163     @Override
164     public void section4_()
165     {
166         addEvent( "section4_" );
167     }
168 
169     @Override
170     public void section5()
171     {
172         addEvent( "section5" );
173     }
174 
175     @Override
176     public void section5_()
177     {
178         addEvent( "section5_" );
179     }
180 
181     @Override
182     public void section6()
183     {
184         addEvent( "section6" );
185     }
186 
187     @Override
188     public void section6_()
189     {
190         addEvent( "section6_" );
191     }
192 
193     @Override
194     public void list()
195     {
196         addEvent( "list" );
197     }
198 
199     @Override
200     public void list_()
201     {
202         addEvent( "list_" );
203     }
204 
205     @Override
206     public void listItem()
207     {
208         addEvent( "listItem" );
209     }
210 
211     @Override
212     public void listItem_()
213     {
214         addEvent( "listItem_" );
215     }
216 
217     @Override
218     public void numberedList( int numbering )
219     {
220         addEvent( "numberedList", new Object[] { numbering } );
221     }
222 
223     @Override
224     public void numberedList_()
225     {
226         addEvent( "numberedList_" );
227     }
228 
229     @Override
230     public void numberedListItem()
231     {
232         addEvent( "numberedListItem" );
233     }
234 
235     @Override
236     public void numberedListItem_()
237     {
238         addEvent( "numberedListItem_" );
239     }
240 
241     @Override
242     public void definitionList()
243     {
244         addEvent( "definitionList" );
245     }
246 
247     @Override
248     public void definitionList_()
249     {
250         addEvent( "definitionList_" );
251     }
252 
253     @Override
254     public void definitionListItem()
255     {
256         addEvent( "definitionListItem" );
257     }
258 
259     @Override
260     public void definitionListItem_()
261     {
262         addEvent( "definitionListItem_" );
263     }
264 
265     @Override
266     public void definition()
267     {
268         addEvent( "definition" );
269     }
270 
271     @Override
272     public void definition_()
273     {
274         addEvent( "definition_" );
275     }
276 
277     @Override
278     public void figure()
279     {
280         addEvent( "figure" );
281     }
282 
283     @Override
284     public void figure_()
285     {
286         addEvent( "figure_" );
287     }
288 
289     @Override
290     public void table()
291     {
292         addEvent( "table" );
293     }
294 
295     @Override
296     public void table_()
297     {
298         addEvent( "table_" );
299     }
300 
301     @Override
302     public void tableRows( int[] justification, boolean grid )
303     {
304         addEvent( "tableRows", new Object[] { justification, grid } );
305     }
306 
307     @Override
308     public void tableRows_()
309     {
310         addEvent( "tableRows_" );
311     }
312 
313     @Override
314     public void tableRow()
315     {
316         addEvent( "tableRow" );
317     }
318 
319     @Override
320     public void tableRow_()
321     {
322         addEvent( "tableRow_" );
323     }
324 
325     @Override
326     public void title()
327     {
328         addEvent( "title" );
329     }
330 
331     @Override
332     public void title_()
333     {
334         addEvent( "title_" );
335     }
336 
337     @Override
338     public void author()
339     {
340         addEvent( "author" );
341     }
342 
343     @Override
344     public void author_()
345     {
346         addEvent( "author_" );
347     }
348 
349     @Override
350     public void date()
351     {
352         addEvent( "date" );
353     }
354 
355     @Override
356     public void date_()
357     {
358         addEvent( "date_" );
359     }
360 
361     @Override
362     public void sectionTitle()
363     {
364         addEvent( "sectionTitle" );
365     }
366 
367     @Override
368     public void sectionTitle_()
369     {
370         addEvent( "sectionTitle_" );
371     }
372 
373     @Override
374     public void sectionTitle1()
375     {
376         addEvent( "sectionTitle1" );
377     }
378 
379     @Override
380     public void sectionTitle1_()
381     {
382         addEvent( "sectionTitle1_" );
383     }
384 
385     @Override
386     public void sectionTitle2()
387     {
388         addEvent( "sectionTitle2" );
389     }
390 
391     @Override
392     public void sectionTitle2_()
393     {
394         addEvent( "sectionTitle2_" );
395     }
396 
397     @Override
398     public void sectionTitle3()
399     {
400         addEvent( "sectionTitle3" );
401     }
402 
403     @Override
404     public void sectionTitle3_()
405     {
406         addEvent( "sectionTitle3_" );
407     }
408 
409     @Override
410     public void sectionTitle4()
411     {
412         addEvent( "sectionTitle4" );
413     }
414 
415     @Override
416     public void sectionTitle4_()
417     {
418         addEvent( "sectionTitle4_" );
419     }
420 
421     @Override
422     public void sectionTitle5()
423     {
424         addEvent( "sectionTitle5" );
425     }
426 
427     @Override
428     public void sectionTitle5_()
429     {
430         addEvent( "sectionTitle5_" );
431     }
432 
433     @Override
434     public void sectionTitle6()
435     {
436         addEvent( "sectionTitle6" );
437     }
438 
439     @Override
440     public void sectionTitle6_()
441     {
442         addEvent( "sectionTitle6_" );
443     }
444 
445     @Override
446     public void header()
447     {
448         addEvent( "header" );
449     }
450 
451     @Override
452     public void header_()
453     {
454         addEvent( "header_" );
455     }
456 
457     @Override
458     public void content()
459     {
460         addEvent( "content" );
461     }
462 
463     @Override
464     public void content_()
465     {
466         addEvent( "content_" );
467     }
468 
469     @Override
470     public void footer()
471     {
472         addEvent( "footer" );
473     }
474 
475     @Override
476     public void footer_()
477     {
478         addEvent( "footer_" );
479     }
480 
481     @Override
482     public void paragraph()
483     {
484         addEvent( "paragraph" );
485     }
486 
487     @Override
488     public void paragraph_()
489     {
490         addEvent( "paragraph_" );
491     }
492 
493     @Override
494     public void data( String value )
495     {
496         addEvent( "data", new Object[] {value} );
497     }
498 
499     @Override
500     public void data_()
501     {
502         addEvent( "data_" );
503     }
504 
505     @Override
506     public void time( String datetime )
507     {
508         addEvent( "time", new Object[] {datetime} );
509     }
510 
511     @Override
512     public void time_()
513     {
514         addEvent( "time_" );
515     }
516 
517     @Override
518     public void address()
519     {
520         addEvent( "address" );
521     }
522 
523     @Override
524     public void address_()
525     {
526         addEvent( "address_" );
527     }
528 
529     @Override
530     public void blockquote()
531     {
532         addEvent( "blockquote" );
533     }
534 
535     @Override
536     public void blockquote_()
537     {
538         addEvent( "blockquote_" );
539     }
540 
541     @Override
542     public void division()
543     {
544         addEvent( "division" );
545     }
546 
547     @Override
548     public void division_()
549     {
550         addEvent( "division_" );
551     }
552 
553     @Override
554     public void verbatim( boolean boxed )
555     {
556         addEvent( "verbatim", new Object[] { boxed } );
557     }
558 
559     @Override
560     public void verbatim_()
561     {
562         addEvent( "verbatim_" );
563     }
564 
565     @Override
566     public void definedTerm()
567     {
568         addEvent( "definedTerm" );
569     }
570 
571     @Override
572     public void definedTerm_()
573     {
574         addEvent( "definedTerm_" );
575     }
576 
577     @Override
578     public void figureCaption()
579     {
580         addEvent( "figureCaption" );
581     }
582 
583     @Override
584     public void figureCaption_()
585     {
586         addEvent( "figureCaption_" );
587     }
588 
589     @Override
590     public void tableCell()
591     {
592         addEvent( "tableCell" );
593     }
594 
595     @Override
596     public void tableCell( String width )
597     {
598         addEvent( "tableCell", new Object[] {width} );
599     }
600 
601     @Override
602     public void tableCell_()
603     {
604         addEvent( "tableCell_" );
605     }
606 
607     @Override
608     public void tableHeaderCell()
609     {
610         addEvent( "tableHeaderCell" );
611     }
612 
613     @Override
614     public void tableHeaderCell( String width )
615     {
616         addEvent( "tableHeaderCell", new Object[] {width} );
617     }
618 
619     @Override
620     public void tableHeaderCell_()
621     {
622         addEvent( "tableHeaderCell_" );
623     }
624 
625     @Override
626     public void tableCaption()
627     {
628         addEvent( "tableCaption" );
629     }
630 
631     @Override
632     public void tableCaption_()
633     {
634         addEvent( "tableCaption_" );
635     }
636 
637     @Override
638     public void figureGraphics( String name )
639     {
640         addEvent( "figureGraphics", new Object[] {name} );
641     }
642 
643     @Override
644     public void horizontalRule()
645     {
646         addEvent( "horizontalRule" );
647     }
648 
649     @Override
650     public void pageBreak()
651     {
652         addEvent( "pageBreak" );
653     }
654 
655     @Override
656     public void anchor( String name )
657     {
658         addEvent( "anchor", new Object[] {name} );
659     }
660 
661     @Override
662     public void anchor_()
663     {
664         addEvent( "anchor_" );
665     }
666 
667     @Override
668     public void link( String name )
669     {
670         addEvent( "link", new Object[] {name} );
671     }
672 
673     @Override
674     public void link_()
675     {
676         addEvent( "link_" );
677     }
678 
679     @Override
680     public void inline()
681     {
682         addEvent( "inline" );
683     }
684 
685     @Override
686     public void inline_()
687     {
688         addEvent( "inline_" );
689     }
690 
691     @Override
692     public void italic()
693     {
694         addEvent( "italic" );
695     }
696 
697     @Override
698     public void italic_()
699     {
700         addEvent( "italic_" );
701     }
702 
703     @Override
704     public void bold()
705     {
706         addEvent( "bold" );
707     }
708 
709     @Override
710     public void bold_()
711     {
712         addEvent( "bold_" );
713     }
714 
715     @Override
716     public void monospaced()
717     {
718         addEvent( "monospaced" );
719     }
720 
721     @Override
722     public void monospaced_()
723     {
724         addEvent( "monospaced_" );
725     }
726 
727     @Override
728     public void lineBreak()
729     {
730         addEvent( "lineBreak" );
731     }
732 
733     @Override
734     public void lineBreakOpportunity()
735     {
736         addEvent( "lineBreakOpportunity" );
737     }
738 
739     @Override
740     public void nonBreakingSpace()
741     {
742         addEvent( "nonBreakingSpace" );
743     }
744 
745     @Override
746     public void text( String text )
747     {
748         addEvent( "text", new Object[] {text} );
749     }
750 
751     @Override
752     public void rawText( String text )
753     {
754         addEvent( "rawText", new Object[] {text} );
755     }
756 
757     @Override
758     public void comment( String comment )
759     {
760         addEvent( "comment", new Object[] {comment} );
761     }
762 
763     @Override
764     public void flush()
765     {
766         addEvent( "flush" );
767     }
768 
769     @Override
770     public void close()
771     {
772         addEvent( "close" );
773     }
774 
775     @Override
776     public void head( SinkEventAttributes attributes )
777     {
778         addEvent( "head", new Object[] {attributes} );
779     }
780 
781     @Override
782     public void title( SinkEventAttributes attributes )
783     {
784         addEvent( "title", new Object[] {attributes} );
785     }
786 
787     @Override
788     public void author( SinkEventAttributes attributes )
789     {
790         addEvent( "author", new Object[] {attributes} );
791     }
792 
793     @Override
794     public void date( SinkEventAttributes attributes )
795     {
796         addEvent( "date", new Object[] {attributes} );
797     }
798 
799     @Override
800     public void body( SinkEventAttributes attributes )
801     {
802         addEvent( "body", new Object[] {attributes} );
803     }
804 
805     @Override
806     public void article( SinkEventAttributes attributes )
807     {
808         addEvent( "article", new Object[] {attributes} );
809     }
810 
811     @Override
812     public void navigation( SinkEventAttributes attributes )
813     {
814         addEvent( "navigation", new Object[] {attributes} );
815     }
816 
817     @Override
818     public void sidebar( SinkEventAttributes attributes )
819     {
820         addEvent( "sidebar", new Object[] {attributes} );
821     }
822 
823     @Override
824     public void section( int level, SinkEventAttributes attributes )
825     {
826         addEvent( "section" + level, new Object[] {attributes} );
827     }
828 
829     @Override
830     public void section_( int level )
831     {
832         addEvent( "section" + level + "_" );
833     }
834 
835     @Override
836     public void sectionTitle( int level, SinkEventAttributes attributes )
837     {
838         addEvent( "sectionTitle" + level, new Object[] {attributes} );
839     }
840 
841     @Override
842     public void sectionTitle_( int level )
843     {
844 
845         addEvent( "sectionTitle" + level + "_" );
846     }
847 
848     @Override
849     public void header( SinkEventAttributes attributes )
850     {
851         addEvent( "header", new Object[] {attributes} );
852     }
853 
854     @Override
855     public void content( SinkEventAttributes attributes )
856     {
857         addEvent( "content", new Object[] {attributes} );
858     }
859 
860     @Override
861     public void footer( SinkEventAttributes attributes )
862     {
863         addEvent( "footer", new Object[] {attributes} );
864     }
865 
866     @Override
867     public void list( SinkEventAttributes attributes )
868     {
869         addEvent( "list", new Object[] {attributes} );
870     }
871 
872     @Override
873     public void listItem( SinkEventAttributes attributes )
874     {
875         addEvent( "listItem", new Object[] {attributes} );
876     }
877 
878     @Override
879     public void numberedList( int numbering, SinkEventAttributes attributes )
880     {
881         addEvent( "numberedList", new Object[] { numbering, attributes } );
882     }
883 
884     @Override
885     public void numberedListItem( SinkEventAttributes attributes )
886     {
887         addEvent( "numberedListItem", new Object[] {attributes} );
888     }
889 
890     @Override
891     public void definitionList( SinkEventAttributes attributes )
892     {
893         addEvent( "definitionList", new Object[] {attributes} );
894     }
895 
896     @Override
897     public void definitionListItem( SinkEventAttributes attributes )
898     {
899         addEvent( "definitionListItem", new Object[] {attributes} );
900     }
901 
902     @Override
903     public void definition( SinkEventAttributes attributes )
904     {
905         addEvent( "definition", new Object[] {attributes} );
906     }
907 
908     @Override
909     public void definedTerm( SinkEventAttributes attributes )
910     {
911         addEvent( "definedTerm", new Object[] {attributes} );
912     }
913 
914     @Override
915     public void figure( SinkEventAttributes attributes )
916     {
917         addEvent( "figure", new Object[] {attributes} );
918     }
919 
920     @Override
921     public void figureCaption( SinkEventAttributes attributes )
922     {
923         addEvent( "figureCaption", new Object[] {attributes} );
924     }
925 
926     @Override
927     public void figureGraphics( String src, SinkEventAttributes attributes )
928     {
929         addEvent( "figureGraphics", new Object[] {src, attributes} );
930     }
931 
932     @Override
933     public void table( SinkEventAttributes attributes )
934     {
935         addEvent( "table", new Object[] {attributes} );
936     }
937 
938     @Override
939     public void tableRow( SinkEventAttributes attributes )
940     {
941         addEvent( "tableRow", new Object[] {attributes} );
942     }
943 
944     @Override
945     public void tableCell( SinkEventAttributes attributes )
946     {
947         addEvent( "tableCell", new Object[] {attributes} );
948     }
949 
950     @Override
951     public void tableHeaderCell( SinkEventAttributes attributes )
952     {
953         addEvent( "tableHeaderCell", new Object[] {attributes} );
954     }
955 
956     @Override
957     public void tableCaption( SinkEventAttributes attributes )
958     {
959         addEvent( "tableCaption", new Object[] {attributes} );
960     }
961 
962     @Override
963     public void paragraph( SinkEventAttributes attributes )
964     {
965         addEvent( "paragraph", new Object[] {attributes} );
966     }
967 
968     @Override
969     public void data( String value, SinkEventAttributes attributes )
970     {
971         addEvent( "data", new Object[] {value, attributes} );
972     }
973 
974     @Override
975     public void time( String datetime, SinkEventAttributes attributes )
976     {
977         addEvent( "time", new Object[] {datetime, attributes} );
978     }
979 
980     @Override
981     public void address( SinkEventAttributes attributes )
982     {
983         addEvent( "address", new Object[] {attributes} );
984     }
985 
986     @Override
987     public void blockquote( SinkEventAttributes attributes )
988     {
989         addEvent( "blockquote", new Object[] {attributes} );
990     }
991 
992     @Override
993     public void division( SinkEventAttributes attributes )
994     {
995         addEvent( "division", new Object[] {attributes} );
996     }
997 
998     @Override
999     public void verbatim( SinkEventAttributes attributes )
1000     {
1001         addEvent( "verbatim", new Object[] {attributes} );
1002     }
1003 
1004     @Override
1005     public void horizontalRule( SinkEventAttributes attributes )
1006     {
1007         addEvent( "horizontalRule", new Object[] {attributes} );
1008     }
1009 
1010     @Override
1011     public void anchor( String name, SinkEventAttributes attributes )
1012     {
1013         addEvent( "anchor", new Object[] {name, attributes} );
1014     }
1015 
1016     @Override
1017     public void link( String name, SinkEventAttributes attributes )
1018     {
1019         addEvent( "link", new Object[] {name, attributes} );
1020     }
1021 
1022     @Override
1023     public void inline( SinkEventAttributes attributes )
1024     {
1025         addEvent( "inline", new Object[] {attributes} );
1026     }
1027 
1028     @Override
1029     public void lineBreak( SinkEventAttributes attributes )
1030     {
1031         addEvent( "lineBreak", new Object[] {attributes} );
1032     }
1033 
1034     @Override
1035     public void lineBreakOpportunity( SinkEventAttributes attributes )
1036     {
1037         addEvent( "lineBreakOpportunity", new Object[] {attributes} );
1038     }
1039 
1040     @Override
1041     public void text( String text, SinkEventAttributes attributes )
1042     {
1043         addEvent( "text", new Object[] {text, attributes} );
1044     }
1045 
1046     @Override
1047     public void unknown( String name, Object[] requiredParams, SinkEventAttributes attributes )
1048     {
1049         addEvent( "unknown", new Object[] {name, requiredParams, attributes} );
1050     }
1051 
1052       //
1053      // private
1054     //
1055 
1056     /**
1057      * Adds a no-arg event to the list of events.
1058      *
1059      * @param string the name of the event.
1060      */
1061     private void addEvent( String string )
1062     {
1063         addEvent( string, null );
1064     }
1065 
1066     /**
1067      * Adds an event to the list of events.
1068      *
1069      * @param string the name of the event.
1070      * @param arguments The array of arguments to the sink method.
1071      */
1072     private void addEvent( String string, Object[] arguments )
1073     {
1074         events.add( new SinkEventElement( string, arguments ) );
1075     }
1076 
1077 }