View Javadoc

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