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