View Javadoc
1   // =================== DO NOT EDIT THIS FILE ====================
2   // Generated by Modello 1.11,
3   // any modifications will be overwritten.
4   // ==============================================================
5   
6   package org.apache.maven.archetype.catalog.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.archetype.catalog.Archetype;
16  import org.apache.maven.archetype.catalog.ArchetypeCatalog;
17  import org.codehaus.plexus.util.xml.pull.MXSerializer;
18  import org.codehaus.plexus.util.xml.pull.XmlSerializer;
19  
20  /**
21   * Class ArchetypeCatalogXpp3Writer.
22   * 
23   * @version $Revision$ $Date$
24   */
25  @SuppressWarnings( "all" )
26  public class ArchetypeCatalogXpp3Writer
27  {
28  
29        //--------------------------/
30       //- Class/Member Variables -/
31      //--------------------------/
32  
33      /**
34       * Field NAMESPACE.
35       */
36      private static final String NAMESPACE = null;
37  
38      /**
39       * Field fileComment.
40       */
41      private String fileComment = null;
42  
43  
44        //-----------/
45       //- Methods -/
46      //-----------/
47  
48      /**
49       * Method setFileComment.
50       * 
51       * @param fileComment
52       */
53      public void setFileComment( String fileComment )
54      {
55          this.fileComment = fileComment;
56      } //-- void setFileComment( String )
57  
58      /**
59       * Method write.
60       * 
61       * @param writer
62       * @param archetypeCatalog
63       * @throws java.io.IOException
64       */
65      public void write( Writer writer, ArchetypeCatalog archetypeCatalog )
66          throws java.io.IOException
67      {
68          XmlSerializer serializer = new MXSerializer();
69          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
70          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
71          serializer.setOutput( writer );
72          serializer.startDocument( archetypeCatalog.getModelEncoding(), null );
73          writeArchetypeCatalog( archetypeCatalog, "archetype-catalog", serializer );
74          serializer.endDocument();
75      } //-- void write( Writer, ArchetypeCatalog )
76  
77      /**
78       * Method write.
79       * 
80       * @param stream
81       * @param archetypeCatalog
82       * @throws java.io.IOException
83       */
84      public void write( OutputStream stream, ArchetypeCatalog archetypeCatalog )
85          throws java.io.IOException
86      {
87          XmlSerializer serializer = new MXSerializer();
88          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
89          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
90          serializer.setOutput( stream, archetypeCatalog.getModelEncoding() );
91          serializer.startDocument( archetypeCatalog.getModelEncoding(), null );
92          writeArchetypeCatalog( archetypeCatalog, "archetype-catalog", serializer );
93          serializer.endDocument();
94      } //-- void write( OutputStream, ArchetypeCatalog )
95  
96      /**
97       * Method writeArchetype.
98       * 
99       * @param archetype
100      * @param serializer
101      * @param tagName
102      * @throws java.io.IOException
103      */
104     private void writeArchetype( Archetype archetype, String tagName, XmlSerializer serializer )
105         throws java.io.IOException
106     {
107         serializer.startTag( NAMESPACE, tagName );
108         if ( archetype.getGroupId() != null )
109         {
110             serializer.startTag( NAMESPACE, "groupId" ).text( archetype.getGroupId() ).endTag( NAMESPACE, "groupId" );
111         }
112         if ( archetype.getArtifactId() != null )
113         {
114             serializer.startTag( NAMESPACE, "artifactId" ).text( archetype.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
115         }
116         if ( archetype.getVersion() != null )
117         {
118             serializer.startTag( NAMESPACE, "version" ).text( archetype.getVersion() ).endTag( NAMESPACE, "version" );
119         }
120         if ( archetype.getRepository() != null )
121         {
122             serializer.startTag( NAMESPACE, "repository" ).text( archetype.getRepository() ).endTag( NAMESPACE, "repository" );
123         }
124         if ( archetype.getDescription() != null )
125         {
126             serializer.startTag( NAMESPACE, "description" ).text( archetype.getDescription() ).endTag( NAMESPACE, "description" );
127         }
128         serializer.endTag( NAMESPACE, tagName );
129     } //-- void writeArchetype( Archetype, String, XmlSerializer )
130 
131     /**
132      * Method writeArchetypeCatalog.
133      * 
134      * @param archetypeCatalog
135      * @param serializer
136      * @param tagName
137      * @throws java.io.IOException
138      */
139     private void writeArchetypeCatalog( ArchetypeCatalog archetypeCatalog, String tagName, XmlSerializer serializer )
140         throws java.io.IOException
141     {
142         if ( this.fileComment != null )
143         {
144         serializer.comment(this.fileComment);
145         }
146         serializer.setPrefix( "", "http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0" );
147         serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
148         serializer.startTag( NAMESPACE, tagName );
149         serializer.attribute( "", "xsi:schemaLocation", "http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0 http://maven.apache.org/xsd/archetype-catalog-1.0.0.xsd" );
150         if ( ( archetypeCatalog.getArchetypes() != null ) && ( archetypeCatalog.getArchetypes().size() > 0 ) )
151         {
152             serializer.startTag( NAMESPACE, "archetypes" );
153             for ( Iterator iter = archetypeCatalog.getArchetypes().iterator(); iter.hasNext(); )
154             {
155                 Archetype o = (Archetype) iter.next();
156                 writeArchetype( o, "archetype", serializer );
157             }
158             serializer.endTag( NAMESPACE, "archetypes" );
159         }
160         serializer.endTag( NAMESPACE, tagName );
161     } //-- void writeArchetypeCatalog( ArchetypeCatalog, String, XmlSerializer )
162 
163 }