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.metadata.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.metadata.AbstractArchetypeDescriptor;
16  import org.apache.maven.archetype.metadata.ArchetypeDescriptor;
17  import org.apache.maven.archetype.metadata.FileSet;
18  import org.apache.maven.archetype.metadata.ModuleDescriptor;
19  import org.apache.maven.archetype.metadata.RequiredProperty;
20  import org.codehaus.plexus.util.xml.pull.MXSerializer;
21  import org.codehaus.plexus.util.xml.pull.XmlSerializer;
22  
23  /**
24   * Class ArchetypeDescriptorXpp3Writer.
25   * 
26   * @version $Revision$ $Date$
27   */
28  @SuppressWarnings( "all" )
29  public class ArchetypeDescriptorXpp3Writer
30  {
31  
32        //--------------------------/
33       //- Class/Member Variables -/
34      //--------------------------/
35  
36      /**
37       * Field NAMESPACE.
38       */
39      private static final String NAMESPACE = null;
40  
41      /**
42       * Field fileComment.
43       */
44      private String fileComment = null;
45  
46  
47        //-----------/
48       //- Methods -/
49      //-----------/
50  
51      /**
52       * Method setFileComment.
53       * 
54       * @param fileComment
55       */
56      public void setFileComment( String fileComment )
57      {
58          this.fileComment = fileComment;
59      } //-- void setFileComment( String )
60  
61      /**
62       * Method write.
63       * 
64       * @param writer
65       * @param archetypeDescriptor
66       * @throws java.io.IOException
67       */
68      public void write( Writer writer, ArchetypeDescriptor archetypeDescriptor )
69          throws java.io.IOException
70      {
71          XmlSerializer serializer = new MXSerializer();
72          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
73          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
74          serializer.setOutput( writer );
75          serializer.startDocument( archetypeDescriptor.getModelEncoding(), null );
76          writeArchetypeDescriptor( archetypeDescriptor, "archetype-descriptor", serializer );
77          serializer.endDocument();
78      } //-- void write( Writer, ArchetypeDescriptor )
79  
80      /**
81       * Method write.
82       * 
83       * @param stream
84       * @param archetypeDescriptor
85       * @throws java.io.IOException
86       */
87      public void write( OutputStream stream, ArchetypeDescriptor archetypeDescriptor )
88          throws java.io.IOException
89      {
90          XmlSerializer serializer = new MXSerializer();
91          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
92          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
93          serializer.setOutput( stream, archetypeDescriptor.getModelEncoding() );
94          serializer.startDocument( archetypeDescriptor.getModelEncoding(), null );
95          writeArchetypeDescriptor( archetypeDescriptor, "archetype-descriptor", serializer );
96          serializer.endDocument();
97      } //-- void write( OutputStream, ArchetypeDescriptor )
98  
99      /**
100      * Method writeAbstractArchetypeDescriptor.
101      * 
102      * @param abstractArchetypeDescriptor
103      * @param serializer
104      * @param tagName
105      * @throws java.io.IOException
106      */
107     private void writeAbstractArchetypeDescriptor( AbstractArchetypeDescriptor abstractArchetypeDescriptor, String tagName, XmlSerializer serializer )
108         throws java.io.IOException
109     {
110         serializer.startTag( NAMESPACE, tagName );
111         if ( ( abstractArchetypeDescriptor.getFileSets() != null ) && ( abstractArchetypeDescriptor.getFileSets().size() > 0 ) )
112         {
113             serializer.startTag( NAMESPACE, "fileSets" );
114             for ( Iterator iter = abstractArchetypeDescriptor.getFileSets().iterator(); iter.hasNext(); )
115             {
116                 FileSet o = (FileSet) iter.next();
117                 writeFileSet( o, "fileSet", serializer );
118             }
119             serializer.endTag( NAMESPACE, "fileSets" );
120         }
121         if ( ( abstractArchetypeDescriptor.getModules() != null ) && ( abstractArchetypeDescriptor.getModules().size() > 0 ) )
122         {
123             serializer.startTag( NAMESPACE, "modules" );
124             for ( Iterator iter = abstractArchetypeDescriptor.getModules().iterator(); iter.hasNext(); )
125             {
126                 ModuleDescriptor o = (ModuleDescriptor) iter.next();
127                 writeModuleDescriptor( o, "module", serializer );
128             }
129             serializer.endTag( NAMESPACE, "modules" );
130         }
131         serializer.endTag( NAMESPACE, tagName );
132     } //-- void writeAbstractArchetypeDescriptor( AbstractArchetypeDescriptor, String, XmlSerializer )
133 
134     /**
135      * Method writeArchetypeDescriptor.
136      * 
137      * @param archetypeDescriptor
138      * @param serializer
139      * @param tagName
140      * @throws java.io.IOException
141      */
142     private void writeArchetypeDescriptor( ArchetypeDescriptor archetypeDescriptor, String tagName, XmlSerializer serializer )
143         throws java.io.IOException
144     {
145         if ( this.fileComment != null )
146         {
147         serializer.comment(this.fileComment);
148         }
149         serializer.setPrefix( "", "https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0" );
150         serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
151         serializer.startTag( NAMESPACE, tagName );
152         serializer.attribute( "", "xsi:schemaLocation", "https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0 http://maven.apache.org/xsd/archetype-descriptor-1.1.0.xsd" );
153         if ( archetypeDescriptor.getName() != null )
154         {
155             serializer.attribute( NAMESPACE, "name", archetypeDescriptor.getName() );
156         }
157         if ( archetypeDescriptor.isPartial() != false )
158         {
159             serializer.attribute( NAMESPACE, "partial", String.valueOf( archetypeDescriptor.isPartial() ) );
160         }
161         if ( ( archetypeDescriptor.getRequiredProperties() != null ) && ( archetypeDescriptor.getRequiredProperties().size() > 0 ) )
162         {
163             serializer.startTag( NAMESPACE, "requiredProperties" );
164             for ( Iterator iter = archetypeDescriptor.getRequiredProperties().iterator(); iter.hasNext(); )
165             {
166                 RequiredProperty o = (RequiredProperty) iter.next();
167                 writeRequiredProperty( o, "requiredProperty", serializer );
168             }
169             serializer.endTag( NAMESPACE, "requiredProperties" );
170         }
171         if ( ( archetypeDescriptor.getFileSets() != null ) && ( archetypeDescriptor.getFileSets().size() > 0 ) )
172         {
173             serializer.startTag( NAMESPACE, "fileSets" );
174             for ( Iterator iter = archetypeDescriptor.getFileSets().iterator(); iter.hasNext(); )
175             {
176                 FileSet o = (FileSet) iter.next();
177                 writeFileSet( o, "fileSet", serializer );
178             }
179             serializer.endTag( NAMESPACE, "fileSets" );
180         }
181         if ( ( archetypeDescriptor.getModules() != null ) && ( archetypeDescriptor.getModules().size() > 0 ) )
182         {
183             serializer.startTag( NAMESPACE, "modules" );
184             for ( Iterator iter = archetypeDescriptor.getModules().iterator(); iter.hasNext(); )
185             {
186                 ModuleDescriptor o = (ModuleDescriptor) iter.next();
187                 writeModuleDescriptor( o, "module", serializer );
188             }
189             serializer.endTag( NAMESPACE, "modules" );
190         }
191         serializer.endTag( NAMESPACE, tagName );
192     } //-- void writeArchetypeDescriptor( ArchetypeDescriptor, String, XmlSerializer )
193 
194     /**
195      * Method writeFileSet.
196      * 
197      * @param fileSet
198      * @param serializer
199      * @param tagName
200      * @throws java.io.IOException
201      */
202     private void writeFileSet( FileSet fileSet, String tagName, XmlSerializer serializer )
203         throws java.io.IOException
204     {
205         serializer.startTag( NAMESPACE, tagName );
206         if ( fileSet.isFiltered() != false )
207         {
208             serializer.attribute( NAMESPACE, "filtered", String.valueOf( fileSet.isFiltered() ) );
209         }
210         if ( fileSet.isPackaged() != false )
211         {
212             serializer.attribute( NAMESPACE, "packaged", String.valueOf( fileSet.isPackaged() ) );
213         }
214         if ( fileSet.getEncoding() != null )
215         {
216             serializer.attribute( NAMESPACE, "encoding", fileSet.getEncoding() );
217         }
218         if ( fileSet.getDirectory() != null )
219         {
220             serializer.startTag( NAMESPACE, "directory" ).text( fileSet.getDirectory() ).endTag( NAMESPACE, "directory" );
221         }
222         if ( ( fileSet.getIncludes() != null ) && ( fileSet.getIncludes().size() > 0 ) )
223         {
224             serializer.startTag( NAMESPACE, "includes" );
225             for ( Iterator iter = fileSet.getIncludes().iterator(); iter.hasNext(); )
226             {
227                 String include = (String) iter.next();
228                 serializer.startTag( NAMESPACE, "include" ).text( include ).endTag( NAMESPACE, "include" );
229             }
230             serializer.endTag( NAMESPACE, "includes" );
231         }
232         if ( ( fileSet.getExcludes() != null ) && ( fileSet.getExcludes().size() > 0 ) )
233         {
234             serializer.startTag( NAMESPACE, "excludes" );
235             for ( Iterator iter = fileSet.getExcludes().iterator(); iter.hasNext(); )
236             {
237                 String exclude = (String) iter.next();
238                 serializer.startTag( NAMESPACE, "exclude" ).text( exclude ).endTag( NAMESPACE, "exclude" );
239             }
240             serializer.endTag( NAMESPACE, "excludes" );
241         }
242         serializer.endTag( NAMESPACE, tagName );
243     } //-- void writeFileSet( FileSet, String, XmlSerializer )
244 
245     /**
246      * Method writeModuleDescriptor.
247      * 
248      * @param moduleDescriptor
249      * @param serializer
250      * @param tagName
251      * @throws java.io.IOException
252      */
253     private void writeModuleDescriptor( ModuleDescriptor moduleDescriptor, String tagName, XmlSerializer serializer )
254         throws java.io.IOException
255     {
256         serializer.startTag( NAMESPACE, tagName );
257         if ( moduleDescriptor.getId() != null )
258         {
259             serializer.attribute( NAMESPACE, "id", moduleDescriptor.getId() );
260         }
261         if ( moduleDescriptor.getDir() != null )
262         {
263             serializer.attribute( NAMESPACE, "dir", moduleDescriptor.getDir() );
264         }
265         if ( moduleDescriptor.getName() != null )
266         {
267             serializer.attribute( NAMESPACE, "name", moduleDescriptor.getName() );
268         }
269         if ( ( moduleDescriptor.getFileSets() != null ) && ( moduleDescriptor.getFileSets().size() > 0 ) )
270         {
271             serializer.startTag( NAMESPACE, "fileSets" );
272             for ( Iterator iter = moduleDescriptor.getFileSets().iterator(); iter.hasNext(); )
273             {
274                 FileSet o = (FileSet) iter.next();
275                 writeFileSet( o, "fileSet", serializer );
276             }
277             serializer.endTag( NAMESPACE, "fileSets" );
278         }
279         if ( ( moduleDescriptor.getModules() != null ) && ( moduleDescriptor.getModules().size() > 0 ) )
280         {
281             serializer.startTag( NAMESPACE, "modules" );
282             for ( Iterator iter = moduleDescriptor.getModules().iterator(); iter.hasNext(); )
283             {
284                 ModuleDescriptor o = (ModuleDescriptor) iter.next();
285                 writeModuleDescriptor( o, "module", serializer );
286             }
287             serializer.endTag( NAMESPACE, "modules" );
288         }
289         serializer.endTag( NAMESPACE, tagName );
290     } //-- void writeModuleDescriptor( ModuleDescriptor, String, XmlSerializer )
291 
292     /**
293      * Method writeRequiredProperty.
294      * 
295      * @param requiredProperty
296      * @param serializer
297      * @param tagName
298      * @throws java.io.IOException
299      */
300     private void writeRequiredProperty( RequiredProperty requiredProperty, String tagName, XmlSerializer serializer )
301         throws java.io.IOException
302     {
303         serializer.startTag( NAMESPACE, tagName );
304         if ( requiredProperty.getKey() != null )
305         {
306             serializer.attribute( NAMESPACE, "key", requiredProperty.getKey() );
307         }
308         if ( requiredProperty.getDefaultValue() != null )
309         {
310             serializer.startTag( NAMESPACE, "defaultValue" ).text( requiredProperty.getDefaultValue() ).endTag( NAMESPACE, "defaultValue" );
311         }
312         if ( requiredProperty.getValidationRegex() != null )
313         {
314             serializer.startTag( NAMESPACE, "validationRegex" ).text( requiredProperty.getValidationRegex() ).endTag( NAMESPACE, "validationRegex" );
315         }
316         serializer.endTag( NAMESPACE, tagName );
317     } //-- void writeRequiredProperty( RequiredProperty, String, XmlSerializer )
318 
319 }