1
2
3
4
5
6 package org.apache.maven.plugins.javadoc.options.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.apache.maven.plugins.javadoc.options.BootclasspathArtifact;
16 import org.apache.maven.plugins.javadoc.options.DocletArtifact;
17 import org.apache.maven.plugins.javadoc.options.Group;
18 import org.apache.maven.plugins.javadoc.options.JavadocOptions;
19 import org.apache.maven.plugins.javadoc.options.JavadocPathArtifact;
20 import org.apache.maven.plugins.javadoc.options.OfflineLink;
21 import org.apache.maven.plugins.javadoc.options.ResourcesArtifact;
22 import org.apache.maven.plugins.javadoc.options.Tag;
23 import org.apache.maven.plugins.javadoc.options.Taglet;
24 import org.apache.maven.plugins.javadoc.options.TagletArtifact;
25 import org.codehaus.plexus.util.xml.pull.MXSerializer;
26 import org.codehaus.plexus.util.xml.pull.XmlSerializer;
27
28
29
30
31
32
33 @SuppressWarnings( "all" )
34 public class JavadocOptionsXpp3Writer
35 {
36
37
38
39
40
41
42
43
44 private static final String NAMESPACE = null;
45
46
47
48
49 private String fileComment = null;
50
51
52
53
54
55
56
57
58
59
60
61 public void setFileComment( String fileComment )
62 {
63 this.fileComment = fileComment;
64 }
65
66
67
68
69
70
71
72
73 public void write( Writer writer, JavadocOptions javadocOptions )
74 throws java.io.IOException
75 {
76 XmlSerializer serializer = new MXSerializer();
77 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
78 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
79 serializer.setOutput( writer );
80 serializer.startDocument( javadocOptions.getModelEncoding(), null );
81 writeJavadocOptions( javadocOptions, "javadocOptions", serializer );
82 serializer.endDocument();
83 }
84
85
86
87
88
89
90
91
92 public void write( OutputStream stream, JavadocOptions javadocOptions )
93 throws java.io.IOException
94 {
95 XmlSerializer serializer = new MXSerializer();
96 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
97 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
98 serializer.setOutput( stream, javadocOptions.getModelEncoding() );
99 serializer.startDocument( javadocOptions.getModelEncoding(), null );
100 writeJavadocOptions( javadocOptions, "javadocOptions", serializer );
101 serializer.endDocument();
102 }
103
104
105
106
107
108
109
110
111
112 private void writeBootclasspathArtifact( BootclasspathArtifact bootclasspathArtifact, String tagName, XmlSerializer serializer )
113 throws java.io.IOException
114 {
115 serializer.startTag( NAMESPACE, tagName );
116 if ( bootclasspathArtifact.getGroupId() != null )
117 {
118 serializer.startTag( NAMESPACE, "groupId" ).text( bootclasspathArtifact.getGroupId() ).endTag( NAMESPACE, "groupId" );
119 }
120 if ( bootclasspathArtifact.getArtifactId() != null )
121 {
122 serializer.startTag( NAMESPACE, "artifactId" ).text( bootclasspathArtifact.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
123 }
124 if ( bootclasspathArtifact.getVersion() != null )
125 {
126 serializer.startTag( NAMESPACE, "version" ).text( bootclasspathArtifact.getVersion() ).endTag( NAMESPACE, "version" );
127 }
128 serializer.endTag( NAMESPACE, tagName );
129 }
130
131
132
133
134
135
136
137
138
139 private void writeDocletArtifact( DocletArtifact docletArtifact, String tagName, XmlSerializer serializer )
140 throws java.io.IOException
141 {
142 serializer.startTag( NAMESPACE, tagName );
143 if ( docletArtifact.getGroupId() != null )
144 {
145 serializer.startTag( NAMESPACE, "groupId" ).text( docletArtifact.getGroupId() ).endTag( NAMESPACE, "groupId" );
146 }
147 if ( docletArtifact.getArtifactId() != null )
148 {
149 serializer.startTag( NAMESPACE, "artifactId" ).text( docletArtifact.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
150 }
151 if ( docletArtifact.getVersion() != null )
152 {
153 serializer.startTag( NAMESPACE, "version" ).text( docletArtifact.getVersion() ).endTag( NAMESPACE, "version" );
154 }
155 serializer.endTag( NAMESPACE, tagName );
156 }
157
158
159
160
161
162
163
164
165
166 private void writeGroup( Group group, String tagName, XmlSerializer serializer )
167 throws java.io.IOException
168 {
169 serializer.startTag( NAMESPACE, tagName );
170 if ( group.getTitle() != null )
171 {
172 serializer.startTag( NAMESPACE, "title" ).text( group.getTitle() ).endTag( NAMESPACE, "title" );
173 }
174 if ( group.getPackages() != null )
175 {
176 serializer.startTag( NAMESPACE, "packages" ).text( group.getPackages() ).endTag( NAMESPACE, "packages" );
177 }
178 serializer.endTag( NAMESPACE, tagName );
179 }
180
181
182
183
184
185
186
187
188
189 private void writeJavadocOptions( JavadocOptions javadocOptions, String tagName, XmlSerializer serializer )
190 throws java.io.IOException
191 {
192 serializer.startTag( NAMESPACE, tagName );
193 if ( ( javadocOptions.getGroups() != null ) && ( javadocOptions.getGroups().size() > 0 ) )
194 {
195 serializer.startTag( NAMESPACE, "groups" );
196 for ( Iterator iter = javadocOptions.getGroups().iterator(); iter.hasNext(); )
197 {
198 Grouphref="../../../../../../../../org/apache/maven/plugins/javadoc/options/Group.html#Group">Group o = (Group) iter.next();
199 writeGroup( o, "group", serializer );
200 }
201 serializer.endTag( NAMESPACE, "groups" );
202 }
203 if ( ( javadocOptions.getTags() != null ) && ( javadocOptions.getTags().size() > 0 ) )
204 {
205 serializer.startTag( NAMESPACE, "tags" );
206 for ( Iterator iter = javadocOptions.getTags().iterator(); iter.hasNext(); )
207 {
208 Tag" href="../../../../../../../../org/apache/maven/plugins/javadoc/options/Tag.html#Tag">Tag o = (Tag) iter.next();
209 writeTag( o, "tag", serializer );
210 }
211 serializer.endTag( NAMESPACE, "tags" );
212 }
213 if ( ( javadocOptions.getDocletArtifacts() != null ) && ( javadocOptions.getDocletArtifacts().size() > 0 ) )
214 {
215 serializer.startTag( NAMESPACE, "docletArtifacts" );
216 for ( Iterator iter = javadocOptions.getDocletArtifacts().iterator(); iter.hasNext(); )
217 {
218 DocletArtifact../../../../../../../org/apache/maven/plugins/javadoc/options/DocletArtifact.html#DocletArtifact">DocletArtifact o = (DocletArtifact) iter.next();
219 writeDocletArtifact( o, "docletArtifact", serializer );
220 }
221 serializer.endTag( NAMESPACE, "docletArtifacts" );
222 }
223 if ( ( javadocOptions.getTaglets() != null ) && ( javadocOptions.getTaglets().size() > 0 ) )
224 {
225 serializer.startTag( NAMESPACE, "taglets" );
226 for ( Iterator iter = javadocOptions.getTaglets().iterator(); iter.hasNext(); )
227 {
228 Tagletref="../../../../../../../../org/apache/maven/plugins/javadoc/options/Taglet.html#Taglet">Taglet o = (Taglet) iter.next();
229 writeTaglet( o, "taglet", serializer );
230 }
231 serializer.endTag( NAMESPACE, "taglets" );
232 }
233 if ( ( javadocOptions.getOfflineLinks() != null ) && ( javadocOptions.getOfflineLinks().size() > 0 ) )
234 {
235 serializer.startTag( NAMESPACE, "offlineLinks" );
236 for ( Iterator iter = javadocOptions.getOfflineLinks().iterator(); iter.hasNext(); )
237 {
238 OfflineLink../../../../../../../../org/apache/maven/plugins/javadoc/options/OfflineLink.html#OfflineLink">OfflineLink o = (OfflineLink) iter.next();
239 writeOfflineLink( o, "offlineLink", serializer );
240 }
241 serializer.endTag( NAMESPACE, "offlineLinks" );
242 }
243 if ( ( javadocOptions.getTagletArtifacts() != null ) && ( javadocOptions.getTagletArtifacts().size() > 0 ) )
244 {
245 serializer.startTag( NAMESPACE, "tagletArtifacts" );
246 for ( Iterator iter = javadocOptions.getTagletArtifacts().iterator(); iter.hasNext(); )
247 {
248 TagletArtifact../../../../../../../org/apache/maven/plugins/javadoc/options/TagletArtifact.html#TagletArtifact">TagletArtifact o = (TagletArtifact) iter.next();
249 writeTagletArtifact( o, "tagletArtifact", serializer );
250 }
251 serializer.endTag( NAMESPACE, "tagletArtifacts" );
252 }
253 if ( ( javadocOptions.getResourcesArtifacts() != null ) && ( javadocOptions.getResourcesArtifacts().size() > 0 ) )
254 {
255 serializer.startTag( NAMESPACE, "resourcesArtifacts" );
256 for ( Iterator iter = javadocOptions.getResourcesArtifacts().iterator(); iter.hasNext(); )
257 {
258 ResourcesArtifact../../../../../../org/apache/maven/plugins/javadoc/options/ResourcesArtifact.html#ResourcesArtifact">ResourcesArtifact o = (ResourcesArtifact) iter.next();
259 writeResourcesArtifact( o, "resourcesArtifact", serializer );
260 }
261 serializer.endTag( NAMESPACE, "resourcesArtifacts" );
262 }
263 if ( ( javadocOptions.getBootclasspathArtifacts() != null ) && ( javadocOptions.getBootclasspathArtifacts().size() > 0 ) )
264 {
265 serializer.startTag( NAMESPACE, "bootclasspathArtifacts" );
266 for ( Iterator iter = javadocOptions.getBootclasspathArtifacts().iterator(); iter.hasNext(); )
267 {
268 BootclasspathArtifact./../../../../org/apache/maven/plugins/javadoc/options/BootclasspathArtifact.html#BootclasspathArtifact">BootclasspathArtifact o = (BootclasspathArtifact) iter.next();
269 writeBootclasspathArtifact( o, "bootclasspathArtifact", serializer );
270 }
271 serializer.endTag( NAMESPACE, "bootclasspathArtifacts" );
272 }
273 if ( ( javadocOptions.getLinks() != null ) && ( javadocOptions.getLinks().size() > 0 ) )
274 {
275 serializer.startTag( NAMESPACE, "links" );
276 for ( Iterator iter = javadocOptions.getLinks().iterator(); iter.hasNext(); )
277 {
278 String link = (String) iter.next();
279 serializer.startTag( NAMESPACE, "link" ).text( link ).endTag( NAMESPACE, "link" );
280 }
281 serializer.endTag( NAMESPACE, "links" );
282 }
283 if ( ( javadocOptions.getExcludePackageNames() != null ) && ( javadocOptions.getExcludePackageNames().size() > 0 ) )
284 {
285 serializer.startTag( NAMESPACE, "excludePackageNames" );
286 for ( Iterator iter = javadocOptions.getExcludePackageNames().iterator(); iter.hasNext(); )
287 {
288 String excludePackageName = (String) iter.next();
289 serializer.startTag( NAMESPACE, "excludePackageName" ).text( excludePackageName ).endTag( NAMESPACE, "excludePackageName" );
290 }
291 serializer.endTag( NAMESPACE, "excludePackageNames" );
292 }
293 if ( javadocOptions.isDocfilesSubdirsUsed() != false )
294 {
295 serializer.startTag( NAMESPACE, "docfilesSubdirsUsed" ).text( String.valueOf( javadocOptions.isDocfilesSubdirsUsed() ) ).endTag( NAMESPACE, "docfilesSubdirsUsed" );
296 }
297 if ( javadocOptions.getExcludedDocfilesSubdirs() != null )
298 {
299 serializer.startTag( NAMESPACE, "excludedDocfilesSubdirs" ).text( javadocOptions.getExcludedDocfilesSubdirs() ).endTag( NAMESPACE, "excludedDocfilesSubdirs" );
300 }
301 if ( javadocOptions.getJavadocResourcesDirectory() != null )
302 {
303 serializer.startTag( NAMESPACE, "javadocResourcesDirectory" ).text( javadocOptions.getJavadocResourcesDirectory() ).endTag( NAMESPACE, "javadocResourcesDirectory" );
304 }
305 serializer.endTag( NAMESPACE, tagName );
306 }
307
308
309
310
311
312
313
314
315
316 private void writeJavadocPathArtifact( JavadocPathArtifact javadocPathArtifact, String tagName, XmlSerializer serializer )
317 throws java.io.IOException
318 {
319 serializer.startTag( NAMESPACE, tagName );
320 if ( javadocPathArtifact.getGroupId() != null )
321 {
322 serializer.startTag( NAMESPACE, "groupId" ).text( javadocPathArtifact.getGroupId() ).endTag( NAMESPACE, "groupId" );
323 }
324 if ( javadocPathArtifact.getArtifactId() != null )
325 {
326 serializer.startTag( NAMESPACE, "artifactId" ).text( javadocPathArtifact.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
327 }
328 if ( javadocPathArtifact.getVersion() != null )
329 {
330 serializer.startTag( NAMESPACE, "version" ).text( javadocPathArtifact.getVersion() ).endTag( NAMESPACE, "version" );
331 }
332 serializer.endTag( NAMESPACE, tagName );
333 }
334
335
336
337
338
339
340
341
342
343 private void writeOfflineLink( OfflineLink offlineLink, String tagName, XmlSerializer serializer )
344 throws java.io.IOException
345 {
346 serializer.startTag( NAMESPACE, tagName );
347 if ( offlineLink.getUrl() != null )
348 {
349 serializer.startTag( NAMESPACE, "url" ).text( offlineLink.getUrl() ).endTag( NAMESPACE, "url" );
350 }
351 if ( offlineLink.getLocation() != null )
352 {
353 serializer.startTag( NAMESPACE, "location" ).text( offlineLink.getLocation() ).endTag( NAMESPACE, "location" );
354 }
355 serializer.endTag( NAMESPACE, tagName );
356 }
357
358
359
360
361
362
363
364
365
366 private void writeResourcesArtifact( ResourcesArtifact resourcesArtifact, String tagName, XmlSerializer serializer )
367 throws java.io.IOException
368 {
369 serializer.startTag( NAMESPACE, tagName );
370 if ( resourcesArtifact.getGroupId() != null )
371 {
372 serializer.startTag( NAMESPACE, "groupId" ).text( resourcesArtifact.getGroupId() ).endTag( NAMESPACE, "groupId" );
373 }
374 if ( resourcesArtifact.getArtifactId() != null )
375 {
376 serializer.startTag( NAMESPACE, "artifactId" ).text( resourcesArtifact.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
377 }
378 if ( resourcesArtifact.getVersion() != null )
379 {
380 serializer.startTag( NAMESPACE, "version" ).text( resourcesArtifact.getVersion() ).endTag( NAMESPACE, "version" );
381 }
382 serializer.endTag( NAMESPACE, tagName );
383 }
384
385
386
387
388
389
390
391
392
393 private void writeTag( Tag tag, String tagName, XmlSerializer serializer )
394 throws java.io.IOException
395 {
396 serializer.startTag( NAMESPACE, tagName );
397 if ( tag.getName() != null )
398 {
399 serializer.startTag( NAMESPACE, "name" ).text( tag.getName() ).endTag( NAMESPACE, "name" );
400 }
401 if ( tag.getHead() != null )
402 {
403 serializer.startTag( NAMESPACE, "head" ).text( tag.getHead() ).endTag( NAMESPACE, "head" );
404 }
405 if ( tag.getPlacement() != null )
406 {
407 serializer.startTag( NAMESPACE, "placement" ).text( tag.getPlacement() ).endTag( NAMESPACE, "placement" );
408 }
409 serializer.endTag( NAMESPACE, tagName );
410 }
411
412
413
414
415
416
417
418
419
420 private void writeTaglet( Taglet taglet, String tagName, XmlSerializer serializer )
421 throws java.io.IOException
422 {
423 serializer.startTag( NAMESPACE, tagName );
424 if ( taglet.getTagletClass() != null )
425 {
426 serializer.startTag( NAMESPACE, "tagletClass" ).text( taglet.getTagletClass() ).endTag( NAMESPACE, "tagletClass" );
427 }
428 if ( taglet.getTagletpath() != null )
429 {
430 serializer.startTag( NAMESPACE, "tagletpath" ).text( taglet.getTagletpath() ).endTag( NAMESPACE, "tagletpath" );
431 }
432 if ( taglet.getTagletArtifact() != null )
433 {
434 writeTagletArtifact( (TagletArtifact) taglet.getTagletArtifact(), "tagletArtifact", serializer );
435 }
436 serializer.endTag( NAMESPACE, tagName );
437 }
438
439
440
441
442
443
444
445
446
447 private void writeTagletArtifact( TagletArtifact tagletArtifact, String tagName, XmlSerializer serializer )
448 throws java.io.IOException
449 {
450 serializer.startTag( NAMESPACE, tagName );
451 if ( tagletArtifact.getGroupId() != null )
452 {
453 serializer.startTag( NAMESPACE, "groupId" ).text( tagletArtifact.getGroupId() ).endTag( NAMESPACE, "groupId" );
454 }
455 if ( tagletArtifact.getArtifactId() != null )
456 {
457 serializer.startTag( NAMESPACE, "artifactId" ).text( tagletArtifact.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
458 }
459 if ( tagletArtifact.getVersion() != null )
460 {
461 serializer.startTag( NAMESPACE, "version" ).text( tagletArtifact.getVersion() ).endTag( NAMESPACE, "version" );
462 }
463 serializer.endTag( NAMESPACE, tagName );
464 }
465
466 }