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