View Javadoc
1   // =================== DO NOT EDIT THIS FILE ====================
2   // Generated by Modello 2.1.2,
3   // any modifications will be overwritten.
4   // ==============================================================
5   
6   package org.apache.maven.doxia.site.io.xpp3;
7   
8     //---------------------------------/
9    //- Imported classes and packages -/
10  //---------------------------------/
11  
12  import java.io.OutputStream;
13  import java.io.Writer;
14  import java.util.Iterator;
15  import org.apache.maven.doxia.site.Banner;
16  import org.apache.maven.doxia.site.Body;
17  import org.apache.maven.doxia.site.Image;
18  import org.apache.maven.doxia.site.LinkItem;
19  import org.apache.maven.doxia.site.Logo;
20  import org.apache.maven.doxia.site.Menu;
21  import org.apache.maven.doxia.site.MenuItem;
22  import org.apache.maven.doxia.site.PublishDate;
23  import org.apache.maven.doxia.site.SiteModel;
24  import org.apache.maven.doxia.site.Skin;
25  import org.apache.maven.doxia.site.Version;
26  import org.codehaus.plexus.util.xml.Xpp3Dom;
27  import org.codehaus.plexus.util.xml.pull.MXSerializer;
28  import org.codehaus.plexus.util.xml.pull.XmlSerializer;
29  
30  /**
31   * Class SiteXpp3Writer.
32   * 
33   * @version $Revision$ $Date$
34   */
35  @SuppressWarnings( "all" )
36  public class SiteXpp3Writer
37  {
38  
39        //--------------------------/
40       //- Class/Member Variables -/
41      //--------------------------/
42  
43      /**
44       * Field NAMESPACE.
45       */
46      private static final String NAMESPACE = null;
47  
48      /**
49       * Field fileComment.
50       */
51      private String fileComment = null;
52  
53  
54        //-----------/
55       //- Methods -/
56      //-----------/
57  
58      /**
59       * Method setFileComment.
60       * 
61       * @param fileComment a fileComment object.
62       */
63      public void setFileComment( String fileComment )
64      {
65          this.fileComment = fileComment;
66      } //-- void setFileComment( String )
67  
68      /**
69       * Method write.
70       * 
71       * @param writer a writer object.
72       * @param siteModel a siteModel object.
73       * @throws java.io.IOException java.io.IOException if any.
74       */
75      public void write( Writer writer, SiteModel siteModel )
76          throws java.io.IOException
77      {
78          XmlSerializer serializer = new MXSerializer();
79          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
80          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
81          serializer.setOutput( writer );
82          serializer.startDocument( siteModel.getModelEncoding(), null );
83          writeSiteModel( siteModel, "site", serializer );
84          serializer.endDocument();
85      } //-- void write( Writer, SiteModel )
86  
87      /**
88       * Method write.
89       * 
90       * @param stream a stream object.
91       * @param siteModel a siteModel object.
92       * @throws java.io.IOException java.io.IOException if any.
93       */
94      public void write( OutputStream stream, SiteModel siteModel )
95          throws java.io.IOException
96      {
97          XmlSerializer serializer = new MXSerializer();
98          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
99          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
100         serializer.setOutput( stream, siteModel.getModelEncoding() );
101         serializer.startDocument( siteModel.getModelEncoding(), null );
102         writeSiteModel( siteModel, "site", serializer );
103         serializer.endDocument();
104     } //-- void write( OutputStream, SiteModel )
105 
106     /**
107      * Method writeBanner.
108      * 
109      * @param banner a banner object.
110      * @param serializer a serializer object.
111      * @param tagName a tagName object.
112      * @throws java.io.IOException java.io.IOException if any.
113      */
114     private void writeBanner( Banner banner, String tagName, XmlSerializer serializer )
115         throws java.io.IOException
116     {
117         serializer.startTag( NAMESPACE, tagName );
118         if ( banner.getName() != null )
119         {
120             serializer.attribute( NAMESPACE, "name", banner.getName() );
121         }
122         if ( banner.getHref() != null )
123         {
124             serializer.attribute( NAMESPACE, "href", banner.getHref() );
125         }
126         if ( banner.getTarget() != null )
127         {
128             serializer.attribute( NAMESPACE, "target", banner.getTarget() );
129         }
130         if ( banner.getImage() != null )
131         {
132             writeImage( (Image) banner.getImage(), "image", serializer );
133         }
134         serializer.endTag( NAMESPACE, tagName );
135     } //-- void writeBanner( Banner, String, XmlSerializer )
136 
137     /**
138      * Method writeBody.
139      * 
140      * @param body a body object.
141      * @param serializer a serializer object.
142      * @param tagName a tagName object.
143      * @throws java.io.IOException java.io.IOException if any.
144      */
145     private void writeBody( Body body, String tagName, XmlSerializer serializer )
146         throws java.io.IOException
147     {
148         serializer.startTag( NAMESPACE, tagName );
149         if ( body.getHead() != null )
150         {
151             serializer.startTag( NAMESPACE, "head" ).text( body.getHead() ).endTag( NAMESPACE, "head" );
152         }
153         if ( ( body.getLinks() != null ) && ( body.getLinks().size() > 0 ) )
154         {
155             serializer.startTag( NAMESPACE, "links" );
156             for ( Iterator iter = body.getLinks().iterator(); iter.hasNext(); )
157             {
158                 LinkItem o = (LinkItem) iter.next();
159                 writeLinkItem( o, "item", serializer );
160             }
161             serializer.endTag( NAMESPACE, "links" );
162         }
163         if ( ( body.getBreadcrumbs() != null ) && ( body.getBreadcrumbs().size() > 0 ) )
164         {
165             serializer.startTag( NAMESPACE, "breadcrumbs" );
166             for ( Iterator iter = body.getBreadcrumbs().iterator(); iter.hasNext(); )
167             {
168                 LinkItem o = (LinkItem) iter.next();
169                 writeLinkItem( o, "item", serializer );
170             }
171             serializer.endTag( NAMESPACE, "breadcrumbs" );
172         }
173         if ( ( body.getMenus() != null ) && ( body.getMenus().size() > 0 ) )
174         {
175             for ( Iterator iter = body.getMenus().iterator(); iter.hasNext(); )
176             {
177                 Menu o = (Menu) iter.next();
178                 writeMenu( o, "menu", serializer );
179             }
180         }
181         if ( body.getFooter() != null )
182         {
183             serializer.startTag( NAMESPACE, "footer" ).text( body.getFooter() ).endTag( NAMESPACE, "footer" );
184         }
185         serializer.endTag( NAMESPACE, tagName );
186     } //-- void writeBody( Body, String, XmlSerializer )
187 
188     /**
189      * Method writeImage.
190      * 
191      * @param image a image object.
192      * @param serializer a serializer object.
193      * @param tagName a tagName object.
194      * @throws java.io.IOException java.io.IOException if any.
195      */
196     private void writeImage( Image image, String tagName, XmlSerializer serializer )
197         throws java.io.IOException
198     {
199         serializer.startTag( NAMESPACE, tagName );
200         if ( image.getSrc() != null )
201         {
202             serializer.attribute( NAMESPACE, "src", image.getSrc() );
203         }
204         if ( ( image.getPosition() != null ) && !image.getPosition().equals( "left" ) )
205         {
206             serializer.attribute( NAMESPACE, "position", image.getPosition() );
207         }
208         if ( image.getAlt() != null )
209         {
210             serializer.attribute( NAMESPACE, "alt", image.getAlt() );
211         }
212         if ( image.getWidth() != null )
213         {
214             serializer.attribute( NAMESPACE, "width", image.getWidth() );
215         }
216         if ( image.getHeight() != null )
217         {
218             serializer.attribute( NAMESPACE, "height", image.getHeight() );
219         }
220         if ( image.getStyle() != null )
221         {
222             serializer.attribute( NAMESPACE, "style", image.getStyle() );
223         }
224         serializer.endTag( NAMESPACE, tagName );
225     } //-- void writeImage( Image, String, XmlSerializer )
226 
227     /**
228      * Method writeLinkItem.
229      * 
230      * @param linkItem a linkItem object.
231      * @param serializer a serializer object.
232      * @param tagName a tagName object.
233      * @throws java.io.IOException java.io.IOException if any.
234      */
235     private void writeLinkItem( LinkItem linkItem, String tagName, XmlSerializer serializer )
236         throws java.io.IOException
237     {
238         serializer.startTag( NAMESPACE, tagName );
239         if ( linkItem.getName() != null )
240         {
241             serializer.attribute( NAMESPACE, "name", linkItem.getName() );
242         }
243         if ( linkItem.getHref() != null )
244         {
245             serializer.attribute( NAMESPACE, "href", linkItem.getHref() );
246         }
247         if ( linkItem.getTarget() != null )
248         {
249             serializer.attribute( NAMESPACE, "target", linkItem.getTarget() );
250         }
251         if ( linkItem.getImage() != null )
252         {
253             writeImage( (Image) linkItem.getImage(), "image", serializer );
254         }
255         serializer.endTag( NAMESPACE, tagName );
256     } //-- void writeLinkItem( LinkItem, String, XmlSerializer )
257 
258     /**
259      * Method writeLogo.
260      * 
261      * @param logo a logo object.
262      * @param serializer a serializer object.
263      * @param tagName a tagName object.
264      * @throws java.io.IOException java.io.IOException if any.
265      */
266     private void writeLogo( Logo logo, String tagName, XmlSerializer serializer )
267         throws java.io.IOException
268     {
269         serializer.startTag( NAMESPACE, tagName );
270         if ( logo.getName() != null )
271         {
272             serializer.attribute( NAMESPACE, "name", logo.getName() );
273         }
274         if ( logo.getHref() != null )
275         {
276             serializer.attribute( NAMESPACE, "href", logo.getHref() );
277         }
278         if ( logo.getTarget() != null )
279         {
280             serializer.attribute( NAMESPACE, "target", logo.getTarget() );
281         }
282         if ( logo.getImage() != null )
283         {
284             writeImage( (Image) logo.getImage(), "image", serializer );
285         }
286         serializer.endTag( NAMESPACE, tagName );
287     } //-- void writeLogo( Logo, String, XmlSerializer )
288 
289     /**
290      * Method writeMenu.
291      * 
292      * @param menu a menu object.
293      * @param serializer a serializer object.
294      * @param tagName a tagName object.
295      * @throws java.io.IOException java.io.IOException if any.
296      */
297     private void writeMenu( Menu menu, String tagName, XmlSerializer serializer )
298         throws java.io.IOException
299     {
300         serializer.startTag( NAMESPACE, tagName );
301         if ( menu.getName() != null )
302         {
303             serializer.attribute( NAMESPACE, "name", menu.getName() );
304         }
305         if ( menu.getInherit() != null )
306         {
307             serializer.attribute( NAMESPACE, "inherit", menu.getInherit() );
308         }
309         if ( menu.isInheritAsRef() != false )
310         {
311             serializer.attribute( NAMESPACE, "inheritAsRef", String.valueOf( menu.isInheritAsRef() ) );
312         }
313         if ( menu.getRef() != null )
314         {
315             serializer.attribute( NAMESPACE, "ref", menu.getRef() );
316         }
317         if ( menu.getImage() != null )
318         {
319             writeImage( (Image) menu.getImage(), "image", serializer );
320         }
321         if ( ( menu.getItems() != null ) && ( menu.getItems().size() > 0 ) )
322         {
323             for ( Iterator iter = menu.getItems().iterator(); iter.hasNext(); )
324             {
325                 MenuItem o = (MenuItem) iter.next();
326                 writeMenuItem( o, "item", serializer );
327             }
328         }
329         serializer.endTag( NAMESPACE, tagName );
330     } //-- void writeMenu( Menu, String, XmlSerializer )
331 
332     /**
333      * Method writeMenuItem.
334      * 
335      * @param menuItem a menuItem object.
336      * @param serializer a serializer object.
337      * @param tagName a tagName object.
338      * @throws java.io.IOException java.io.IOException if any.
339      */
340     private void writeMenuItem( MenuItem menuItem, String tagName, XmlSerializer serializer )
341         throws java.io.IOException
342     {
343         serializer.startTag( NAMESPACE, tagName );
344         if ( menuItem.isCollapse() != false )
345         {
346             serializer.attribute( NAMESPACE, "collapse", String.valueOf( menuItem.isCollapse() ) );
347         }
348         if ( menuItem.getRef() != null )
349         {
350             serializer.attribute( NAMESPACE, "ref", menuItem.getRef() );
351         }
352         if ( menuItem.getName() != null )
353         {
354             serializer.attribute( NAMESPACE, "name", menuItem.getName() );
355         }
356         if ( menuItem.getHref() != null )
357         {
358             serializer.attribute( NAMESPACE, "href", menuItem.getHref() );
359         }
360         if ( menuItem.getTarget() != null )
361         {
362             serializer.attribute( NAMESPACE, "target", menuItem.getTarget() );
363         }
364         if ( ( menuItem.getItems() != null ) && ( menuItem.getItems().size() > 0 ) )
365         {
366             for ( Iterator iter = menuItem.getItems().iterator(); iter.hasNext(); )
367             {
368                 MenuItem o = (MenuItem) iter.next();
369                 writeMenuItem( o, "item", serializer );
370             }
371         }
372         if ( menuItem.getImage() != null )
373         {
374             writeImage( (Image) menuItem.getImage(), "image", serializer );
375         }
376         serializer.endTag( NAMESPACE, tagName );
377     } //-- void writeMenuItem( MenuItem, String, XmlSerializer )
378 
379     /**
380      * Method writePublishDate.
381      * 
382      * @param publishDate a publishDate object.
383      * @param serializer a serializer object.
384      * @param tagName a tagName object.
385      * @throws java.io.IOException java.io.IOException if any.
386      */
387     private void writePublishDate( PublishDate publishDate, String tagName, XmlSerializer serializer )
388         throws java.io.IOException
389     {
390         serializer.startTag( NAMESPACE, tagName );
391         if ( ( publishDate.getPosition() != null ) && !publishDate.getPosition().equals( "left" ) )
392         {
393             serializer.attribute( NAMESPACE, "position", publishDate.getPosition() );
394         }
395         if ( ( publishDate.getFormat() != null ) && !publishDate.getFormat().equals( "yyyy-MM-dd" ) )
396         {
397             serializer.attribute( NAMESPACE, "format", publishDate.getFormat() );
398         }
399         if ( ( publishDate.getTimezone() != null ) && !publishDate.getTimezone().equals( "Etc/UTC" ) )
400         {
401             serializer.attribute( NAMESPACE, "timezone", publishDate.getTimezone() );
402         }
403         serializer.endTag( NAMESPACE, tagName );
404     } //-- void writePublishDate( PublishDate, String, XmlSerializer )
405 
406     /**
407      * Method writeSiteModel.
408      * 
409      * @param siteModel a siteModel object.
410      * @param serializer a serializer object.
411      * @param tagName a tagName object.
412      * @throws java.io.IOException java.io.IOException if any.
413      */
414     private void writeSiteModel( SiteModel siteModel, String tagName, XmlSerializer serializer )
415         throws java.io.IOException
416     {
417         if ( this.fileComment != null )
418         {
419         serializer.comment(this.fileComment);
420         }
421         serializer.setPrefix( "", "http://maven.apache.org/SITE/2.0.0" );
422         serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
423         serializer.startTag( NAMESPACE, tagName );
424         serializer.attribute( "", "xsi:schemaLocation", "http://maven.apache.org/SITE/2.0.0 https://maven.apache.org/xsd/site-2.0.0.xsd" );
425         if ( siteModel.getName() != null )
426         {
427             serializer.attribute( NAMESPACE, "name", siteModel.getName() );
428         }
429         if ( ( siteModel.getCombineSelf() != null ) && !siteModel.getCombineSelf().equals( "merge" ) )
430         {
431             serializer.attribute( NAMESPACE, "combine.self", siteModel.getCombineSelf() );
432         }
433         if ( siteModel.getBannerLeft() != null )
434         {
435             writeBanner( (Banner) siteModel.getBannerLeft(), "bannerLeft", serializer );
436         }
437         if ( siteModel.getBannerRight() != null )
438         {
439             writeBanner( (Banner) siteModel.getBannerRight(), "bannerRight", serializer );
440         }
441         if ( siteModel.getPublishDate() != null )
442         {
443             writePublishDate( (PublishDate) siteModel.getPublishDate(), "publishDate", serializer );
444         }
445         if ( siteModel.getVersion() != null )
446         {
447             writeVersion( (Version) siteModel.getVersion(), "version", serializer );
448         }
449         if ( siteModel.getEdit() != null )
450         {
451             serializer.startTag( NAMESPACE, "edit" ).text( siteModel.getEdit() ).endTag( NAMESPACE, "edit" );
452         }
453         if ( ( siteModel.getPoweredBy() != null ) && ( siteModel.getPoweredBy().size() > 0 ) )
454         {
455             serializer.startTag( NAMESPACE, "poweredBy" );
456             for ( Iterator iter = siteModel.getPoweredBy().iterator(); iter.hasNext(); )
457             {
458                 Logo o = (Logo) iter.next();
459                 writeLogo( o, "logo", serializer );
460             }
461             serializer.endTag( NAMESPACE, "poweredBy" );
462         }
463         if ( siteModel.getSkin() != null )
464         {
465             writeSkin( (Skin) siteModel.getSkin(), "skin", serializer );
466         }
467         if ( siteModel.getBody() != null )
468         {
469             writeBody( (Body) siteModel.getBody(), "body", serializer );
470         }
471         if ( siteModel.getCustom() != null )
472         {
473             ((Xpp3Dom) siteModel.getCustom()).writeToSerializer( NAMESPACE, serializer );
474         }
475         serializer.endTag( NAMESPACE, tagName );
476     } //-- void writeSiteModel( SiteModel, String, XmlSerializer )
477 
478     /**
479      * Method writeSkin.
480      * 
481      * @param skin a skin object.
482      * @param serializer a serializer object.
483      * @param tagName a tagName object.
484      * @throws java.io.IOException java.io.IOException if any.
485      */
486     private void writeSkin( Skin skin, String tagName, XmlSerializer serializer )
487         throws java.io.IOException
488     {
489         serializer.startTag( NAMESPACE, tagName );
490         if ( skin.getGroupId() != null )
491         {
492             serializer.startTag( NAMESPACE, "groupId" ).text( skin.getGroupId() ).endTag( NAMESPACE, "groupId" );
493         }
494         if ( skin.getArtifactId() != null )
495         {
496             serializer.startTag( NAMESPACE, "artifactId" ).text( skin.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
497         }
498         if ( skin.getVersion() != null )
499         {
500             serializer.startTag( NAMESPACE, "version" ).text( skin.getVersion() ).endTag( NAMESPACE, "version" );
501         }
502         serializer.endTag( NAMESPACE, tagName );
503     } //-- void writeSkin( Skin, String, XmlSerializer )
504 
505     /**
506      * Method writeVersion.
507      * 
508      * @param version a version object.
509      * @param serializer a serializer object.
510      * @param tagName a tagName object.
511      * @throws java.io.IOException java.io.IOException if any.
512      */
513     private void writeVersion( Version version, String tagName, XmlSerializer serializer )
514         throws java.io.IOException
515     {
516         serializer.startTag( NAMESPACE, tagName );
517         if ( ( version.getPosition() != null ) && !version.getPosition().equals( "left" ) )
518         {
519             serializer.attribute( NAMESPACE, "position", version.getPosition() );
520         }
521         serializer.endTag( NAMESPACE, tagName );
522     } //-- void writeVersion( Version, String, XmlSerializer )
523 
524 }