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