View Javadoc
1   /*
2    Licensed to the Apache Software Foundation (ASF) under one
3    or more contributor license agreements.  See the NOTICE file
4    distributed with this work for additional information
5    regarding copyright ownership.  The ASF licenses this file
6    to you under the Apache License, Version 2.0 (the
7    "License"); you may not use this file except in compliance
8    with the License.  You may obtain a copy of the License at
9    
10       http://www.apache.org/licenses/LICENSE-2.0
11   
12   Unless required by applicable law or agreed to in writing,
13   software distributed under the License is distributed on an
14   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   KIND, either express or implied.  See the License for the
16   specific language governing permissions and limitations
17   under the License.
18   =================== DO NOT EDIT THIS FILE ====================
19   Generated by Modello 2.4.0,
20   any modifications will be overwritten.
21   ==============================================================
22   */
23  
24  package org.apache.maven.model.io.xpp3;
25  
26    //---------------------------------/
27   //- Imported classes and packages -/
28  //---------------------------------/
29  
30  import java.io.OutputStream;
31  import java.io.Writer;
32  import java.util.Iterator;
33  import org.apache.maven.model.Activation;
34  import org.apache.maven.model.ActivationFile;
35  import org.apache.maven.model.ActivationOS;
36  import org.apache.maven.model.ActivationProperty;
37  import org.apache.maven.model.Build;
38  import org.apache.maven.model.BuildBase;
39  import org.apache.maven.model.CiManagement;
40  import org.apache.maven.model.ConfigurationContainer;
41  import org.apache.maven.model.Contributor;
42  import org.apache.maven.model.Dependency;
43  import org.apache.maven.model.DependencyManagement;
44  import org.apache.maven.model.DeploymentRepository;
45  import org.apache.maven.model.Developer;
46  import org.apache.maven.model.DistributionManagement;
47  import org.apache.maven.model.Exclusion;
48  import org.apache.maven.model.Extension;
49  import org.apache.maven.model.FileSet;
50  import org.apache.maven.model.IssueManagement;
51  import org.apache.maven.model.License;
52  import org.apache.maven.model.MailingList;
53  import org.apache.maven.model.Model;
54  import org.apache.maven.model.ModelBase;
55  import org.apache.maven.model.Notifier;
56  import org.apache.maven.model.Organization;
57  import org.apache.maven.model.Parent;
58  import org.apache.maven.model.PatternSet;
59  import org.apache.maven.model.Plugin;
60  import org.apache.maven.model.PluginConfiguration;
61  import org.apache.maven.model.PluginContainer;
62  import org.apache.maven.model.PluginExecution;
63  import org.apache.maven.model.PluginManagement;
64  import org.apache.maven.model.Prerequisites;
65  import org.apache.maven.model.Profile;
66  import org.apache.maven.model.Relocation;
67  import org.apache.maven.model.ReportPlugin;
68  import org.apache.maven.model.ReportSet;
69  import org.apache.maven.model.Reporting;
70  import org.apache.maven.model.Repository;
71  import org.apache.maven.model.RepositoryBase;
72  import org.apache.maven.model.RepositoryPolicy;
73  import org.apache.maven.model.Resource;
74  import org.apache.maven.model.Scm;
75  import org.apache.maven.model.Site;
76  import org.codehaus.plexus.util.xml.Xpp3Dom;
77  import org.codehaus.plexus.util.xml.pull.MXSerializer;
78  import org.codehaus.plexus.util.xml.pull.XmlSerializer;
79  
80  /**
81   * Class MavenXpp3Writer.
82   * 
83   * @version $Revision$ $Date$
84   */
85  @SuppressWarnings( "all" )
86  public class MavenXpp3Writer
87  {
88  
89        //--------------------------/
90       //- Class/Member Variables -/
91      //--------------------------/
92  
93      /**
94       * Field NAMESPACE.
95       */
96      private static final String NAMESPACE = null;
97  
98      /**
99       * Field fileComment.
100      */
101     private String fileComment = null;
102 
103 
104       //-----------/
105      //- Methods -/
106     //-----------/
107 
108     /**
109      * Method setFileComment.
110      * 
111      * @param fileComment a fileComment object.
112      */
113     public void setFileComment( String fileComment )
114     {
115         this.fileComment = fileComment;
116     } //-- void setFileComment( String )
117 
118     /**
119      * Method write.
120      * 
121      * @param writer a writer object.
122      * @param model a model object.
123      * @throws java.io.IOException java.io.IOException if any.
124      */
125     public void write( Writer writer, Model model )
126         throws java.io.IOException
127     {
128         XmlSerializer serializer = new MXSerializer();
129         serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
130         serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
131         serializer.setOutput( writer );
132         serializer.startDocument( model.getModelEncoding(), null );
133         writeModel( model, "project", serializer );
134         serializer.endDocument();
135     } //-- void write( Writer, Model )
136 
137     /**
138      * Method write.
139      * 
140      * @param stream a stream object.
141      * @param model a model object.
142      * @throws java.io.IOException java.io.IOException if any.
143      */
144     public void write( OutputStream stream, Model model )
145         throws java.io.IOException
146     {
147         XmlSerializer serializer = new MXSerializer();
148         serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
149         serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
150         serializer.setOutput( stream, model.getModelEncoding() );
151         serializer.startDocument( model.getModelEncoding(), null );
152         writeModel( model, "project", serializer );
153         serializer.endDocument();
154     } //-- void write( OutputStream, Model )
155 
156     /**
157      * Method writeActivation.
158      * 
159      * @param activation a activation object.
160      * @param serializer a serializer object.
161      * @param tagName a tagName object.
162      * @throws java.io.IOException java.io.IOException if any.
163      */
164     private void writeActivation( Activation activation, String tagName, XmlSerializer serializer )
165         throws java.io.IOException
166     {
167         serializer.startTag( NAMESPACE, tagName );
168         if ( activation.isActiveByDefault() != false )
169         {
170             serializer.startTag( NAMESPACE, "activeByDefault" ).text( String.valueOf( activation.isActiveByDefault() ) ).endTag( NAMESPACE, "activeByDefault" );
171         }
172         if ( activation.getJdk() != null )
173         {
174             serializer.startTag( NAMESPACE, "jdk" ).text( activation.getJdk() ).endTag( NAMESPACE, "jdk" );
175         }
176         if ( activation.getOs() != null )
177         {
178             writeActivationOS( (ActivationOS) activation.getOs(), "os", serializer );
179         }
180         if ( activation.getProperty() != null )
181         {
182             writeActivationProperty( (ActivationProperty) activation.getProperty(), "property", serializer );
183         }
184         if ( activation.getFile() != null )
185         {
186             writeActivationFile( (ActivationFile) activation.getFile(), "file", serializer );
187         }
188         serializer.endTag( NAMESPACE, tagName );
189     } //-- void writeActivation( Activation, String, XmlSerializer )
190 
191     /**
192      * Method writeActivationFile.
193      * 
194      * @param activationFile a activationFile object.
195      * @param serializer a serializer object.
196      * @param tagName a tagName object.
197      * @throws java.io.IOException java.io.IOException if any.
198      */
199     private void writeActivationFile( ActivationFile activationFile, String tagName, XmlSerializer serializer )
200         throws java.io.IOException
201     {
202         serializer.startTag( NAMESPACE, tagName );
203         if ( activationFile.getMissing() != null )
204         {
205             serializer.startTag( NAMESPACE, "missing" ).text( activationFile.getMissing() ).endTag( NAMESPACE, "missing" );
206         }
207         if ( activationFile.getExists() != null )
208         {
209             serializer.startTag( NAMESPACE, "exists" ).text( activationFile.getExists() ).endTag( NAMESPACE, "exists" );
210         }
211         serializer.endTag( NAMESPACE, tagName );
212     } //-- void writeActivationFile( ActivationFile, String, XmlSerializer )
213 
214     /**
215      * Method writeActivationOS.
216      * 
217      * @param activationOS a activationOS object.
218      * @param serializer a serializer object.
219      * @param tagName a tagName object.
220      * @throws java.io.IOException java.io.IOException if any.
221      */
222     private void writeActivationOS( ActivationOS activationOS, String tagName, XmlSerializer serializer )
223         throws java.io.IOException
224     {
225         serializer.startTag( NAMESPACE, tagName );
226         if ( activationOS.getName() != null )
227         {
228             serializer.startTag( NAMESPACE, "name" ).text( activationOS.getName() ).endTag( NAMESPACE, "name" );
229         }
230         if ( activationOS.getFamily() != null )
231         {
232             serializer.startTag( NAMESPACE, "family" ).text( activationOS.getFamily() ).endTag( NAMESPACE, "family" );
233         }
234         if ( activationOS.getArch() != null )
235         {
236             serializer.startTag( NAMESPACE, "arch" ).text( activationOS.getArch() ).endTag( NAMESPACE, "arch" );
237         }
238         if ( activationOS.getVersion() != null )
239         {
240             serializer.startTag( NAMESPACE, "version" ).text( activationOS.getVersion() ).endTag( NAMESPACE, "version" );
241         }
242         serializer.endTag( NAMESPACE, tagName );
243     } //-- void writeActivationOS( ActivationOS, String, XmlSerializer )
244 
245     /**
246      * Method writeActivationProperty.
247      * 
248      * @param activationProperty a activationProperty object.
249      * @param serializer a serializer object.
250      * @param tagName a tagName object.
251      * @throws java.io.IOException java.io.IOException if any.
252      */
253     private void writeActivationProperty( ActivationProperty activationProperty, String tagName, XmlSerializer serializer )
254         throws java.io.IOException
255     {
256         serializer.startTag( NAMESPACE, tagName );
257         if ( activationProperty.getName() != null )
258         {
259             serializer.startTag( NAMESPACE, "name" ).text( activationProperty.getName() ).endTag( NAMESPACE, "name" );
260         }
261         if ( activationProperty.getValue() != null )
262         {
263             serializer.startTag( NAMESPACE, "value" ).text( activationProperty.getValue() ).endTag( NAMESPACE, "value" );
264         }
265         serializer.endTag( NAMESPACE, tagName );
266     } //-- void writeActivationProperty( ActivationProperty, String, XmlSerializer )
267 
268     /**
269      * Method writeBuild.
270      * 
271      * @param build a build object.
272      * @param serializer a serializer object.
273      * @param tagName a tagName object.
274      * @throws java.io.IOException java.io.IOException if any.
275      */
276     private void writeBuild( Build build, String tagName, XmlSerializer serializer )
277         throws java.io.IOException
278     {
279         serializer.startTag( NAMESPACE, tagName );
280         if ( build.getSourceDirectory() != null )
281         {
282             serializer.startTag( NAMESPACE, "sourceDirectory" ).text( build.getSourceDirectory() ).endTag( NAMESPACE, "sourceDirectory" );
283         }
284         if ( build.getScriptSourceDirectory() != null )
285         {
286             serializer.startTag( NAMESPACE, "scriptSourceDirectory" ).text( build.getScriptSourceDirectory() ).endTag( NAMESPACE, "scriptSourceDirectory" );
287         }
288         if ( build.getTestSourceDirectory() != null )
289         {
290             serializer.startTag( NAMESPACE, "testSourceDirectory" ).text( build.getTestSourceDirectory() ).endTag( NAMESPACE, "testSourceDirectory" );
291         }
292         if ( build.getOutputDirectory() != null )
293         {
294             serializer.startTag( NAMESPACE, "outputDirectory" ).text( build.getOutputDirectory() ).endTag( NAMESPACE, "outputDirectory" );
295         }
296         if ( build.getTestOutputDirectory() != null )
297         {
298             serializer.startTag( NAMESPACE, "testOutputDirectory" ).text( build.getTestOutputDirectory() ).endTag( NAMESPACE, "testOutputDirectory" );
299         }
300         if ( ( build.getExtensions() != null ) && ( build.getExtensions().size() > 0 ) )
301         {
302             serializer.startTag( NAMESPACE, "extensions" );
303             for ( Iterator iter = build.getExtensions().iterator(); iter.hasNext(); )
304             {
305                 Extension o = (Extension) iter.next();
306                 writeExtension( o, "extension", serializer );
307             }
308             serializer.endTag( NAMESPACE, "extensions" );
309         }
310         if ( build.getDefaultGoal() != null )
311         {
312             serializer.startTag( NAMESPACE, "defaultGoal" ).text( build.getDefaultGoal() ).endTag( NAMESPACE, "defaultGoal" );
313         }
314         if ( ( build.getResources() != null ) && ( build.getResources().size() > 0 ) )
315         {
316             serializer.startTag( NAMESPACE, "resources" );
317             for ( Iterator iter = build.getResources().iterator(); iter.hasNext(); )
318             {
319                 Resource o = (Resource) iter.next();
320                 writeResource( o, "resource", serializer );
321             }
322             serializer.endTag( NAMESPACE, "resources" );
323         }
324         if ( ( build.getTestResources() != null ) && ( build.getTestResources().size() > 0 ) )
325         {
326             serializer.startTag( NAMESPACE, "testResources" );
327             for ( Iterator iter = build.getTestResources().iterator(); iter.hasNext(); )
328             {
329                 Resource o = (Resource) iter.next();
330                 writeResource( o, "testResource", serializer );
331             }
332             serializer.endTag( NAMESPACE, "testResources" );
333         }
334         if ( build.getDirectory() != null )
335         {
336             serializer.startTag( NAMESPACE, "directory" ).text( build.getDirectory() ).endTag( NAMESPACE, "directory" );
337         }
338         if ( build.getFinalName() != null )
339         {
340             serializer.startTag( NAMESPACE, "finalName" ).text( build.getFinalName() ).endTag( NAMESPACE, "finalName" );
341         }
342         if ( ( build.getFilters() != null ) && ( build.getFilters().size() > 0 ) )
343         {
344             serializer.startTag( NAMESPACE, "filters" );
345             for ( Iterator iter = build.getFilters().iterator(); iter.hasNext(); )
346             {
347                 String filter = (String) iter.next();
348                 serializer.startTag( NAMESPACE, "filter" ).text( filter ).endTag( NAMESPACE, "filter" );
349             }
350             serializer.endTag( NAMESPACE, "filters" );
351         }
352         if ( build.getPluginManagement() != null )
353         {
354             writePluginManagement( (PluginManagement) build.getPluginManagement(), "pluginManagement", serializer );
355         }
356         if ( ( build.getPlugins() != null ) && ( build.getPlugins().size() > 0 ) )
357         {
358             serializer.startTag( NAMESPACE, "plugins" );
359             for ( Iterator iter = build.getPlugins().iterator(); iter.hasNext(); )
360             {
361                 Plugin o = (Plugin) iter.next();
362                 writePlugin( o, "plugin", serializer );
363             }
364             serializer.endTag( NAMESPACE, "plugins" );
365         }
366         serializer.endTag( NAMESPACE, tagName );
367     } //-- void writeBuild( Build, String, XmlSerializer )
368 
369     /**
370      * Method writeBuildBase.
371      * 
372      * @param buildBase a buildBase object.
373      * @param serializer a serializer object.
374      * @param tagName a tagName object.
375      * @throws java.io.IOException java.io.IOException if any.
376      */
377     private void writeBuildBase( BuildBase buildBase, String tagName, XmlSerializer serializer )
378         throws java.io.IOException
379     {
380         serializer.startTag( NAMESPACE, tagName );
381         if ( buildBase.getDefaultGoal() != null )
382         {
383             serializer.startTag( NAMESPACE, "defaultGoal" ).text( buildBase.getDefaultGoal() ).endTag( NAMESPACE, "defaultGoal" );
384         }
385         if ( ( buildBase.getResources() != null ) && ( buildBase.getResources().size() > 0 ) )
386         {
387             serializer.startTag( NAMESPACE, "resources" );
388             for ( Iterator iter = buildBase.getResources().iterator(); iter.hasNext(); )
389             {
390                 Resource o = (Resource) iter.next();
391                 writeResource( o, "resource", serializer );
392             }
393             serializer.endTag( NAMESPACE, "resources" );
394         }
395         if ( ( buildBase.getTestResources() != null ) && ( buildBase.getTestResources().size() > 0 ) )
396         {
397             serializer.startTag( NAMESPACE, "testResources" );
398             for ( Iterator iter = buildBase.getTestResources().iterator(); iter.hasNext(); )
399             {
400                 Resource o = (Resource) iter.next();
401                 writeResource( o, "testResource", serializer );
402             }
403             serializer.endTag( NAMESPACE, "testResources" );
404         }
405         if ( buildBase.getDirectory() != null )
406         {
407             serializer.startTag( NAMESPACE, "directory" ).text( buildBase.getDirectory() ).endTag( NAMESPACE, "directory" );
408         }
409         if ( buildBase.getFinalName() != null )
410         {
411             serializer.startTag( NAMESPACE, "finalName" ).text( buildBase.getFinalName() ).endTag( NAMESPACE, "finalName" );
412         }
413         if ( ( buildBase.getFilters() != null ) && ( buildBase.getFilters().size() > 0 ) )
414         {
415             serializer.startTag( NAMESPACE, "filters" );
416             for ( Iterator iter = buildBase.getFilters().iterator(); iter.hasNext(); )
417             {
418                 String filter = (String) iter.next();
419                 serializer.startTag( NAMESPACE, "filter" ).text( filter ).endTag( NAMESPACE, "filter" );
420             }
421             serializer.endTag( NAMESPACE, "filters" );
422         }
423         if ( buildBase.getPluginManagement() != null )
424         {
425             writePluginManagement( (PluginManagement) buildBase.getPluginManagement(), "pluginManagement", serializer );
426         }
427         if ( ( buildBase.getPlugins() != null ) && ( buildBase.getPlugins().size() > 0 ) )
428         {
429             serializer.startTag( NAMESPACE, "plugins" );
430             for ( Iterator iter = buildBase.getPlugins().iterator(); iter.hasNext(); )
431             {
432                 Plugin o = (Plugin) iter.next();
433                 writePlugin( o, "plugin", serializer );
434             }
435             serializer.endTag( NAMESPACE, "plugins" );
436         }
437         serializer.endTag( NAMESPACE, tagName );
438     } //-- void writeBuildBase( BuildBase, String, XmlSerializer )
439 
440     /**
441      * Method writeCiManagement.
442      * 
443      * @param ciManagement a ciManagement object.
444      * @param serializer a serializer object.
445      * @param tagName a tagName object.
446      * @throws java.io.IOException java.io.IOException if any.
447      */
448     private void writeCiManagement( CiManagement ciManagement, String tagName, XmlSerializer serializer )
449         throws java.io.IOException
450     {
451         serializer.startTag( NAMESPACE, tagName );
452         if ( ciManagement.getSystem() != null )
453         {
454             serializer.startTag( NAMESPACE, "system" ).text( ciManagement.getSystem() ).endTag( NAMESPACE, "system" );
455         }
456         if ( ciManagement.getUrl() != null )
457         {
458             serializer.startTag( NAMESPACE, "url" ).text( ciManagement.getUrl() ).endTag( NAMESPACE, "url" );
459         }
460         if ( ( ciManagement.getNotifiers() != null ) && ( ciManagement.getNotifiers().size() > 0 ) )
461         {
462             serializer.startTag( NAMESPACE, "notifiers" );
463             for ( Iterator iter = ciManagement.getNotifiers().iterator(); iter.hasNext(); )
464             {
465                 Notifier o = (Notifier) iter.next();
466                 writeNotifier( o, "notifier", serializer );
467             }
468             serializer.endTag( NAMESPACE, "notifiers" );
469         }
470         serializer.endTag( NAMESPACE, tagName );
471     } //-- void writeCiManagement( CiManagement, String, XmlSerializer )
472 
473     /**
474      * Method writeConfigurationContainer.
475      * 
476      * @param configurationContainer a configurationContainer
477      * object.
478      * @param serializer a serializer object.
479      * @param tagName a tagName object.
480      * @throws java.io.IOException java.io.IOException if any.
481      */
482     private void writeConfigurationContainer( ConfigurationContainer configurationContainer, String tagName, XmlSerializer serializer )
483         throws java.io.IOException
484     {
485         serializer.startTag( NAMESPACE, tagName );
486         if ( configurationContainer.getInherited() != null )
487         {
488             serializer.startTag( NAMESPACE, "inherited" ).text( configurationContainer.getInherited() ).endTag( NAMESPACE, "inherited" );
489         }
490         if ( configurationContainer.getConfiguration() != null )
491         {
492             ((Xpp3Dom) configurationContainer.getConfiguration()).writeToSerializer( NAMESPACE, serializer );
493         }
494         serializer.endTag( NAMESPACE, tagName );
495     } //-- void writeConfigurationContainer( ConfigurationContainer, String, XmlSerializer )
496 
497     /**
498      * Method writeContributor.
499      * 
500      * @param contributor a contributor object.
501      * @param serializer a serializer object.
502      * @param tagName a tagName object.
503      * @throws java.io.IOException java.io.IOException if any.
504      */
505     private void writeContributor( Contributor contributor, String tagName, XmlSerializer serializer )
506         throws java.io.IOException
507     {
508         serializer.startTag( NAMESPACE, tagName );
509         if ( contributor.getName() != null )
510         {
511             serializer.startTag( NAMESPACE, "name" ).text( contributor.getName() ).endTag( NAMESPACE, "name" );
512         }
513         if ( contributor.getEmail() != null )
514         {
515             serializer.startTag( NAMESPACE, "email" ).text( contributor.getEmail() ).endTag( NAMESPACE, "email" );
516         }
517         if ( contributor.getUrl() != null )
518         {
519             serializer.startTag( NAMESPACE, "url" ).text( contributor.getUrl() ).endTag( NAMESPACE, "url" );
520         }
521         if ( contributor.getOrganization() != null )
522         {
523             serializer.startTag( NAMESPACE, "organization" ).text( contributor.getOrganization() ).endTag( NAMESPACE, "organization" );
524         }
525         if ( contributor.getOrganizationUrl() != null )
526         {
527             serializer.startTag( NAMESPACE, "organizationUrl" ).text( contributor.getOrganizationUrl() ).endTag( NAMESPACE, "organizationUrl" );
528         }
529         if ( ( contributor.getRoles() != null ) && ( contributor.getRoles().size() > 0 ) )
530         {
531             serializer.startTag( NAMESPACE, "roles" );
532             for ( Iterator iter = contributor.getRoles().iterator(); iter.hasNext(); )
533             {
534                 String role = (String) iter.next();
535                 serializer.startTag( NAMESPACE, "role" ).text( role ).endTag( NAMESPACE, "role" );
536             }
537             serializer.endTag( NAMESPACE, "roles" );
538         }
539         if ( contributor.getTimezone() != null )
540         {
541             serializer.startTag( NAMESPACE, "timezone" ).text( contributor.getTimezone() ).endTag( NAMESPACE, "timezone" );
542         }
543         if ( ( contributor.getProperties() != null ) && ( contributor.getProperties().size() > 0 ) )
544         {
545             serializer.startTag( NAMESPACE, "properties" );
546             for ( Iterator iter = contributor.getProperties().keySet().iterator(); iter.hasNext(); )
547             {
548                 String key = (String) iter.next();
549                 String value = (String) contributor.getProperties().get( key );
550                 serializer.startTag( NAMESPACE, key ).text( value ).endTag( NAMESPACE, key );
551             }
552             serializer.endTag( NAMESPACE, "properties" );
553         }
554         serializer.endTag( NAMESPACE, tagName );
555     } //-- void writeContributor( Contributor, String, XmlSerializer )
556 
557     /**
558      * Method writeDependency.
559      * 
560      * @param dependency a dependency object.
561      * @param serializer a serializer object.
562      * @param tagName a tagName object.
563      * @throws java.io.IOException java.io.IOException if any.
564      */
565     private void writeDependency( Dependency dependency, String tagName, XmlSerializer serializer )
566         throws java.io.IOException
567     {
568         serializer.startTag( NAMESPACE, tagName );
569         if ( dependency.getGroupId() != null )
570         {
571             serializer.startTag( NAMESPACE, "groupId" ).text( dependency.getGroupId() ).endTag( NAMESPACE, "groupId" );
572         }
573         if ( dependency.getArtifactId() != null )
574         {
575             serializer.startTag( NAMESPACE, "artifactId" ).text( dependency.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
576         }
577         if ( dependency.getVersion() != null )
578         {
579             serializer.startTag( NAMESPACE, "version" ).text( dependency.getVersion() ).endTag( NAMESPACE, "version" );
580         }
581         if ( ( dependency.getType() != null ) && !dependency.getType().equals( "jar" ) )
582         {
583             serializer.startTag( NAMESPACE, "type" ).text( dependency.getType() ).endTag( NAMESPACE, "type" );
584         }
585         if ( dependency.getClassifier() != null )
586         {
587             serializer.startTag( NAMESPACE, "classifier" ).text( dependency.getClassifier() ).endTag( NAMESPACE, "classifier" );
588         }
589         if ( dependency.getScope() != null )
590         {
591             serializer.startTag( NAMESPACE, "scope" ).text( dependency.getScope() ).endTag( NAMESPACE, "scope" );
592         }
593         if ( dependency.getSystemPath() != null )
594         {
595             serializer.startTag( NAMESPACE, "systemPath" ).text( dependency.getSystemPath() ).endTag( NAMESPACE, "systemPath" );
596         }
597         if ( ( dependency.getExclusions() != null ) && ( dependency.getExclusions().size() > 0 ) )
598         {
599             serializer.startTag( NAMESPACE, "exclusions" );
600             for ( Iterator iter = dependency.getExclusions().iterator(); iter.hasNext(); )
601             {
602                 Exclusion o = (Exclusion) iter.next();
603                 writeExclusion( o, "exclusion", serializer );
604             }
605             serializer.endTag( NAMESPACE, "exclusions" );
606         }
607         if ( dependency.getOptional() != null )
608         {
609             serializer.startTag( NAMESPACE, "optional" ).text( dependency.getOptional() ).endTag( NAMESPACE, "optional" );
610         }
611         serializer.endTag( NAMESPACE, tagName );
612     } //-- void writeDependency( Dependency, String, XmlSerializer )
613 
614     /**
615      * Method writeDependencyManagement.
616      * 
617      * @param dependencyManagement a dependencyManagement object.
618      * @param serializer a serializer object.
619      * @param tagName a tagName object.
620      * @throws java.io.IOException java.io.IOException if any.
621      */
622     private void writeDependencyManagement( DependencyManagement dependencyManagement, String tagName, XmlSerializer serializer )
623         throws java.io.IOException
624     {
625         serializer.startTag( NAMESPACE, tagName );
626         if ( ( dependencyManagement.getDependencies() != null ) && ( dependencyManagement.getDependencies().size() > 0 ) )
627         {
628             serializer.startTag( NAMESPACE, "dependencies" );
629             for ( Iterator iter = dependencyManagement.getDependencies().iterator(); iter.hasNext(); )
630             {
631                 Dependency o = (Dependency) iter.next();
632                 writeDependency( o, "dependency", serializer );
633             }
634             serializer.endTag( NAMESPACE, "dependencies" );
635         }
636         serializer.endTag( NAMESPACE, tagName );
637     } //-- void writeDependencyManagement( DependencyManagement, String, XmlSerializer )
638 
639     /**
640      * Method writeDeploymentRepository.
641      * 
642      * @param deploymentRepository a deploymentRepository object.
643      * @param serializer a serializer object.
644      * @param tagName a tagName object.
645      * @throws java.io.IOException java.io.IOException if any.
646      */
647     private void writeDeploymentRepository( DeploymentRepository deploymentRepository, String tagName, XmlSerializer serializer )
648         throws java.io.IOException
649     {
650         serializer.startTag( NAMESPACE, tagName );
651         if ( deploymentRepository.isUniqueVersion() != true )
652         {
653             serializer.startTag( NAMESPACE, "uniqueVersion" ).text( String.valueOf( deploymentRepository.isUniqueVersion() ) ).endTag( NAMESPACE, "uniqueVersion" );
654         }
655         if ( deploymentRepository.getReleases() != null )
656         {
657             writeRepositoryPolicy( (RepositoryPolicy) deploymentRepository.getReleases(), "releases", serializer );
658         }
659         if ( deploymentRepository.getSnapshots() != null )
660         {
661             writeRepositoryPolicy( (RepositoryPolicy) deploymentRepository.getSnapshots(), "snapshots", serializer );
662         }
663         if ( deploymentRepository.getId() != null )
664         {
665             serializer.startTag( NAMESPACE, "id" ).text( deploymentRepository.getId() ).endTag( NAMESPACE, "id" );
666         }
667         if ( deploymentRepository.getName() != null )
668         {
669             serializer.startTag( NAMESPACE, "name" ).text( deploymentRepository.getName() ).endTag( NAMESPACE, "name" );
670         }
671         if ( deploymentRepository.getUrl() != null )
672         {
673             serializer.startTag( NAMESPACE, "url" ).text( deploymentRepository.getUrl() ).endTag( NAMESPACE, "url" );
674         }
675         if ( ( deploymentRepository.getLayout() != null ) && !deploymentRepository.getLayout().equals( "default" ) )
676         {
677             serializer.startTag( NAMESPACE, "layout" ).text( deploymentRepository.getLayout() ).endTag( NAMESPACE, "layout" );
678         }
679         serializer.endTag( NAMESPACE, tagName );
680     } //-- void writeDeploymentRepository( DeploymentRepository, String, XmlSerializer )
681 
682     /**
683      * Method writeDeveloper.
684      * 
685      * @param developer a developer object.
686      * @param serializer a serializer object.
687      * @param tagName a tagName object.
688      * @throws java.io.IOException java.io.IOException if any.
689      */
690     private void writeDeveloper( Developer developer, String tagName, XmlSerializer serializer )
691         throws java.io.IOException
692     {
693         serializer.startTag( NAMESPACE, tagName );
694         if ( developer.getId() != null )
695         {
696             serializer.startTag( NAMESPACE, "id" ).text( developer.getId() ).endTag( NAMESPACE, "id" );
697         }
698         if ( developer.getName() != null )
699         {
700             serializer.startTag( NAMESPACE, "name" ).text( developer.getName() ).endTag( NAMESPACE, "name" );
701         }
702         if ( developer.getEmail() != null )
703         {
704             serializer.startTag( NAMESPACE, "email" ).text( developer.getEmail() ).endTag( NAMESPACE, "email" );
705         }
706         if ( developer.getUrl() != null )
707         {
708             serializer.startTag( NAMESPACE, "url" ).text( developer.getUrl() ).endTag( NAMESPACE, "url" );
709         }
710         if ( developer.getOrganization() != null )
711         {
712             serializer.startTag( NAMESPACE, "organization" ).text( developer.getOrganization() ).endTag( NAMESPACE, "organization" );
713         }
714         if ( developer.getOrganizationUrl() != null )
715         {
716             serializer.startTag( NAMESPACE, "organizationUrl" ).text( developer.getOrganizationUrl() ).endTag( NAMESPACE, "organizationUrl" );
717         }
718         if ( ( developer.getRoles() != null ) && ( developer.getRoles().size() > 0 ) )
719         {
720             serializer.startTag( NAMESPACE, "roles" );
721             for ( Iterator iter = developer.getRoles().iterator(); iter.hasNext(); )
722             {
723                 String role = (String) iter.next();
724                 serializer.startTag( NAMESPACE, "role" ).text( role ).endTag( NAMESPACE, "role" );
725             }
726             serializer.endTag( NAMESPACE, "roles" );
727         }
728         if ( developer.getTimezone() != null )
729         {
730             serializer.startTag( NAMESPACE, "timezone" ).text( developer.getTimezone() ).endTag( NAMESPACE, "timezone" );
731         }
732         if ( ( developer.getProperties() != null ) && ( developer.getProperties().size() > 0 ) )
733         {
734             serializer.startTag( NAMESPACE, "properties" );
735             for ( Iterator iter = developer.getProperties().keySet().iterator(); iter.hasNext(); )
736             {
737                 String key = (String) iter.next();
738                 String value = (String) developer.getProperties().get( key );
739                 serializer.startTag( NAMESPACE, key ).text( value ).endTag( NAMESPACE, key );
740             }
741             serializer.endTag( NAMESPACE, "properties" );
742         }
743         serializer.endTag( NAMESPACE, tagName );
744     } //-- void writeDeveloper( Developer, String, XmlSerializer )
745 
746     /**
747      * Method writeDistributionManagement.
748      * 
749      * @param distributionManagement a distributionManagement
750      * object.
751      * @param serializer a serializer object.
752      * @param tagName a tagName object.
753      * @throws java.io.IOException java.io.IOException if any.
754      */
755     private void writeDistributionManagement( DistributionManagement distributionManagement, String tagName, XmlSerializer serializer )
756         throws java.io.IOException
757     {
758         serializer.startTag( NAMESPACE, tagName );
759         if ( distributionManagement.getRepository() != null )
760         {
761             writeDeploymentRepository( (DeploymentRepository) distributionManagement.getRepository(), "repository", serializer );
762         }
763         if ( distributionManagement.getSnapshotRepository() != null )
764         {
765             writeDeploymentRepository( (DeploymentRepository) distributionManagement.getSnapshotRepository(), "snapshotRepository", serializer );
766         }
767         if ( distributionManagement.getSite() != null )
768         {
769             writeSite( (Site) distributionManagement.getSite(), "site", serializer );
770         }
771         if ( distributionManagement.getDownloadUrl() != null )
772         {
773             serializer.startTag( NAMESPACE, "downloadUrl" ).text( distributionManagement.getDownloadUrl() ).endTag( NAMESPACE, "downloadUrl" );
774         }
775         if ( distributionManagement.getRelocation() != null )
776         {
777             writeRelocation( (Relocation) distributionManagement.getRelocation(), "relocation", serializer );
778         }
779         if ( distributionManagement.getStatus() != null )
780         {
781             serializer.startTag( NAMESPACE, "status" ).text( distributionManagement.getStatus() ).endTag( NAMESPACE, "status" );
782         }
783         serializer.endTag( NAMESPACE, tagName );
784     } //-- void writeDistributionManagement( DistributionManagement, String, XmlSerializer )
785 
786     /**
787      * Method writeExclusion.
788      * 
789      * @param exclusion a exclusion object.
790      * @param serializer a serializer object.
791      * @param tagName a tagName object.
792      * @throws java.io.IOException java.io.IOException if any.
793      */
794     private void writeExclusion( Exclusion exclusion, String tagName, XmlSerializer serializer )
795         throws java.io.IOException
796     {
797         serializer.startTag( NAMESPACE, tagName );
798         if ( exclusion.getGroupId() != null )
799         {
800             serializer.startTag( NAMESPACE, "groupId" ).text( exclusion.getGroupId() ).endTag( NAMESPACE, "groupId" );
801         }
802         if ( exclusion.getArtifactId() != null )
803         {
804             serializer.startTag( NAMESPACE, "artifactId" ).text( exclusion.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
805         }
806         serializer.endTag( NAMESPACE, tagName );
807     } //-- void writeExclusion( Exclusion, String, XmlSerializer )
808 
809     /**
810      * Method writeExtension.
811      * 
812      * @param extension a extension object.
813      * @param serializer a serializer object.
814      * @param tagName a tagName object.
815      * @throws java.io.IOException java.io.IOException if any.
816      */
817     private void writeExtension( Extension extension, String tagName, XmlSerializer serializer )
818         throws java.io.IOException
819     {
820         serializer.startTag( NAMESPACE, tagName );
821         if ( extension.getGroupId() != null )
822         {
823             serializer.startTag( NAMESPACE, "groupId" ).text( extension.getGroupId() ).endTag( NAMESPACE, "groupId" );
824         }
825         if ( extension.getArtifactId() != null )
826         {
827             serializer.startTag( NAMESPACE, "artifactId" ).text( extension.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
828         }
829         if ( extension.getVersion() != null )
830         {
831             serializer.startTag( NAMESPACE, "version" ).text( extension.getVersion() ).endTag( NAMESPACE, "version" );
832         }
833         serializer.endTag( NAMESPACE, tagName );
834     } //-- void writeExtension( Extension, String, XmlSerializer )
835 
836     /**
837      * Method writeFileSet.
838      * 
839      * @param fileSet a fileSet object.
840      * @param serializer a serializer object.
841      * @param tagName a tagName object.
842      * @throws java.io.IOException java.io.IOException if any.
843      */
844     private void writeFileSet( FileSet fileSet, String tagName, XmlSerializer serializer )
845         throws java.io.IOException
846     {
847         serializer.startTag( NAMESPACE, tagName );
848         if ( fileSet.getDirectory() != null )
849         {
850             serializer.startTag( NAMESPACE, "directory" ).text( fileSet.getDirectory() ).endTag( NAMESPACE, "directory" );
851         }
852         if ( ( fileSet.getIncludes() != null ) && ( fileSet.getIncludes().size() > 0 ) )
853         {
854             serializer.startTag( NAMESPACE, "includes" );
855             for ( Iterator iter = fileSet.getIncludes().iterator(); iter.hasNext(); )
856             {
857                 String include = (String) iter.next();
858                 serializer.startTag( NAMESPACE, "include" ).text( include ).endTag( NAMESPACE, "include" );
859             }
860             serializer.endTag( NAMESPACE, "includes" );
861         }
862         if ( ( fileSet.getExcludes() != null ) && ( fileSet.getExcludes().size() > 0 ) )
863         {
864             serializer.startTag( NAMESPACE, "excludes" );
865             for ( Iterator iter = fileSet.getExcludes().iterator(); iter.hasNext(); )
866             {
867                 String exclude = (String) iter.next();
868                 serializer.startTag( NAMESPACE, "exclude" ).text( exclude ).endTag( NAMESPACE, "exclude" );
869             }
870             serializer.endTag( NAMESPACE, "excludes" );
871         }
872         serializer.endTag( NAMESPACE, tagName );
873     } //-- void writeFileSet( FileSet, String, XmlSerializer )
874 
875     /**
876      * Method writeIssueManagement.
877      * 
878      * @param issueManagement a issueManagement object.
879      * @param serializer a serializer object.
880      * @param tagName a tagName object.
881      * @throws java.io.IOException java.io.IOException if any.
882      */
883     private void writeIssueManagement( IssueManagement issueManagement, String tagName, XmlSerializer serializer )
884         throws java.io.IOException
885     {
886         serializer.startTag( NAMESPACE, tagName );
887         if ( issueManagement.getSystem() != null )
888         {
889             serializer.startTag( NAMESPACE, "system" ).text( issueManagement.getSystem() ).endTag( NAMESPACE, "system" );
890         }
891         if ( issueManagement.getUrl() != null )
892         {
893             serializer.startTag( NAMESPACE, "url" ).text( issueManagement.getUrl() ).endTag( NAMESPACE, "url" );
894         }
895         serializer.endTag( NAMESPACE, tagName );
896     } //-- void writeIssueManagement( IssueManagement, String, XmlSerializer )
897 
898     /**
899      * Method writeLicense.
900      * 
901      * @param license a license object.
902      * @param serializer a serializer object.
903      * @param tagName a tagName object.
904      * @throws java.io.IOException java.io.IOException if any.
905      */
906     private void writeLicense( License license, String tagName, XmlSerializer serializer )
907         throws java.io.IOException
908     {
909         serializer.startTag( NAMESPACE, tagName );
910         if ( license.getName() != null )
911         {
912             serializer.startTag( NAMESPACE, "name" ).text( license.getName() ).endTag( NAMESPACE, "name" );
913         }
914         if ( license.getUrl() != null )
915         {
916             serializer.startTag( NAMESPACE, "url" ).text( license.getUrl() ).endTag( NAMESPACE, "url" );
917         }
918         if ( license.getDistribution() != null )
919         {
920             serializer.startTag( NAMESPACE, "distribution" ).text( license.getDistribution() ).endTag( NAMESPACE, "distribution" );
921         }
922         if ( license.getComments() != null )
923         {
924             serializer.startTag( NAMESPACE, "comments" ).text( license.getComments() ).endTag( NAMESPACE, "comments" );
925         }
926         serializer.endTag( NAMESPACE, tagName );
927     } //-- void writeLicense( License, String, XmlSerializer )
928 
929     /**
930      * Method writeMailingList.
931      * 
932      * @param mailingList a mailingList object.
933      * @param serializer a serializer object.
934      * @param tagName a tagName object.
935      * @throws java.io.IOException java.io.IOException if any.
936      */
937     private void writeMailingList( MailingList mailingList, String tagName, XmlSerializer serializer )
938         throws java.io.IOException
939     {
940         serializer.startTag( NAMESPACE, tagName );
941         if ( mailingList.getName() != null )
942         {
943             serializer.startTag( NAMESPACE, "name" ).text( mailingList.getName() ).endTag( NAMESPACE, "name" );
944         }
945         if ( mailingList.getSubscribe() != null )
946         {
947             serializer.startTag( NAMESPACE, "subscribe" ).text( mailingList.getSubscribe() ).endTag( NAMESPACE, "subscribe" );
948         }
949         if ( mailingList.getUnsubscribe() != null )
950         {
951             serializer.startTag( NAMESPACE, "unsubscribe" ).text( mailingList.getUnsubscribe() ).endTag( NAMESPACE, "unsubscribe" );
952         }
953         if ( mailingList.getPost() != null )
954         {
955             serializer.startTag( NAMESPACE, "post" ).text( mailingList.getPost() ).endTag( NAMESPACE, "post" );
956         }
957         if ( mailingList.getArchive() != null )
958         {
959             serializer.startTag( NAMESPACE, "archive" ).text( mailingList.getArchive() ).endTag( NAMESPACE, "archive" );
960         }
961         if ( ( mailingList.getOtherArchives() != null ) && ( mailingList.getOtherArchives().size() > 0 ) )
962         {
963             serializer.startTag( NAMESPACE, "otherArchives" );
964             for ( Iterator iter = mailingList.getOtherArchives().iterator(); iter.hasNext(); )
965             {
966                 String otherArchive = (String) iter.next();
967                 serializer.startTag( NAMESPACE, "otherArchive" ).text( otherArchive ).endTag( NAMESPACE, "otherArchive" );
968             }
969             serializer.endTag( NAMESPACE, "otherArchives" );
970         }
971         serializer.endTag( NAMESPACE, tagName );
972     } //-- void writeMailingList( MailingList, String, XmlSerializer )
973 
974     /**
975      * Method writeModel.
976      * 
977      * @param model a model object.
978      * @param serializer a serializer object.
979      * @param tagName a tagName object.
980      * @throws java.io.IOException java.io.IOException if any.
981      */
982     private void writeModel( Model model, String tagName, XmlSerializer serializer )
983         throws java.io.IOException
984     {
985         if ( this.fileComment != null )
986         {
987         serializer.comment(this.fileComment);
988         }
989         serializer.setPrefix( "", "http://maven.apache.org/POM/4.0.0" );
990         serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
991         serializer.startTag( NAMESPACE, tagName );
992         serializer.attribute( "", "xsi:schemaLocation", "http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" );
993         if ( model.getChildProjectUrlInheritAppendPath() != null )
994         {
995             serializer.attribute( NAMESPACE, "child.project.url.inherit.append.path", model.getChildProjectUrlInheritAppendPath() );
996         }
997         if ( model.getModelVersion() != null )
998         {
999             serializer.startTag( NAMESPACE, "modelVersion" ).text( model.getModelVersion() ).endTag( NAMESPACE, "modelVersion" );
1000         }
1001         if ( model.getParent() != null )
1002         {
1003             writeParent( (Parent) model.getParent(), "parent", serializer );
1004         }
1005         if ( model.getGroupId() != null )
1006         {
1007             serializer.startTag( NAMESPACE, "groupId" ).text( model.getGroupId() ).endTag( NAMESPACE, "groupId" );
1008         }
1009         if ( model.getArtifactId() != null )
1010         {
1011             serializer.startTag( NAMESPACE, "artifactId" ).text( model.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
1012         }
1013         if ( model.getVersion() != null )
1014         {
1015             serializer.startTag( NAMESPACE, "version" ).text( model.getVersion() ).endTag( NAMESPACE, "version" );
1016         }
1017         if ( ( model.getPackaging() != null ) && !model.getPackaging().equals( "jar" ) )
1018         {
1019             serializer.startTag( NAMESPACE, "packaging" ).text( model.getPackaging() ).endTag( NAMESPACE, "packaging" );
1020         }
1021         if ( model.getName() != null )
1022         {
1023             serializer.startTag( NAMESPACE, "name" ).text( model.getName() ).endTag( NAMESPACE, "name" );
1024         }
1025         if ( model.getDescription() != null )
1026         {
1027             serializer.startTag( NAMESPACE, "description" ).text( model.getDescription() ).endTag( NAMESPACE, "description" );
1028         }
1029         if ( model.getUrl() != null )
1030         {
1031             serializer.startTag( NAMESPACE, "url" ).text( model.getUrl() ).endTag( NAMESPACE, "url" );
1032         }
1033         if ( model.getInceptionYear() != null )
1034         {
1035             serializer.startTag( NAMESPACE, "inceptionYear" ).text( model.getInceptionYear() ).endTag( NAMESPACE, "inceptionYear" );
1036         }
1037         if ( model.getOrganization() != null )
1038         {
1039             writeOrganization( (Organization) model.getOrganization(), "organization", serializer );
1040         }
1041         if ( ( model.getLicenses() != null ) && ( model.getLicenses().size() > 0 ) )
1042         {
1043             serializer.startTag( NAMESPACE, "licenses" );
1044             for ( Iterator iter = model.getLicenses().iterator(); iter.hasNext(); )
1045             {
1046                 License o = (License) iter.next();
1047                 writeLicense( o, "license", serializer );
1048             }
1049             serializer.endTag( NAMESPACE, "licenses" );
1050         }
1051         if ( ( model.getDevelopers() != null ) && ( model.getDevelopers().size() > 0 ) )
1052         {
1053             serializer.startTag( NAMESPACE, "developers" );
1054             for ( Iterator iter = model.getDevelopers().iterator(); iter.hasNext(); )
1055             {
1056                 Developer o = (Developer) iter.next();
1057                 writeDeveloper( o, "developer", serializer );
1058             }
1059             serializer.endTag( NAMESPACE, "developers" );
1060         }
1061         if ( ( model.getContributors() != null ) && ( model.getContributors().size() > 0 ) )
1062         {
1063             serializer.startTag( NAMESPACE, "contributors" );
1064             for ( Iterator iter = model.getContributors().iterator(); iter.hasNext(); )
1065             {
1066                 Contributor o = (Contributor) iter.next();
1067                 writeContributor( o, "contributor", serializer );
1068             }
1069             serializer.endTag( NAMESPACE, "contributors" );
1070         }
1071         if ( ( model.getMailingLists() != null ) && ( model.getMailingLists().size() > 0 ) )
1072         {
1073             serializer.startTag( NAMESPACE, "mailingLists" );
1074             for ( Iterator iter = model.getMailingLists().iterator(); iter.hasNext(); )
1075             {
1076                 MailingList o = (MailingList) iter.next();
1077                 writeMailingList( o, "mailingList", serializer );
1078             }
1079             serializer.endTag( NAMESPACE, "mailingLists" );
1080         }
1081         if ( model.getPrerequisites() != null )
1082         {
1083             writePrerequisites( (Prerequisites) model.getPrerequisites(), "prerequisites", serializer );
1084         }
1085         if ( ( model.getModules() != null ) && ( model.getModules().size() > 0 ) )
1086         {
1087             serializer.startTag( NAMESPACE, "modules" );
1088             for ( Iterator iter = model.getModules().iterator(); iter.hasNext(); )
1089             {
1090                 String module = (String) iter.next();
1091                 serializer.startTag( NAMESPACE, "module" ).text( module ).endTag( NAMESPACE, "module" );
1092             }
1093             serializer.endTag( NAMESPACE, "modules" );
1094         }
1095         if ( model.getScm() != null )
1096         {
1097             writeScm( (Scm) model.getScm(), "scm", serializer );
1098         }
1099         if ( model.getIssueManagement() != null )
1100         {
1101             writeIssueManagement( (IssueManagement) model.getIssueManagement(), "issueManagement", serializer );
1102         }
1103         if ( model.getCiManagement() != null )
1104         {
1105             writeCiManagement( (CiManagement) model.getCiManagement(), "ciManagement", serializer );
1106         }
1107         if ( model.getDistributionManagement() != null )
1108         {
1109             writeDistributionManagement( (DistributionManagement) model.getDistributionManagement(), "distributionManagement", serializer );
1110         }
1111         if ( ( model.getProperties() != null ) && ( model.getProperties().size() > 0 ) )
1112         {
1113             serializer.startTag( NAMESPACE, "properties" );
1114             for ( Iterator iter = model.getProperties().keySet().iterator(); iter.hasNext(); )
1115             {
1116                 String key = (String) iter.next();
1117                 String value = (String) model.getProperties().get( key );
1118                 serializer.startTag( NAMESPACE, key ).text( value ).endTag( NAMESPACE, key );
1119             }
1120             serializer.endTag( NAMESPACE, "properties" );
1121         }
1122         if ( model.getDependencyManagement() != null )
1123         {
1124             writeDependencyManagement( (DependencyManagement) model.getDependencyManagement(), "dependencyManagement", serializer );
1125         }
1126         if ( ( model.getDependencies() != null ) && ( model.getDependencies().size() > 0 ) )
1127         {
1128             serializer.startTag( NAMESPACE, "dependencies" );
1129             for ( Iterator iter = model.getDependencies().iterator(); iter.hasNext(); )
1130             {
1131                 Dependency o = (Dependency) iter.next();
1132                 writeDependency( o, "dependency", serializer );
1133             }
1134             serializer.endTag( NAMESPACE, "dependencies" );
1135         }
1136         if ( ( model.getRepositories() != null ) && ( model.getRepositories().size() > 0 ) )
1137         {
1138             serializer.startTag( NAMESPACE, "repositories" );
1139             for ( Iterator iter = model.getRepositories().iterator(); iter.hasNext(); )
1140             {
1141                 Repository o = (Repository) iter.next();
1142                 writeRepository( o, "repository", serializer );
1143             }
1144             serializer.endTag( NAMESPACE, "repositories" );
1145         }
1146         if ( ( model.getPluginRepositories() != null ) && ( model.getPluginRepositories().size() > 0 ) )
1147         {
1148             serializer.startTag( NAMESPACE, "pluginRepositories" );
1149             for ( Iterator iter = model.getPluginRepositories().iterator(); iter.hasNext(); )
1150             {
1151                 Repository o = (Repository) iter.next();
1152                 writeRepository( o, "pluginRepository", serializer );
1153             }
1154             serializer.endTag( NAMESPACE, "pluginRepositories" );
1155         }
1156         if ( model.getBuild() != null )
1157         {
1158             writeBuild( (Build) model.getBuild(), "build", serializer );
1159         }
1160         if ( model.getReports() != null )
1161         {
1162             ((Xpp3Dom) model.getReports()).writeToSerializer( NAMESPACE, serializer );
1163         }
1164         if ( model.getReporting() != null )
1165         {
1166             writeReporting( (Reporting) model.getReporting(), "reporting", serializer );
1167         }
1168         if ( ( model.getProfiles() != null ) && ( model.getProfiles().size() > 0 ) )
1169         {
1170             serializer.startTag( NAMESPACE, "profiles" );
1171             for ( Iterator iter = model.getProfiles().iterator(); iter.hasNext(); )
1172             {
1173                 Profile o = (Profile) iter.next();
1174                 writeProfile( o, "profile", serializer );
1175             }
1176             serializer.endTag( NAMESPACE, "profiles" );
1177         }
1178         serializer.endTag( NAMESPACE, tagName );
1179     } //-- void writeModel( Model, String, XmlSerializer )
1180 
1181     /**
1182      * Method writeModelBase.
1183      * 
1184      * @param modelBase a modelBase object.
1185      * @param serializer a serializer object.
1186      * @param tagName a tagName object.
1187      * @throws java.io.IOException java.io.IOException if any.
1188      */
1189     private void writeModelBase( ModelBase modelBase, String tagName, XmlSerializer serializer )
1190         throws java.io.IOException
1191     {
1192         serializer.startTag( NAMESPACE, tagName );
1193         if ( ( modelBase.getModules() != null ) && ( modelBase.getModules().size() > 0 ) )
1194         {
1195             serializer.startTag( NAMESPACE, "modules" );
1196             for ( Iterator iter = modelBase.getModules().iterator(); iter.hasNext(); )
1197             {
1198                 String module = (String) iter.next();
1199                 serializer.startTag( NAMESPACE, "module" ).text( module ).endTag( NAMESPACE, "module" );
1200             }
1201             serializer.endTag( NAMESPACE, "modules" );
1202         }
1203         if ( modelBase.getDistributionManagement() != null )
1204         {
1205             writeDistributionManagement( (DistributionManagement) modelBase.getDistributionManagement(), "distributionManagement", serializer );
1206         }
1207         if ( ( modelBase.getProperties() != null ) && ( modelBase.getProperties().size() > 0 ) )
1208         {
1209             serializer.startTag( NAMESPACE, "properties" );
1210             for ( Iterator iter = modelBase.getProperties().keySet().iterator(); iter.hasNext(); )
1211             {
1212                 String key = (String) iter.next();
1213                 String value = (String) modelBase.getProperties().get( key );
1214                 serializer.startTag( NAMESPACE, key ).text( value ).endTag( NAMESPACE, key );
1215             }
1216             serializer.endTag( NAMESPACE, "properties" );
1217         }
1218         if ( modelBase.getDependencyManagement() != null )
1219         {
1220             writeDependencyManagement( (DependencyManagement) modelBase.getDependencyManagement(), "dependencyManagement", serializer );
1221         }
1222         if ( ( modelBase.getDependencies() != null ) && ( modelBase.getDependencies().size() > 0 ) )
1223         {
1224             serializer.startTag( NAMESPACE, "dependencies" );
1225             for ( Iterator iter = modelBase.getDependencies().iterator(); iter.hasNext(); )
1226             {
1227                 Dependency o = (Dependency) iter.next();
1228                 writeDependency( o, "dependency", serializer );
1229             }
1230             serializer.endTag( NAMESPACE, "dependencies" );
1231         }
1232         if ( ( modelBase.getRepositories() != null ) && ( modelBase.getRepositories().size() > 0 ) )
1233         {
1234             serializer.startTag( NAMESPACE, "repositories" );
1235             for ( Iterator iter = modelBase.getRepositories().iterator(); iter.hasNext(); )
1236             {
1237                 Repository o = (Repository) iter.next();
1238                 writeRepository( o, "repository", serializer );
1239             }
1240             serializer.endTag( NAMESPACE, "repositories" );
1241         }
1242         if ( ( modelBase.getPluginRepositories() != null ) && ( modelBase.getPluginRepositories().size() > 0 ) )
1243         {
1244             serializer.startTag( NAMESPACE, "pluginRepositories" );
1245             for ( Iterator iter = modelBase.getPluginRepositories().iterator(); iter.hasNext(); )
1246             {
1247                 Repository o = (Repository) iter.next();
1248                 writeRepository( o, "pluginRepository", serializer );
1249             }
1250             serializer.endTag( NAMESPACE, "pluginRepositories" );
1251         }
1252         if ( modelBase.getReports() != null )
1253         {
1254             ((Xpp3Dom) modelBase.getReports()).writeToSerializer( NAMESPACE, serializer );
1255         }
1256         if ( modelBase.getReporting() != null )
1257         {
1258             writeReporting( (Reporting) modelBase.getReporting(), "reporting", serializer );
1259         }
1260         serializer.endTag( NAMESPACE, tagName );
1261     } //-- void writeModelBase( ModelBase, String, XmlSerializer )
1262 
1263     /**
1264      * Method writeNotifier.
1265      * 
1266      * @param notifier a notifier object.
1267      * @param serializer a serializer object.
1268      * @param tagName a tagName object.
1269      * @throws java.io.IOException java.io.IOException if any.
1270      */
1271     private void writeNotifier( Notifier notifier, String tagName, XmlSerializer serializer )
1272         throws java.io.IOException
1273     {
1274         serializer.startTag( NAMESPACE, tagName );
1275         if ( ( notifier.getType() != null ) && !notifier.getType().equals( "mail" ) )
1276         {
1277             serializer.startTag( NAMESPACE, "type" ).text( notifier.getType() ).endTag( NAMESPACE, "type" );
1278         }
1279         if ( notifier.isSendOnError() != true )
1280         {
1281             serializer.startTag( NAMESPACE, "sendOnError" ).text( String.valueOf( notifier.isSendOnError() ) ).endTag( NAMESPACE, "sendOnError" );
1282         }
1283         if ( notifier.isSendOnFailure() != true )
1284         {
1285             serializer.startTag( NAMESPACE, "sendOnFailure" ).text( String.valueOf( notifier.isSendOnFailure() ) ).endTag( NAMESPACE, "sendOnFailure" );
1286         }
1287         if ( notifier.isSendOnSuccess() != true )
1288         {
1289             serializer.startTag( NAMESPACE, "sendOnSuccess" ).text( String.valueOf( notifier.isSendOnSuccess() ) ).endTag( NAMESPACE, "sendOnSuccess" );
1290         }
1291         if ( notifier.isSendOnWarning() != true )
1292         {
1293             serializer.startTag( NAMESPACE, "sendOnWarning" ).text( String.valueOf( notifier.isSendOnWarning() ) ).endTag( NAMESPACE, "sendOnWarning" );
1294         }
1295         if ( notifier.getAddress() != null )
1296         {
1297             serializer.startTag( NAMESPACE, "address" ).text( notifier.getAddress() ).endTag( NAMESPACE, "address" );
1298         }
1299         if ( ( notifier.getConfiguration() != null ) && ( notifier.getConfiguration().size() > 0 ) )
1300         {
1301             serializer.startTag( NAMESPACE, "configuration" );
1302             for ( Iterator iter = notifier.getConfiguration().keySet().iterator(); iter.hasNext(); )
1303             {
1304                 String key = (String) iter.next();
1305                 String value = (String) notifier.getConfiguration().get( key );
1306                 serializer.startTag( NAMESPACE, key ).text( value ).endTag( NAMESPACE, key );
1307             }
1308             serializer.endTag( NAMESPACE, "configuration" );
1309         }
1310         serializer.endTag( NAMESPACE, tagName );
1311     } //-- void writeNotifier( Notifier, String, XmlSerializer )
1312 
1313     /**
1314      * Method writeOrganization.
1315      * 
1316      * @param organization a organization object.
1317      * @param serializer a serializer object.
1318      * @param tagName a tagName object.
1319      * @throws java.io.IOException java.io.IOException if any.
1320      */
1321     private void writeOrganization( Organization organization, String tagName, XmlSerializer serializer )
1322         throws java.io.IOException
1323     {
1324         serializer.startTag( NAMESPACE, tagName );
1325         if ( organization.getName() != null )
1326         {
1327             serializer.startTag( NAMESPACE, "name" ).text( organization.getName() ).endTag( NAMESPACE, "name" );
1328         }
1329         if ( organization.getUrl() != null )
1330         {
1331             serializer.startTag( NAMESPACE, "url" ).text( organization.getUrl() ).endTag( NAMESPACE, "url" );
1332         }
1333         serializer.endTag( NAMESPACE, tagName );
1334     } //-- void writeOrganization( Organization, String, XmlSerializer )
1335 
1336     /**
1337      * Method writeParent.
1338      * 
1339      * @param parent a parent object.
1340      * @param serializer a serializer object.
1341      * @param tagName a tagName object.
1342      * @throws java.io.IOException java.io.IOException if any.
1343      */
1344     private void writeParent( Parent parent, String tagName, XmlSerializer serializer )
1345         throws java.io.IOException
1346     {
1347         serializer.startTag( NAMESPACE, tagName );
1348         if ( parent.getGroupId() != null )
1349         {
1350             serializer.startTag( NAMESPACE, "groupId" ).text( parent.getGroupId() ).endTag( NAMESPACE, "groupId" );
1351         }
1352         if ( parent.getArtifactId() != null )
1353         {
1354             serializer.startTag( NAMESPACE, "artifactId" ).text( parent.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
1355         }
1356         if ( parent.getVersion() != null )
1357         {
1358             serializer.startTag( NAMESPACE, "version" ).text( parent.getVersion() ).endTag( NAMESPACE, "version" );
1359         }
1360         if ( ( parent.getRelativePath() != null ) && !parent.getRelativePath().equals( "../pom.xml" ) )
1361         {
1362             serializer.startTag( NAMESPACE, "relativePath" ).text( parent.getRelativePath() ).endTag( NAMESPACE, "relativePath" );
1363         }
1364         serializer.endTag( NAMESPACE, tagName );
1365     } //-- void writeParent( Parent, String, XmlSerializer )
1366 
1367     /**
1368      * Method writePatternSet.
1369      * 
1370      * @param patternSet a patternSet object.
1371      * @param serializer a serializer object.
1372      * @param tagName a tagName object.
1373      * @throws java.io.IOException java.io.IOException if any.
1374      */
1375     private void writePatternSet( PatternSet patternSet, String tagName, XmlSerializer serializer )
1376         throws java.io.IOException
1377     {
1378         serializer.startTag( NAMESPACE, tagName );
1379         if ( ( patternSet.getIncludes() != null ) && ( patternSet.getIncludes().size() > 0 ) )
1380         {
1381             serializer.startTag( NAMESPACE, "includes" );
1382             for ( Iterator iter = patternSet.getIncludes().iterator(); iter.hasNext(); )
1383             {
1384                 String include = (String) iter.next();
1385                 serializer.startTag( NAMESPACE, "include" ).text( include ).endTag( NAMESPACE, "include" );
1386             }
1387             serializer.endTag( NAMESPACE, "includes" );
1388         }
1389         if ( ( patternSet.getExcludes() != null ) && ( patternSet.getExcludes().size() > 0 ) )
1390         {
1391             serializer.startTag( NAMESPACE, "excludes" );
1392             for ( Iterator iter = patternSet.getExcludes().iterator(); iter.hasNext(); )
1393             {
1394                 String exclude = (String) iter.next();
1395                 serializer.startTag( NAMESPACE, "exclude" ).text( exclude ).endTag( NAMESPACE, "exclude" );
1396             }
1397             serializer.endTag( NAMESPACE, "excludes" );
1398         }
1399         serializer.endTag( NAMESPACE, tagName );
1400     } //-- void writePatternSet( PatternSet, String, XmlSerializer )
1401 
1402     /**
1403      * Method writePlugin.
1404      * 
1405      * @param plugin a plugin object.
1406      * @param serializer a serializer object.
1407      * @param tagName a tagName object.
1408      * @throws java.io.IOException java.io.IOException if any.
1409      */
1410     private void writePlugin( Plugin plugin, String tagName, XmlSerializer serializer )
1411         throws java.io.IOException
1412     {
1413         serializer.startTag( NAMESPACE, tagName );
1414         if ( ( plugin.getGroupId() != null ) && !plugin.getGroupId().equals( "org.apache.maven.plugins" ) )
1415         {
1416             serializer.startTag( NAMESPACE, "groupId" ).text( plugin.getGroupId() ).endTag( NAMESPACE, "groupId" );
1417         }
1418         if ( plugin.getArtifactId() != null )
1419         {
1420             serializer.startTag( NAMESPACE, "artifactId" ).text( plugin.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
1421         }
1422         if ( plugin.getVersion() != null )
1423         {
1424             serializer.startTag( NAMESPACE, "version" ).text( plugin.getVersion() ).endTag( NAMESPACE, "version" );
1425         }
1426         if ( plugin.getExtensions() != null )
1427         {
1428             serializer.startTag( NAMESPACE, "extensions" ).text( plugin.getExtensions() ).endTag( NAMESPACE, "extensions" );
1429         }
1430         if ( ( plugin.getExecutions() != null ) && ( plugin.getExecutions().size() > 0 ) )
1431         {
1432             serializer.startTag( NAMESPACE, "executions" );
1433             for ( Iterator iter = plugin.getExecutions().iterator(); iter.hasNext(); )
1434             {
1435                 PluginExecution o = (PluginExecution) iter.next();
1436                 writePluginExecution( o, "execution", serializer );
1437             }
1438             serializer.endTag( NAMESPACE, "executions" );
1439         }
1440         if ( ( plugin.getDependencies() != null ) && ( plugin.getDependencies().size() > 0 ) )
1441         {
1442             serializer.startTag( NAMESPACE, "dependencies" );
1443             for ( Iterator iter = plugin.getDependencies().iterator(); iter.hasNext(); )
1444             {
1445                 Dependency o = (Dependency) iter.next();
1446                 writeDependency( o, "dependency", serializer );
1447             }
1448             serializer.endTag( NAMESPACE, "dependencies" );
1449         }
1450         if ( plugin.getGoals() != null )
1451         {
1452             ((Xpp3Dom) plugin.getGoals()).writeToSerializer( NAMESPACE, serializer );
1453         }
1454         if ( plugin.getInherited() != null )
1455         {
1456             serializer.startTag( NAMESPACE, "inherited" ).text( plugin.getInherited() ).endTag( NAMESPACE, "inherited" );
1457         }
1458         if ( plugin.getConfiguration() != null )
1459         {
1460             ((Xpp3Dom) plugin.getConfiguration()).writeToSerializer( NAMESPACE, serializer );
1461         }
1462         serializer.endTag( NAMESPACE, tagName );
1463     } //-- void writePlugin( Plugin, String, XmlSerializer )
1464 
1465     /**
1466      * Method writePluginConfiguration.
1467      * 
1468      * @param pluginConfiguration a pluginConfiguration object.
1469      * @param serializer a serializer object.
1470      * @param tagName a tagName object.
1471      * @throws java.io.IOException java.io.IOException if any.
1472      */
1473     private void writePluginConfiguration( PluginConfiguration pluginConfiguration, String tagName, XmlSerializer serializer )
1474         throws java.io.IOException
1475     {
1476         serializer.startTag( NAMESPACE, tagName );
1477         if ( pluginConfiguration.getPluginManagement() != null )
1478         {
1479             writePluginManagement( (PluginManagement) pluginConfiguration.getPluginManagement(), "pluginManagement", serializer );
1480         }
1481         if ( ( pluginConfiguration.getPlugins() != null ) && ( pluginConfiguration.getPlugins().size() > 0 ) )
1482         {
1483             serializer.startTag( NAMESPACE, "plugins" );
1484             for ( Iterator iter = pluginConfiguration.getPlugins().iterator(); iter.hasNext(); )
1485             {
1486                 Plugin o = (Plugin) iter.next();
1487                 writePlugin( o, "plugin", serializer );
1488             }
1489             serializer.endTag( NAMESPACE, "plugins" );
1490         }
1491         serializer.endTag( NAMESPACE, tagName );
1492     } //-- void writePluginConfiguration( PluginConfiguration, String, XmlSerializer )
1493 
1494     /**
1495      * Method writePluginContainer.
1496      * 
1497      * @param pluginContainer a pluginContainer object.
1498      * @param serializer a serializer object.
1499      * @param tagName a tagName object.
1500      * @throws java.io.IOException java.io.IOException if any.
1501      */
1502     private void writePluginContainer( PluginContainer pluginContainer, String tagName, XmlSerializer serializer )
1503         throws java.io.IOException
1504     {
1505         serializer.startTag( NAMESPACE, tagName );
1506         if ( ( pluginContainer.getPlugins() != null ) && ( pluginContainer.getPlugins().size() > 0 ) )
1507         {
1508             serializer.startTag( NAMESPACE, "plugins" );
1509             for ( Iterator iter = pluginContainer.getPlugins().iterator(); iter.hasNext(); )
1510             {
1511                 Plugin o = (Plugin) iter.next();
1512                 writePlugin( o, "plugin", serializer );
1513             }
1514             serializer.endTag( NAMESPACE, "plugins" );
1515         }
1516         serializer.endTag( NAMESPACE, tagName );
1517     } //-- void writePluginContainer( PluginContainer, String, XmlSerializer )
1518 
1519     /**
1520      * Method writePluginExecution.
1521      * 
1522      * @param pluginExecution a pluginExecution object.
1523      * @param serializer a serializer object.
1524      * @param tagName a tagName object.
1525      * @throws java.io.IOException java.io.IOException if any.
1526      */
1527     private void writePluginExecution( PluginExecution pluginExecution, String tagName, XmlSerializer serializer )
1528         throws java.io.IOException
1529     {
1530         serializer.startTag( NAMESPACE, tagName );
1531         if ( ( pluginExecution.getId() != null ) && !pluginExecution.getId().equals( "default" ) )
1532         {
1533             serializer.startTag( NAMESPACE, "id" ).text( pluginExecution.getId() ).endTag( NAMESPACE, "id" );
1534         }
1535         if ( pluginExecution.getPhase() != null )
1536         {
1537             serializer.startTag( NAMESPACE, "phase" ).text( pluginExecution.getPhase() ).endTag( NAMESPACE, "phase" );
1538         }
1539         if ( ( pluginExecution.getGoals() != null ) && ( pluginExecution.getGoals().size() > 0 ) )
1540         {
1541             serializer.startTag( NAMESPACE, "goals" );
1542             for ( Iterator iter = pluginExecution.getGoals().iterator(); iter.hasNext(); )
1543             {
1544                 String goal = (String) iter.next();
1545                 serializer.startTag( NAMESPACE, "goal" ).text( goal ).endTag( NAMESPACE, "goal" );
1546             }
1547             serializer.endTag( NAMESPACE, "goals" );
1548         }
1549         if ( pluginExecution.getInherited() != null )
1550         {
1551             serializer.startTag( NAMESPACE, "inherited" ).text( pluginExecution.getInherited() ).endTag( NAMESPACE, "inherited" );
1552         }
1553         if ( pluginExecution.getConfiguration() != null )
1554         {
1555             ((Xpp3Dom) pluginExecution.getConfiguration()).writeToSerializer( NAMESPACE, serializer );
1556         }
1557         serializer.endTag( NAMESPACE, tagName );
1558     } //-- void writePluginExecution( PluginExecution, String, XmlSerializer )
1559 
1560     /**
1561      * Method writePluginManagement.
1562      * 
1563      * @param pluginManagement a pluginManagement object.
1564      * @param serializer a serializer object.
1565      * @param tagName a tagName object.
1566      * @throws java.io.IOException java.io.IOException if any.
1567      */
1568     private void writePluginManagement( PluginManagement pluginManagement, String tagName, XmlSerializer serializer )
1569         throws java.io.IOException
1570     {
1571         serializer.startTag( NAMESPACE, tagName );
1572         if ( ( pluginManagement.getPlugins() != null ) && ( pluginManagement.getPlugins().size() > 0 ) )
1573         {
1574             serializer.startTag( NAMESPACE, "plugins" );
1575             for ( Iterator iter = pluginManagement.getPlugins().iterator(); iter.hasNext(); )
1576             {
1577                 Plugin o = (Plugin) iter.next();
1578                 writePlugin( o, "plugin", serializer );
1579             }
1580             serializer.endTag( NAMESPACE, "plugins" );
1581         }
1582         serializer.endTag( NAMESPACE, tagName );
1583     } //-- void writePluginManagement( PluginManagement, String, XmlSerializer )
1584 
1585     /**
1586      * Method writePrerequisites.
1587      * 
1588      * @param prerequisites a prerequisites object.
1589      * @param serializer a serializer object.
1590      * @param tagName a tagName object.
1591      * @throws java.io.IOException java.io.IOException if any.
1592      */
1593     private void writePrerequisites( Prerequisites prerequisites, String tagName, XmlSerializer serializer )
1594         throws java.io.IOException
1595     {
1596         serializer.startTag( NAMESPACE, tagName );
1597         if ( ( prerequisites.getMaven() != null ) && !prerequisites.getMaven().equals( "2.0" ) )
1598         {
1599             serializer.startTag( NAMESPACE, "maven" ).text( prerequisites.getMaven() ).endTag( NAMESPACE, "maven" );
1600         }
1601         serializer.endTag( NAMESPACE, tagName );
1602     } //-- void writePrerequisites( Prerequisites, String, XmlSerializer )
1603 
1604     /**
1605      * Method writeProfile.
1606      * 
1607      * @param profile a profile object.
1608      * @param serializer a serializer object.
1609      * @param tagName a tagName object.
1610      * @throws java.io.IOException java.io.IOException if any.
1611      */
1612     private void writeProfile( Profile profile, String tagName, XmlSerializer serializer )
1613         throws java.io.IOException
1614     {
1615         serializer.startTag( NAMESPACE, tagName );
1616         if ( ( profile.getId() != null ) && !profile.getId().equals( "default" ) )
1617         {
1618             serializer.startTag( NAMESPACE, "id" ).text( profile.getId() ).endTag( NAMESPACE, "id" );
1619         }
1620         if ( profile.getActivation() != null )
1621         {
1622             writeActivation( (Activation) profile.getActivation(), "activation", serializer );
1623         }
1624         if ( profile.getBuild() != null )
1625         {
1626             writeBuildBase( (BuildBase) profile.getBuild(), "build", serializer );
1627         }
1628         if ( ( profile.getModules() != null ) && ( profile.getModules().size() > 0 ) )
1629         {
1630             serializer.startTag( NAMESPACE, "modules" );
1631             for ( Iterator iter = profile.getModules().iterator(); iter.hasNext(); )
1632             {
1633                 String module = (String) iter.next();
1634                 serializer.startTag( NAMESPACE, "module" ).text( module ).endTag( NAMESPACE, "module" );
1635             }
1636             serializer.endTag( NAMESPACE, "modules" );
1637         }
1638         if ( profile.getDistributionManagement() != null )
1639         {
1640             writeDistributionManagement( (DistributionManagement) profile.getDistributionManagement(), "distributionManagement", serializer );
1641         }
1642         if ( ( profile.getProperties() != null ) && ( profile.getProperties().size() > 0 ) )
1643         {
1644             serializer.startTag( NAMESPACE, "properties" );
1645             for ( Iterator iter = profile.getProperties().keySet().iterator(); iter.hasNext(); )
1646             {
1647                 String key = (String) iter.next();
1648                 String value = (String) profile.getProperties().get( key );
1649                 serializer.startTag( NAMESPACE, key ).text( value ).endTag( NAMESPACE, key );
1650             }
1651             serializer.endTag( NAMESPACE, "properties" );
1652         }
1653         if ( profile.getDependencyManagement() != null )
1654         {
1655             writeDependencyManagement( (DependencyManagement) profile.getDependencyManagement(), "dependencyManagement", serializer );
1656         }
1657         if ( ( profile.getDependencies() != null ) && ( profile.getDependencies().size() > 0 ) )
1658         {
1659             serializer.startTag( NAMESPACE, "dependencies" );
1660             for ( Iterator iter = profile.getDependencies().iterator(); iter.hasNext(); )
1661             {
1662                 Dependency o = (Dependency) iter.next();
1663                 writeDependency( o, "dependency", serializer );
1664             }
1665             serializer.endTag( NAMESPACE, "dependencies" );
1666         }
1667         if ( ( profile.getRepositories() != null ) && ( profile.getRepositories().size() > 0 ) )
1668         {
1669             serializer.startTag( NAMESPACE, "repositories" );
1670             for ( Iterator iter = profile.getRepositories().iterator(); iter.hasNext(); )
1671             {
1672                 Repository o = (Repository) iter.next();
1673                 writeRepository( o, "repository", serializer );
1674             }
1675             serializer.endTag( NAMESPACE, "repositories" );
1676         }
1677         if ( ( profile.getPluginRepositories() != null ) && ( profile.getPluginRepositories().size() > 0 ) )
1678         {
1679             serializer.startTag( NAMESPACE, "pluginRepositories" );
1680             for ( Iterator iter = profile.getPluginRepositories().iterator(); iter.hasNext(); )
1681             {
1682                 Repository o = (Repository) iter.next();
1683                 writeRepository( o, "pluginRepository", serializer );
1684             }
1685             serializer.endTag( NAMESPACE, "pluginRepositories" );
1686         }
1687         if ( profile.getReports() != null )
1688         {
1689             ((Xpp3Dom) profile.getReports()).writeToSerializer( NAMESPACE, serializer );
1690         }
1691         if ( profile.getReporting() != null )
1692         {
1693             writeReporting( (Reporting) profile.getReporting(), "reporting", serializer );
1694         }
1695         serializer.endTag( NAMESPACE, tagName );
1696     } //-- void writeProfile( Profile, String, XmlSerializer )
1697 
1698     /**
1699      * Method writeRelocation.
1700      * 
1701      * @param relocation a relocation object.
1702      * @param serializer a serializer object.
1703      * @param tagName a tagName object.
1704      * @throws java.io.IOException java.io.IOException if any.
1705      */
1706     private void writeRelocation( Relocation relocation, String tagName, XmlSerializer serializer )
1707         throws java.io.IOException
1708     {
1709         serializer.startTag( NAMESPACE, tagName );
1710         if ( relocation.getGroupId() != null )
1711         {
1712             serializer.startTag( NAMESPACE, "groupId" ).text( relocation.getGroupId() ).endTag( NAMESPACE, "groupId" );
1713         }
1714         if ( relocation.getArtifactId() != null )
1715         {
1716             serializer.startTag( NAMESPACE, "artifactId" ).text( relocation.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
1717         }
1718         if ( relocation.getVersion() != null )
1719         {
1720             serializer.startTag( NAMESPACE, "version" ).text( relocation.getVersion() ).endTag( NAMESPACE, "version" );
1721         }
1722         if ( relocation.getMessage() != null )
1723         {
1724             serializer.startTag( NAMESPACE, "message" ).text( relocation.getMessage() ).endTag( NAMESPACE, "message" );
1725         }
1726         serializer.endTag( NAMESPACE, tagName );
1727     } //-- void writeRelocation( Relocation, String, XmlSerializer )
1728 
1729     /**
1730      * Method writeReportPlugin.
1731      * 
1732      * @param reportPlugin a reportPlugin object.
1733      * @param serializer a serializer object.
1734      * @param tagName a tagName object.
1735      * @throws java.io.IOException java.io.IOException if any.
1736      */
1737     private void writeReportPlugin( ReportPlugin reportPlugin, String tagName, XmlSerializer serializer )
1738         throws java.io.IOException
1739     {
1740         serializer.startTag( NAMESPACE, tagName );
1741         if ( ( reportPlugin.getGroupId() != null ) && !reportPlugin.getGroupId().equals( "org.apache.maven.plugins" ) )
1742         {
1743             serializer.startTag( NAMESPACE, "groupId" ).text( reportPlugin.getGroupId() ).endTag( NAMESPACE, "groupId" );
1744         }
1745         if ( reportPlugin.getArtifactId() != null )
1746         {
1747             serializer.startTag( NAMESPACE, "artifactId" ).text( reportPlugin.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
1748         }
1749         if ( reportPlugin.getVersion() != null )
1750         {
1751             serializer.startTag( NAMESPACE, "version" ).text( reportPlugin.getVersion() ).endTag( NAMESPACE, "version" );
1752         }
1753         if ( ( reportPlugin.getReportSets() != null ) && ( reportPlugin.getReportSets().size() > 0 ) )
1754         {
1755             serializer.startTag( NAMESPACE, "reportSets" );
1756             for ( Iterator iter = reportPlugin.getReportSets().iterator(); iter.hasNext(); )
1757             {
1758                 ReportSet o = (ReportSet) iter.next();
1759                 writeReportSet( o, "reportSet", serializer );
1760             }
1761             serializer.endTag( NAMESPACE, "reportSets" );
1762         }
1763         if ( reportPlugin.getInherited() != null )
1764         {
1765             serializer.startTag( NAMESPACE, "inherited" ).text( reportPlugin.getInherited() ).endTag( NAMESPACE, "inherited" );
1766         }
1767         if ( reportPlugin.getConfiguration() != null )
1768         {
1769             ((Xpp3Dom) reportPlugin.getConfiguration()).writeToSerializer( NAMESPACE, serializer );
1770         }
1771         serializer.endTag( NAMESPACE, tagName );
1772     } //-- void writeReportPlugin( ReportPlugin, String, XmlSerializer )
1773 
1774     /**
1775      * Method writeReportSet.
1776      * 
1777      * @param reportSet a reportSet object.
1778      * @param serializer a serializer object.
1779      * @param tagName a tagName object.
1780      * @throws java.io.IOException java.io.IOException if any.
1781      */
1782     private void writeReportSet( ReportSet reportSet, String tagName, XmlSerializer serializer )
1783         throws java.io.IOException
1784     {
1785         serializer.startTag( NAMESPACE, tagName );
1786         if ( ( reportSet.getId() != null ) && !reportSet.getId().equals( "default" ) )
1787         {
1788             serializer.startTag( NAMESPACE, "id" ).text( reportSet.getId() ).endTag( NAMESPACE, "id" );
1789         }
1790         if ( ( reportSet.getReports() != null ) && ( reportSet.getReports().size() > 0 ) )
1791         {
1792             serializer.startTag( NAMESPACE, "reports" );
1793             for ( Iterator iter = reportSet.getReports().iterator(); iter.hasNext(); )
1794             {
1795                 String report = (String) iter.next();
1796                 serializer.startTag( NAMESPACE, "report" ).text( report ).endTag( NAMESPACE, "report" );
1797             }
1798             serializer.endTag( NAMESPACE, "reports" );
1799         }
1800         if ( reportSet.getInherited() != null )
1801         {
1802             serializer.startTag( NAMESPACE, "inherited" ).text( reportSet.getInherited() ).endTag( NAMESPACE, "inherited" );
1803         }
1804         if ( reportSet.getConfiguration() != null )
1805         {
1806             ((Xpp3Dom) reportSet.getConfiguration()).writeToSerializer( NAMESPACE, serializer );
1807         }
1808         serializer.endTag( NAMESPACE, tagName );
1809     } //-- void writeReportSet( ReportSet, String, XmlSerializer )
1810 
1811     /**
1812      * Method writeReporting.
1813      * 
1814      * @param reporting a reporting object.
1815      * @param serializer a serializer object.
1816      * @param tagName a tagName object.
1817      * @throws java.io.IOException java.io.IOException if any.
1818      */
1819     private void writeReporting( Reporting reporting, String tagName, XmlSerializer serializer )
1820         throws java.io.IOException
1821     {
1822         serializer.startTag( NAMESPACE, tagName );
1823         if ( reporting.getExcludeDefaults() != null )
1824         {
1825             serializer.startTag( NAMESPACE, "excludeDefaults" ).text( reporting.getExcludeDefaults() ).endTag( NAMESPACE, "excludeDefaults" );
1826         }
1827         if ( reporting.getOutputDirectory() != null )
1828         {
1829             serializer.startTag( NAMESPACE, "outputDirectory" ).text( reporting.getOutputDirectory() ).endTag( NAMESPACE, "outputDirectory" );
1830         }
1831         if ( ( reporting.getPlugins() != null ) && ( reporting.getPlugins().size() > 0 ) )
1832         {
1833             serializer.startTag( NAMESPACE, "plugins" );
1834             for ( Iterator iter = reporting.getPlugins().iterator(); iter.hasNext(); )
1835             {
1836                 ReportPlugin o = (ReportPlugin) iter.next();
1837                 writeReportPlugin( o, "plugin", serializer );
1838             }
1839             serializer.endTag( NAMESPACE, "plugins" );
1840         }
1841         serializer.endTag( NAMESPACE, tagName );
1842     } //-- void writeReporting( Reporting, String, XmlSerializer )
1843 
1844     /**
1845      * Method writeRepository.
1846      * 
1847      * @param repository a repository object.
1848      * @param serializer a serializer object.
1849      * @param tagName a tagName object.
1850      * @throws java.io.IOException java.io.IOException if any.
1851      */
1852     private void writeRepository( Repository repository, String tagName, XmlSerializer serializer )
1853         throws java.io.IOException
1854     {
1855         serializer.startTag( NAMESPACE, tagName );
1856         if ( repository.getReleases() != null )
1857         {
1858             writeRepositoryPolicy( (RepositoryPolicy) repository.getReleases(), "releases", serializer );
1859         }
1860         if ( repository.getSnapshots() != null )
1861         {
1862             writeRepositoryPolicy( (RepositoryPolicy) repository.getSnapshots(), "snapshots", serializer );
1863         }
1864         if ( repository.getId() != null )
1865         {
1866             serializer.startTag( NAMESPACE, "id" ).text( repository.getId() ).endTag( NAMESPACE, "id" );
1867         }
1868         if ( repository.getName() != null )
1869         {
1870             serializer.startTag( NAMESPACE, "name" ).text( repository.getName() ).endTag( NAMESPACE, "name" );
1871         }
1872         if ( repository.getUrl() != null )
1873         {
1874             serializer.startTag( NAMESPACE, "url" ).text( repository.getUrl() ).endTag( NAMESPACE, "url" );
1875         }
1876         if ( ( repository.getLayout() != null ) && !repository.getLayout().equals( "default" ) )
1877         {
1878             serializer.startTag( NAMESPACE, "layout" ).text( repository.getLayout() ).endTag( NAMESPACE, "layout" );
1879         }
1880         serializer.endTag( NAMESPACE, tagName );
1881     } //-- void writeRepository( Repository, String, XmlSerializer )
1882 
1883     /**
1884      * Method writeRepositoryBase.
1885      * 
1886      * @param repositoryBase a repositoryBase object.
1887      * @param serializer a serializer object.
1888      * @param tagName a tagName object.
1889      * @throws java.io.IOException java.io.IOException if any.
1890      */
1891     private void writeRepositoryBase( RepositoryBase repositoryBase, String tagName, XmlSerializer serializer )
1892         throws java.io.IOException
1893     {
1894         serializer.startTag( NAMESPACE, tagName );
1895         if ( repositoryBase.getId() != null )
1896         {
1897             serializer.startTag( NAMESPACE, "id" ).text( repositoryBase.getId() ).endTag( NAMESPACE, "id" );
1898         }
1899         if ( repositoryBase.getName() != null )
1900         {
1901             serializer.startTag( NAMESPACE, "name" ).text( repositoryBase.getName() ).endTag( NAMESPACE, "name" );
1902         }
1903         if ( repositoryBase.getUrl() != null )
1904         {
1905             serializer.startTag( NAMESPACE, "url" ).text( repositoryBase.getUrl() ).endTag( NAMESPACE, "url" );
1906         }
1907         if ( ( repositoryBase.getLayout() != null ) && !repositoryBase.getLayout().equals( "default" ) )
1908         {
1909             serializer.startTag( NAMESPACE, "layout" ).text( repositoryBase.getLayout() ).endTag( NAMESPACE, "layout" );
1910         }
1911         serializer.endTag( NAMESPACE, tagName );
1912     } //-- void writeRepositoryBase( RepositoryBase, String, XmlSerializer )
1913 
1914     /**
1915      * Method writeRepositoryPolicy.
1916      * 
1917      * @param repositoryPolicy a repositoryPolicy object.
1918      * @param serializer a serializer object.
1919      * @param tagName a tagName object.
1920      * @throws java.io.IOException java.io.IOException if any.
1921      */
1922     private void writeRepositoryPolicy( RepositoryPolicy repositoryPolicy, String tagName, XmlSerializer serializer )
1923         throws java.io.IOException
1924     {
1925         serializer.startTag( NAMESPACE, tagName );
1926         if ( repositoryPolicy.getEnabled() != null )
1927         {
1928             serializer.startTag( NAMESPACE, "enabled" ).text( repositoryPolicy.getEnabled() ).endTag( NAMESPACE, "enabled" );
1929         }
1930         if ( repositoryPolicy.getUpdatePolicy() != null )
1931         {
1932             serializer.startTag( NAMESPACE, "updatePolicy" ).text( repositoryPolicy.getUpdatePolicy() ).endTag( NAMESPACE, "updatePolicy" );
1933         }
1934         if ( repositoryPolicy.getChecksumPolicy() != null )
1935         {
1936             serializer.startTag( NAMESPACE, "checksumPolicy" ).text( repositoryPolicy.getChecksumPolicy() ).endTag( NAMESPACE, "checksumPolicy" );
1937         }
1938         serializer.endTag( NAMESPACE, tagName );
1939     } //-- void writeRepositoryPolicy( RepositoryPolicy, String, XmlSerializer )
1940 
1941     /**
1942      * Method writeResource.
1943      * 
1944      * @param resource a resource object.
1945      * @param serializer a serializer object.
1946      * @param tagName a tagName object.
1947      * @throws java.io.IOException java.io.IOException if any.
1948      */
1949     private void writeResource( Resource resource, String tagName, XmlSerializer serializer )
1950         throws java.io.IOException
1951     {
1952         serializer.startTag( NAMESPACE, tagName );
1953         if ( resource.getTargetPath() != null )
1954         {
1955             serializer.startTag( NAMESPACE, "targetPath" ).text( resource.getTargetPath() ).endTag( NAMESPACE, "targetPath" );
1956         }
1957         if ( resource.getFiltering() != null )
1958         {
1959             serializer.startTag( NAMESPACE, "filtering" ).text( resource.getFiltering() ).endTag( NAMESPACE, "filtering" );
1960         }
1961         if ( resource.getDirectory() != null )
1962         {
1963             serializer.startTag( NAMESPACE, "directory" ).text( resource.getDirectory() ).endTag( NAMESPACE, "directory" );
1964         }
1965         if ( ( resource.getIncludes() != null ) && ( resource.getIncludes().size() > 0 ) )
1966         {
1967             serializer.startTag( NAMESPACE, "includes" );
1968             for ( Iterator iter = resource.getIncludes().iterator(); iter.hasNext(); )
1969             {
1970                 String include = (String) iter.next();
1971                 serializer.startTag( NAMESPACE, "include" ).text( include ).endTag( NAMESPACE, "include" );
1972             }
1973             serializer.endTag( NAMESPACE, "includes" );
1974         }
1975         if ( ( resource.getExcludes() != null ) && ( resource.getExcludes().size() > 0 ) )
1976         {
1977             serializer.startTag( NAMESPACE, "excludes" );
1978             for ( Iterator iter = resource.getExcludes().iterator(); iter.hasNext(); )
1979             {
1980                 String exclude = (String) iter.next();
1981                 serializer.startTag( NAMESPACE, "exclude" ).text( exclude ).endTag( NAMESPACE, "exclude" );
1982             }
1983             serializer.endTag( NAMESPACE, "excludes" );
1984         }
1985         serializer.endTag( NAMESPACE, tagName );
1986     } //-- void writeResource( Resource, String, XmlSerializer )
1987 
1988     /**
1989      * Method writeScm.
1990      * 
1991      * @param scm a scm object.
1992      * @param serializer a serializer object.
1993      * @param tagName a tagName object.
1994      * @throws java.io.IOException java.io.IOException if any.
1995      */
1996     private void writeScm( Scm scm, String tagName, XmlSerializer serializer )
1997         throws java.io.IOException
1998     {
1999         serializer.startTag( NAMESPACE, tagName );
2000         if ( scm.getChildScmConnectionInheritAppendPath() != null )
2001         {
2002             serializer.attribute( NAMESPACE, "child.scm.connection.inherit.append.path", scm.getChildScmConnectionInheritAppendPath() );
2003         }
2004         if ( scm.getChildScmDeveloperConnectionInheritAppendPath() != null )
2005         {
2006             serializer.attribute( NAMESPACE, "child.scm.developerConnection.inherit.append.path", scm.getChildScmDeveloperConnectionInheritAppendPath() );
2007         }
2008         if ( scm.getChildScmUrlInheritAppendPath() != null )
2009         {
2010             serializer.attribute( NAMESPACE, "child.scm.url.inherit.append.path", scm.getChildScmUrlInheritAppendPath() );
2011         }
2012         if ( scm.getConnection() != null )
2013         {
2014             serializer.startTag( NAMESPACE, "connection" ).text( scm.getConnection() ).endTag( NAMESPACE, "connection" );
2015         }
2016         if ( scm.getDeveloperConnection() != null )
2017         {
2018             serializer.startTag( NAMESPACE, "developerConnection" ).text( scm.getDeveloperConnection() ).endTag( NAMESPACE, "developerConnection" );
2019         }
2020         if ( ( scm.getTag() != null ) && !scm.getTag().equals( "HEAD" ) )
2021         {
2022             serializer.startTag( NAMESPACE, "tag" ).text( scm.getTag() ).endTag( NAMESPACE, "tag" );
2023         }
2024         if ( scm.getUrl() != null )
2025         {
2026             serializer.startTag( NAMESPACE, "url" ).text( scm.getUrl() ).endTag( NAMESPACE, "url" );
2027         }
2028         serializer.endTag( NAMESPACE, tagName );
2029     } //-- void writeScm( Scm, String, XmlSerializer )
2030 
2031     /**
2032      * Method writeSite.
2033      * 
2034      * @param site a site object.
2035      * @param serializer a serializer object.
2036      * @param tagName a tagName object.
2037      * @throws java.io.IOException java.io.IOException if any.
2038      */
2039     private void writeSite( Site site, String tagName, XmlSerializer serializer )
2040         throws java.io.IOException
2041     {
2042         serializer.startTag( NAMESPACE, tagName );
2043         if ( site.getChildSiteUrlInheritAppendPath() != null )
2044         {
2045             serializer.attribute( NAMESPACE, "child.site.url.inherit.append.path", site.getChildSiteUrlInheritAppendPath() );
2046         }
2047         if ( site.getId() != null )
2048         {
2049             serializer.startTag( NAMESPACE, "id" ).text( site.getId() ).endTag( NAMESPACE, "id" );
2050         }
2051         if ( site.getName() != null )
2052         {
2053             serializer.startTag( NAMESPACE, "name" ).text( site.getName() ).endTag( NAMESPACE, "name" );
2054         }
2055         if ( site.getUrl() != null )
2056         {
2057             serializer.startTag( NAMESPACE, "url" ).text( site.getUrl() ).endTag( NAMESPACE, "url" );
2058         }
2059         serializer.endTag( NAMESPACE, tagName );
2060     } //-- void writeSite( Site, String, XmlSerializer )
2061 
2062 }