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