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