1
2
3
4
5
6 package org.codehaus.mojo.taglist.output.io.xpp3;
7
8
9
10
11
12 import java.io.OutputStream;
13 import java.io.Writer;
14 import java.util.Iterator;
15 import org.codehaus.mojo.taglist.output.TagListXMLComment;
16 import org.codehaus.mojo.taglist.output.TagListXMLFile;
17 import org.codehaus.mojo.taglist.output.TagListXMLReport;
18 import org.codehaus.mojo.taglist.output.TagListXMLTag;
19 import org.codehaus.plexus.util.xml.pull.MXSerializer;
20 import org.codehaus.plexus.util.xml.pull.XmlSerializer;
21
22
23
24
25
26
27 @SuppressWarnings( "all" )
28 public class TaglistOutputXpp3Writer
29 {
30
31
32
33
34
35
36
37
38 private static final String NAMESPACE = null;
39
40
41
42
43 private String fileComment = null;
44
45
46
47
48
49
50
51
52
53
54
55 public void setFileComment( String fileComment )
56 {
57 this.fileComment = fileComment;
58 }
59
60
61
62
63
64
65
66
67 public void write( Writer writer, TagListXMLReport tagListXMLReport )
68 throws java.io.IOException
69 {
70 XmlSerializer serializer = new MXSerializer();
71 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
72 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
73 serializer.setOutput( writer );
74 serializer.startDocument( tagListXMLReport.getModelEncoding(), null );
75 writeTagListXMLReport( tagListXMLReport, "report", serializer );
76 serializer.endDocument();
77 }
78
79
80
81
82
83
84
85
86 public void write( OutputStream stream, TagListXMLReport tagListXMLReport )
87 throws java.io.IOException
88 {
89 XmlSerializer serializer = new MXSerializer();
90 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
91 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
92 serializer.setOutput( stream, tagListXMLReport.getModelEncoding() );
93 serializer.startDocument( tagListXMLReport.getModelEncoding(), null );
94 writeTagListXMLReport( tagListXMLReport, "report", serializer );
95 serializer.endDocument();
96 }
97
98
99
100
101
102
103
104
105
106 private void writeTagListXMLComment( TagListXMLComment tagListXMLComment, String tagName, XmlSerializer serializer )
107 throws java.io.IOException
108 {
109 serializer.startTag( NAMESPACE, tagName );
110 if ( tagListXMLComment.getLineNumber() != null )
111 {
112 serializer.startTag( NAMESPACE, "lineNumber" ).text( tagListXMLComment.getLineNumber() ).endTag( NAMESPACE, "lineNumber" );
113 }
114 if ( tagListXMLComment.getComment() != null )
115 {
116 serializer.startTag( NAMESPACE, "comment" ).text( tagListXMLComment.getComment() ).endTag( NAMESPACE, "comment" );
117 }
118 serializer.endTag( NAMESPACE, tagName );
119 }
120
121
122
123
124
125
126
127
128
129 private void writeTagListXMLFile( TagListXMLFile tagListXMLFile, String tagName, XmlSerializer serializer )
130 throws java.io.IOException
131 {
132 serializer.startTag( NAMESPACE, tagName );
133 if ( tagListXMLFile.getName() != null )
134 {
135 serializer.attribute( NAMESPACE, "name", tagListXMLFile.getName() );
136 }
137 if ( tagListXMLFile.getCount() != null )
138 {
139 serializer.attribute( NAMESPACE, "count", tagListXMLFile.getCount() );
140 }
141 if ( ( tagListXMLFile.getComments() != null ) && ( tagListXMLFile.getComments().size() > 0 ) )
142 {
143 serializer.startTag( NAMESPACE, "comments" );
144 for ( Iterator iter = tagListXMLFile.getComments().iterator(); iter.hasNext(); )
145 {
146 TagListXMLComment o = (TagListXMLComment) iter.next();
147 writeTagListXMLComment( o, "comment", serializer );
148 }
149 serializer.endTag( NAMESPACE, "comments" );
150 }
151 serializer.endTag( NAMESPACE, tagName );
152 }
153
154
155
156
157
158
159
160
161
162 private void writeTagListXMLReport( TagListXMLReport tagListXMLReport, String tagName, XmlSerializer serializer )
163 throws java.io.IOException
164 {
165 if ( this.fileComment != null )
166 {
167 serializer.comment(this.fileComment);
168 }
169 serializer.setPrefix( "", "https://www.mojohaus.org/TAGLISTOUTPUT/1.0.0" );
170 serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
171 serializer.startTag( NAMESPACE, tagName );
172 serializer.attribute( "", "xsi:schemaLocation", "https://www.mojohaus.org/TAGLISTOUTPUT/1.0.0 https://www.mojohaus.org/taglist-maven-plugin/xsd/taglistOutput-1.0.0.xsd" );
173 if ( ( tagListXMLReport.getTags() != null ) && ( tagListXMLReport.getTags().size() > 0 ) )
174 {
175 serializer.startTag( NAMESPACE, "tags" );
176 for ( Iterator iter = tagListXMLReport.getTags().iterator(); iter.hasNext(); )
177 {
178 TagListXMLTag o = (TagListXMLTag) iter.next();
179 writeTagListXMLTag( o, "tag", serializer );
180 }
181 serializer.endTag( NAMESPACE, "tags" );
182 }
183 serializer.endTag( NAMESPACE, tagName );
184 }
185
186
187
188
189
190
191
192
193
194 private void writeTagListXMLTag( TagListXMLTag tagListXMLTag, String tagName, XmlSerializer serializer )
195 throws java.io.IOException
196 {
197 serializer.startTag( NAMESPACE, tagName );
198 if ( tagListXMLTag.getName() != null )
199 {
200 serializer.attribute( NAMESPACE, "name", tagListXMLTag.getName() );
201 }
202 if ( tagListXMLTag.getCount() != null )
203 {
204 serializer.attribute( NAMESPACE, "count", tagListXMLTag.getCount() );
205 }
206 if ( ( tagListXMLTag.getFiles() != null ) && ( tagListXMLTag.getFiles().size() > 0 ) )
207 {
208 serializer.startTag( NAMESPACE, "files" );
209 for ( Iterator iter = tagListXMLTag.getFiles().iterator(); iter.hasNext(); )
210 {
211 TagListXMLFile o = (TagListXMLFile) iter.next();
212 writeTagListXMLFile( o, "file", serializer );
213 }
214 serializer.endTag( NAMESPACE, "files" );
215 }
216 serializer.endTag( NAMESPACE, tagName );
217 }
218
219 }