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