View Javadoc

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