View Javadoc
1   // =================== DO NOT EDIT THIS FILE ====================
2   // Generated by Modello 2.0.0,
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 MavenXpp3WriterExOldSupport.
66   * 
67   * @version $Revision$ $Date$
68   */
69  @SuppressWarnings( "all" )
70  public class MavenXpp3WriterExOldSupport
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.getArtifactId() != null )
917         {
918             serializer.startTag( NAMESPACE, "artifactId" ).text( exclusion.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
919             writeLocationTracking( exclusion, "artifactId", serializer );
920         }
921         if ( exclusion.getGroupId() != null )
922         {
923             serializer.startTag( NAMESPACE, "groupId" ).text( exclusion.getGroupId() ).endTag( NAMESPACE, "groupId" );
924             writeLocationTracking( exclusion, "groupId", 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 http://maven.apache.org/xsd/maven-4.0.0.xsd" );
1155         if ( model.getModelVersion() != null )
1156         {
1157             serializer.startTag( NAMESPACE, "modelVersion" ).text( model.getModelVersion() ).endTag( NAMESPACE, "modelVersion" );
1158             writeLocationTracking( model, "modelVersion", serializer );
1159         }
1160         if ( model.getParent() != null )
1161         {
1162             writeParent( (Parent) model.getParent(), "parent", serializer );
1163         }
1164         if ( model.getGroupId() != null )
1165         {
1166             serializer.startTag( NAMESPACE, "groupId" ).text( model.getGroupId() ).endTag( NAMESPACE, "groupId" );
1167             writeLocationTracking( model, "groupId", serializer );
1168         }
1169         if ( model.getArtifactId() != null )
1170         {
1171             serializer.startTag( NAMESPACE, "artifactId" ).text( model.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
1172             writeLocationTracking( model, "artifactId", serializer );
1173         }
1174         if ( model.getVersion() != null )
1175         {
1176             serializer.startTag( NAMESPACE, "version" ).text( model.getVersion() ).endTag( NAMESPACE, "version" );
1177             writeLocationTracking( model, "version", serializer );
1178         }
1179         if ( ( model.getPackaging() != null ) && !model.getPackaging().equals( "jar" ) )
1180         {
1181             serializer.startTag( NAMESPACE, "packaging" ).text( model.getPackaging() ).endTag( NAMESPACE, "packaging" );
1182             writeLocationTracking( model, "packaging", serializer );
1183         }
1184         if ( model.getName() != null )
1185         {
1186             serializer.startTag( NAMESPACE, "name" ).text( model.getName() ).endTag( NAMESPACE, "name" );
1187             writeLocationTracking( model, "name", serializer );
1188         }
1189         if ( model.getDescription() != null )
1190         {
1191             serializer.startTag( NAMESPACE, "description" ).text( model.getDescription() ).endTag( NAMESPACE, "description" );
1192             writeLocationTracking( model, "description", serializer );
1193         }
1194         if ( model.getUrl() != null )
1195         {
1196             serializer.startTag( NAMESPACE, "url" ).text( model.getUrl() ).endTag( NAMESPACE, "url" );
1197             writeLocationTracking( model, "url", serializer );
1198         }
1199         if ( model.getInceptionYear() != null )
1200         {
1201             serializer.startTag( NAMESPACE, "inceptionYear" ).text( model.getInceptionYear() ).endTag( NAMESPACE, "inceptionYear" );
1202             writeLocationTracking( model, "inceptionYear", serializer );
1203         }
1204         if ( model.getOrganization() != null )
1205         {
1206             writeOrganization( (Organization) model.getOrganization(), "organization", serializer );
1207         }
1208         if ( ( model.getLicenses() != null ) && ( model.getLicenses().size() > 0 ) )
1209         {
1210             serializer.startTag( NAMESPACE, "licenses" );
1211             for ( Iterator iter = model.getLicenses().iterator(); iter.hasNext(); )
1212             {
1213                 License o = (License) iter.next();
1214                 writeLicense( o, "license", serializer );
1215             }
1216             serializer.endTag( NAMESPACE, "licenses" );
1217         }
1218         if ( ( model.getDevelopers() != null ) && ( model.getDevelopers().size() > 0 ) )
1219         {
1220             serializer.startTag( NAMESPACE, "developers" );
1221             for ( Iterator iter = model.getDevelopers().iterator(); iter.hasNext(); )
1222             {
1223                 Developer o = (Developer) iter.next();
1224                 writeDeveloper( o, "developer", serializer );
1225             }
1226             serializer.endTag( NAMESPACE, "developers" );
1227         }
1228         if ( ( model.getContributors() != null ) && ( model.getContributors().size() > 0 ) )
1229         {
1230             serializer.startTag( NAMESPACE, "contributors" );
1231             for ( Iterator iter = model.getContributors().iterator(); iter.hasNext(); )
1232             {
1233                 Contributor o = (Contributor) iter.next();
1234                 writeContributor( o, "contributor", serializer );
1235             }
1236             serializer.endTag( NAMESPACE, "contributors" );
1237         }
1238         if ( ( model.getMailingLists() != null ) && ( model.getMailingLists().size() > 0 ) )
1239         {
1240             serializer.startTag( NAMESPACE, "mailingLists" );
1241             for ( Iterator iter = model.getMailingLists().iterator(); iter.hasNext(); )
1242             {
1243                 MailingList o = (MailingList) iter.next();
1244                 writeMailingList( o, "mailingList", serializer );
1245             }
1246             serializer.endTag( NAMESPACE, "mailingLists" );
1247         }
1248         if ( model.getPrerequisites() != null )
1249         {
1250             writePrerequisites( (Prerequisites) model.getPrerequisites(), "prerequisites", serializer );
1251         }
1252         if ( ( model.getModules() != null ) && ( model.getModules().size() > 0 ) )
1253         {
1254             serializer.startTag( NAMESPACE, "modules" );
1255             InputLocation location = model.getLocation( "modules" );
1256             int n = 0;
1257             for ( Iterator iter = model.getModules().iterator(); iter.hasNext(); )
1258             {
1259                 String module = (String) iter.next();
1260                 serializer.startTag( NAMESPACE, "module" ).text( module ).endTag( NAMESPACE, "module" );
1261                 writeLocationTracking( location, Integer.valueOf( n++ ), serializer );
1262             }
1263             serializer.endTag( NAMESPACE, "modules" );
1264         }
1265         if ( model.getScm() != null )
1266         {
1267             writeScm( (Scm) model.getScm(), "scm", serializer );
1268         }
1269         if ( model.getIssueManagement() != null )
1270         {
1271             writeIssueManagement( (IssueManagement) model.getIssueManagement(), "issueManagement", serializer );
1272         }
1273         if ( model.getCiManagement() != null )
1274         {
1275             writeCiManagement( (CiManagement) model.getCiManagement(), "ciManagement", serializer );
1276         }
1277         if ( model.getDistributionManagement() != null )
1278         {
1279             writeDistributionManagement( (DistributionManagement) model.getDistributionManagement(), "distributionManagement", serializer );
1280         }
1281         if ( ( model.getProperties() != null ) && ( model.getProperties().size() > 0 ) )
1282         {
1283             serializer.startTag( NAMESPACE, "properties" );
1284             InputLocation location = model.getLocation( "properties" );
1285             for ( Iterator iter = model.getProperties().keySet().iterator(); iter.hasNext(); )
1286             {
1287                 String key = (String) iter.next();
1288                 String value = (String) model.getProperties().get( key );
1289                 serializer.startTag( NAMESPACE, key ).text( value ).endTag( NAMESPACE, key );
1290                 writeLocationTracking( location, key, serializer );
1291             }
1292             serializer.endTag( NAMESPACE, "properties" );
1293         }
1294         if ( model.getDependencyManagement() != null )
1295         {
1296             writeDependencyManagement( (DependencyManagement) model.getDependencyManagement(), "dependencyManagement", serializer );
1297         }
1298         if ( ( model.getDependencies() != null ) && ( model.getDependencies().size() > 0 ) )
1299         {
1300             serializer.startTag( NAMESPACE, "dependencies" );
1301             for ( Iterator iter = model.getDependencies().iterator(); iter.hasNext(); )
1302             {
1303                 Dependency o = (Dependency) iter.next();
1304                 writeDependency( o, "dependency", serializer );
1305             }
1306             serializer.endTag( NAMESPACE, "dependencies" );
1307         }
1308         if ( ( model.getRepositories() != null ) && ( model.getRepositories().size() > 0 ) )
1309         {
1310             serializer.startTag( NAMESPACE, "repositories" );
1311             for ( Iterator iter = model.getRepositories().iterator(); iter.hasNext(); )
1312             {
1313                 Repository o = (Repository) iter.next();
1314                 writeRepository( o, "repository", serializer );
1315             }
1316             serializer.endTag( NAMESPACE, "repositories" );
1317         }
1318         if ( ( model.getPluginRepositories() != null ) && ( model.getPluginRepositories().size() > 0 ) )
1319         {
1320             serializer.startTag( NAMESPACE, "pluginRepositories" );
1321             for ( Iterator iter = model.getPluginRepositories().iterator(); iter.hasNext(); )
1322             {
1323                 Repository o = (Repository) iter.next();
1324                 writeRepository( o, "pluginRepository", serializer );
1325             }
1326             serializer.endTag( NAMESPACE, "pluginRepositories" );
1327         }
1328         if ( model.getBuild() != null )
1329         {
1330             writeBuild( (Build) model.getBuild(), "build", serializer );
1331         }
1332         if ( model.getReports() != null )
1333         {
1334             writeXpp3DomToSerializer( (Xpp3Dom) model.getReports(), serializer );
1335         }
1336         if ( model.getReporting() != null )
1337         {
1338             writeReporting( (Reporting) model.getReporting(), "reporting", serializer );
1339         }
1340         if ( ( model.getProfiles() != null ) && ( model.getProfiles().size() > 0 ) )
1341         {
1342             serializer.startTag( NAMESPACE, "profiles" );
1343             for ( Iterator iter = model.getProfiles().iterator(); iter.hasNext(); )
1344             {
1345                 Profile o = (Profile) iter.next();
1346                 writeProfile( o, "profile", serializer );
1347             }
1348             serializer.endTag( NAMESPACE, "profiles" );
1349         }
1350         serializer.endTag( NAMESPACE, tagName );
1351     } //-- void writeModel( Model, String, XmlSerializer )
1352 
1353     /**
1354      * Method writeModelBase.
1355      * 
1356      * @param modelBase a modelBase object.
1357      * @param serializer a serializer object.
1358      * @param tagName a tagName object.
1359      * @throws java.io.IOException java.io.IOException if any.
1360      */
1361     private void writeModelBase( ModelBase modelBase, String tagName, XmlSerializer serializer )
1362         throws java.io.IOException
1363     {
1364         serializer.startTag( NAMESPACE, tagName );
1365         if ( ( modelBase.getModules() != null ) && ( modelBase.getModules().size() > 0 ) )
1366         {
1367             serializer.startTag( NAMESPACE, "modules" );
1368             InputLocation location = modelBase.getLocation( "modules" );
1369             int n = 0;
1370             for ( Iterator iter = modelBase.getModules().iterator(); iter.hasNext(); )
1371             {
1372                 String module = (String) iter.next();
1373                 serializer.startTag( NAMESPACE, "module" ).text( module ).endTag( NAMESPACE, "module" );
1374                 writeLocationTracking( location, Integer.valueOf( n++ ), serializer );
1375             }
1376             serializer.endTag( NAMESPACE, "modules" );
1377         }
1378         if ( modelBase.getDistributionManagement() != null )
1379         {
1380             writeDistributionManagement( (DistributionManagement) modelBase.getDistributionManagement(), "distributionManagement", serializer );
1381         }
1382         if ( ( modelBase.getProperties() != null ) && ( modelBase.getProperties().size() > 0 ) )
1383         {
1384             serializer.startTag( NAMESPACE, "properties" );
1385             InputLocation location = modelBase.getLocation( "properties" );
1386             for ( Iterator iter = modelBase.getProperties().keySet().iterator(); iter.hasNext(); )
1387             {
1388                 String key = (String) iter.next();
1389                 String value = (String) modelBase.getProperties().get( key );
1390                 serializer.startTag( NAMESPACE, key ).text( value ).endTag( NAMESPACE, key );
1391                 writeLocationTracking( location, key, serializer );
1392             }
1393             serializer.endTag( NAMESPACE, "properties" );
1394         }
1395         if ( modelBase.getDependencyManagement() != null )
1396         {
1397             writeDependencyManagement( (DependencyManagement) modelBase.getDependencyManagement(), "dependencyManagement", serializer );
1398         }
1399         if ( ( modelBase.getDependencies() != null ) && ( modelBase.getDependencies().size() > 0 ) )
1400         {
1401             serializer.startTag( NAMESPACE, "dependencies" );
1402             for ( Iterator iter = modelBase.getDependencies().iterator(); iter.hasNext(); )
1403             {
1404                 Dependency o = (Dependency) iter.next();
1405                 writeDependency( o, "dependency", serializer );
1406             }
1407             serializer.endTag( NAMESPACE, "dependencies" );
1408         }
1409         if ( ( modelBase.getRepositories() != null ) && ( modelBase.getRepositories().size() > 0 ) )
1410         {
1411             serializer.startTag( NAMESPACE, "repositories" );
1412             for ( Iterator iter = modelBase.getRepositories().iterator(); iter.hasNext(); )
1413             {
1414                 Repository o = (Repository) iter.next();
1415                 writeRepository( o, "repository", serializer );
1416             }
1417             serializer.endTag( NAMESPACE, "repositories" );
1418         }
1419         if ( ( modelBase.getPluginRepositories() != null ) && ( modelBase.getPluginRepositories().size() > 0 ) )
1420         {
1421             serializer.startTag( NAMESPACE, "pluginRepositories" );
1422             for ( Iterator iter = modelBase.getPluginRepositories().iterator(); iter.hasNext(); )
1423             {
1424                 Repository o = (Repository) iter.next();
1425                 writeRepository( o, "pluginRepository", serializer );
1426             }
1427             serializer.endTag( NAMESPACE, "pluginRepositories" );
1428         }
1429         if ( modelBase.getReports() != null )
1430         {
1431             writeXpp3DomToSerializer( (Xpp3Dom) modelBase.getReports(), serializer );
1432         }
1433         if ( modelBase.getReporting() != null )
1434         {
1435             writeReporting( (Reporting) modelBase.getReporting(), "reporting", serializer );
1436         }
1437         serializer.endTag( NAMESPACE, tagName );
1438     } //-- void writeModelBase( ModelBase, String, XmlSerializer )
1439 
1440     /**
1441      * Method writeNotifier.
1442      * 
1443      * @param notifier a notifier object.
1444      * @param serializer a serializer object.
1445      * @param tagName a tagName object.
1446      * @throws java.io.IOException java.io.IOException if any.
1447      */
1448     private void writeNotifier( Notifier notifier, String tagName, XmlSerializer serializer )
1449         throws java.io.IOException
1450     {
1451         serializer.startTag( NAMESPACE, tagName );
1452         if ( ( notifier.getType() != null ) && !notifier.getType().equals( "mail" ) )
1453         {
1454             serializer.startTag( NAMESPACE, "type" ).text( notifier.getType() ).endTag( NAMESPACE, "type" );
1455             writeLocationTracking( notifier, "type", serializer );
1456         }
1457         if ( notifier.isSendOnError() != true )
1458         {
1459             serializer.startTag( NAMESPACE, "sendOnError" ).text( String.valueOf( notifier.isSendOnError() ) ).endTag( NAMESPACE, "sendOnError" );
1460             writeLocationTracking( notifier, "sendOnError", serializer );
1461         }
1462         if ( notifier.isSendOnFailure() != true )
1463         {
1464             serializer.startTag( NAMESPACE, "sendOnFailure" ).text( String.valueOf( notifier.isSendOnFailure() ) ).endTag( NAMESPACE, "sendOnFailure" );
1465             writeLocationTracking( notifier, "sendOnFailure", serializer );
1466         }
1467         if ( notifier.isSendOnSuccess() != true )
1468         {
1469             serializer.startTag( NAMESPACE, "sendOnSuccess" ).text( String.valueOf( notifier.isSendOnSuccess() ) ).endTag( NAMESPACE, "sendOnSuccess" );
1470             writeLocationTracking( notifier, "sendOnSuccess", serializer );
1471         }
1472         if ( notifier.isSendOnWarning() != true )
1473         {
1474             serializer.startTag( NAMESPACE, "sendOnWarning" ).text( String.valueOf( notifier.isSendOnWarning() ) ).endTag( NAMESPACE, "sendOnWarning" );
1475             writeLocationTracking( notifier, "sendOnWarning", serializer );
1476         }
1477         if ( notifier.getAddress() != null )
1478         {
1479             serializer.startTag( NAMESPACE, "address" ).text( notifier.getAddress() ).endTag( NAMESPACE, "address" );
1480             writeLocationTracking( notifier, "address", serializer );
1481         }
1482         if ( ( notifier.getConfiguration() != null ) && ( notifier.getConfiguration().size() > 0 ) )
1483         {
1484             serializer.startTag( NAMESPACE, "configuration" );
1485             InputLocation location = notifier.getLocation( "configuration" );
1486             for ( Iterator iter = notifier.getConfiguration().keySet().iterator(); iter.hasNext(); )
1487             {
1488                 String key = (String) iter.next();
1489                 String value = (String) notifier.getConfiguration().get( key );
1490                 serializer.startTag( NAMESPACE, key ).text( value ).endTag( NAMESPACE, key );
1491                 writeLocationTracking( location, key, serializer );
1492             }
1493             serializer.endTag( NAMESPACE, "configuration" );
1494         }
1495         serializer.endTag( NAMESPACE, tagName );
1496     } //-- void writeNotifier( Notifier, String, XmlSerializer )
1497 
1498     /**
1499      * Method writeOrganization.
1500      * 
1501      * @param organization a organization object.
1502      * @param serializer a serializer object.
1503      * @param tagName a tagName object.
1504      * @throws java.io.IOException java.io.IOException if any.
1505      */
1506     private void writeOrganization( Organization organization, String tagName, XmlSerializer serializer )
1507         throws java.io.IOException
1508     {
1509         serializer.startTag( NAMESPACE, tagName );
1510         if ( organization.getName() != null )
1511         {
1512             serializer.startTag( NAMESPACE, "name" ).text( organization.getName() ).endTag( NAMESPACE, "name" );
1513             writeLocationTracking( organization, "name", serializer );
1514         }
1515         if ( organization.getUrl() != null )
1516         {
1517             serializer.startTag( NAMESPACE, "url" ).text( organization.getUrl() ).endTag( NAMESPACE, "url" );
1518             writeLocationTracking( organization, "url", serializer );
1519         }
1520         serializer.endTag( NAMESPACE, tagName );
1521     } //-- void writeOrganization( Organization, String, XmlSerializer )
1522 
1523     /**
1524      * Method writeParent.
1525      * 
1526      * @param parent a parent object.
1527      * @param serializer a serializer object.
1528      * @param tagName a tagName object.
1529      * @throws java.io.IOException java.io.IOException if any.
1530      */
1531     private void writeParent( Parent parent, String tagName, XmlSerializer serializer )
1532         throws java.io.IOException
1533     {
1534         serializer.startTag( NAMESPACE, tagName );
1535         if ( parent.getGroupId() != null )
1536         {
1537             serializer.startTag( NAMESPACE, "groupId" ).text( parent.getGroupId() ).endTag( NAMESPACE, "groupId" );
1538             writeLocationTracking( parent, "groupId", serializer );
1539         }
1540         if ( parent.getArtifactId() != null )
1541         {
1542             serializer.startTag( NAMESPACE, "artifactId" ).text( parent.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
1543             writeLocationTracking( parent, "artifactId", serializer );
1544         }
1545         if ( parent.getVersion() != null )
1546         {
1547             serializer.startTag( NAMESPACE, "version" ).text( parent.getVersion() ).endTag( NAMESPACE, "version" );
1548             writeLocationTracking( parent, "version", serializer );
1549         }
1550         if ( ( parent.getRelativePath() != null ) && !parent.getRelativePath().equals( "../pom.xml" ) )
1551         {
1552             serializer.startTag( NAMESPACE, "relativePath" ).text( parent.getRelativePath() ).endTag( NAMESPACE, "relativePath" );
1553             writeLocationTracking( parent, "relativePath", serializer );
1554         }
1555         serializer.endTag( NAMESPACE, tagName );
1556     } //-- void writeParent( Parent, String, XmlSerializer )
1557 
1558     /**
1559      * Method writePatternSet.
1560      * 
1561      * @param patternSet a patternSet object.
1562      * @param serializer a serializer object.
1563      * @param tagName a tagName object.
1564      * @throws java.io.IOException java.io.IOException if any.
1565      */
1566     private void writePatternSet( PatternSet patternSet, String tagName, XmlSerializer serializer )
1567         throws java.io.IOException
1568     {
1569         serializer.startTag( NAMESPACE, tagName );
1570         if ( ( patternSet.getIncludes() != null ) && ( patternSet.getIncludes().size() > 0 ) )
1571         {
1572             serializer.startTag( NAMESPACE, "includes" );
1573             InputLocation location = patternSet.getLocation( "includes" );
1574             int n = 0;
1575             for ( Iterator iter = patternSet.getIncludes().iterator(); iter.hasNext(); )
1576             {
1577                 String include = (String) iter.next();
1578                 serializer.startTag( NAMESPACE, "include" ).text( include ).endTag( NAMESPACE, "include" );
1579                 writeLocationTracking( location, Integer.valueOf( n++ ), serializer );
1580             }
1581             serializer.endTag( NAMESPACE, "includes" );
1582         }
1583         if ( ( patternSet.getExcludes() != null ) && ( patternSet.getExcludes().size() > 0 ) )
1584         {
1585             serializer.startTag( NAMESPACE, "excludes" );
1586             InputLocation location = patternSet.getLocation( "excludes" );
1587             int n = 0;
1588             for ( Iterator iter = patternSet.getExcludes().iterator(); iter.hasNext(); )
1589             {
1590                 String exclude = (String) iter.next();
1591                 serializer.startTag( NAMESPACE, "exclude" ).text( exclude ).endTag( NAMESPACE, "exclude" );
1592                 writeLocationTracking( location, Integer.valueOf( n++ ), serializer );
1593             }
1594             serializer.endTag( NAMESPACE, "excludes" );
1595         }
1596         serializer.endTag( NAMESPACE, tagName );
1597     } //-- void writePatternSet( PatternSet, String, XmlSerializer )
1598 
1599     /**
1600      * Method writePlugin.
1601      * 
1602      * @param plugin a plugin object.
1603      * @param serializer a serializer object.
1604      * @param tagName a tagName object.
1605      * @throws java.io.IOException java.io.IOException if any.
1606      */
1607     private void writePlugin( Plugin plugin, String tagName, XmlSerializer serializer )
1608         throws java.io.IOException
1609     {
1610         serializer.startTag( NAMESPACE, tagName );
1611         if ( ( plugin.getGroupId() != null ) && !plugin.getGroupId().equals( "org.apache.maven.plugins" ) )
1612         {
1613             serializer.startTag( NAMESPACE, "groupId" ).text( plugin.getGroupId() ).endTag( NAMESPACE, "groupId" );
1614             writeLocationTracking( plugin, "groupId", serializer );
1615         }
1616         if ( plugin.getArtifactId() != null )
1617         {
1618             serializer.startTag( NAMESPACE, "artifactId" ).text( plugin.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
1619             writeLocationTracking( plugin, "artifactId", serializer );
1620         }
1621         if ( plugin.getVersion() != null )
1622         {
1623             serializer.startTag( NAMESPACE, "version" ).text( plugin.getVersion() ).endTag( NAMESPACE, "version" );
1624             writeLocationTracking( plugin, "version", serializer );
1625         }
1626         if ( plugin.getExtensions() != null )
1627         {
1628             serializer.startTag( NAMESPACE, "extensions" ).text( plugin.getExtensions() ).endTag( NAMESPACE, "extensions" );
1629             writeLocationTracking( plugin, "extensions", serializer );
1630         }
1631         if ( ( plugin.getExecutions() != null ) && ( plugin.getExecutions().size() > 0 ) )
1632         {
1633             serializer.startTag( NAMESPACE, "executions" );
1634             for ( Iterator iter = plugin.getExecutions().iterator(); iter.hasNext(); )
1635             {
1636                 PluginExecution o = (PluginExecution) iter.next();
1637                 writePluginExecution( o, "execution", serializer );
1638             }
1639             serializer.endTag( NAMESPACE, "executions" );
1640         }
1641         if ( ( plugin.getDependencies() != null ) && ( plugin.getDependencies().size() > 0 ) )
1642         {
1643             serializer.startTag( NAMESPACE, "dependencies" );
1644             for ( Iterator iter = plugin.getDependencies().iterator(); iter.hasNext(); )
1645             {
1646                 Dependency o = (Dependency) iter.next();
1647                 writeDependency( o, "dependency", serializer );
1648             }
1649             serializer.endTag( NAMESPACE, "dependencies" );
1650         }
1651         if ( plugin.getGoals() != null )
1652         {
1653             writeXpp3DomToSerializer( (Xpp3Dom) plugin.getGoals(), serializer );
1654         }
1655         if ( plugin.getInherited() != null )
1656         {
1657             serializer.startTag( NAMESPACE, "inherited" ).text( plugin.getInherited() ).endTag( NAMESPACE, "inherited" );
1658             writeLocationTracking( plugin, "inherited", serializer );
1659         }
1660         if ( plugin.getConfiguration() != null )
1661         {
1662             writeXpp3DomToSerializer( (Xpp3Dom) plugin.getConfiguration(), serializer );
1663         }
1664         serializer.endTag( NAMESPACE, tagName );
1665     } //-- void writePlugin( Plugin, String, XmlSerializer )
1666 
1667     /**
1668      * Method writePluginConfiguration.
1669      * 
1670      * @param pluginConfiguration a pluginConfiguration object.
1671      * @param serializer a serializer object.
1672      * @param tagName a tagName object.
1673      * @throws java.io.IOException java.io.IOException if any.
1674      */
1675     private void writePluginConfiguration( PluginConfiguration pluginConfiguration, String tagName, XmlSerializer serializer )
1676         throws java.io.IOException
1677     {
1678         serializer.startTag( NAMESPACE, tagName );
1679         if ( pluginConfiguration.getPluginManagement() != null )
1680         {
1681             writePluginManagement( (PluginManagement) pluginConfiguration.getPluginManagement(), "pluginManagement", serializer );
1682         }
1683         if ( ( pluginConfiguration.getPlugins() != null ) && ( pluginConfiguration.getPlugins().size() > 0 ) )
1684         {
1685             serializer.startTag( NAMESPACE, "plugins" );
1686             for ( Iterator iter = pluginConfiguration.getPlugins().iterator(); iter.hasNext(); )
1687             {
1688                 Plugin o = (Plugin) iter.next();
1689                 writePlugin( o, "plugin", serializer );
1690             }
1691             serializer.endTag( NAMESPACE, "plugins" );
1692         }
1693         serializer.endTag( NAMESPACE, tagName );
1694     } //-- void writePluginConfiguration( PluginConfiguration, String, XmlSerializer )
1695 
1696     /**
1697      * Method writePluginContainer.
1698      * 
1699      * @param pluginContainer a pluginContainer object.
1700      * @param serializer a serializer object.
1701      * @param tagName a tagName object.
1702      * @throws java.io.IOException java.io.IOException if any.
1703      */
1704     private void writePluginContainer( PluginContainer pluginContainer, String tagName, XmlSerializer serializer )
1705         throws java.io.IOException
1706     {
1707         serializer.startTag( NAMESPACE, tagName );
1708         if ( ( pluginContainer.getPlugins() != null ) && ( pluginContainer.getPlugins().size() > 0 ) )
1709         {
1710             serializer.startTag( NAMESPACE, "plugins" );
1711             for ( Iterator iter = pluginContainer.getPlugins().iterator(); iter.hasNext(); )
1712             {
1713                 Plugin o = (Plugin) iter.next();
1714                 writePlugin( o, "plugin", serializer );
1715             }
1716             serializer.endTag( NAMESPACE, "plugins" );
1717         }
1718         serializer.endTag( NAMESPACE, tagName );
1719     } //-- void writePluginContainer( PluginContainer, String, XmlSerializer )
1720 
1721     /**
1722      * Method writePluginExecution.
1723      * 
1724      * @param pluginExecution a pluginExecution object.
1725      * @param serializer a serializer object.
1726      * @param tagName a tagName object.
1727      * @throws java.io.IOException java.io.IOException if any.
1728      */
1729     private void writePluginExecution( PluginExecution pluginExecution, String tagName, XmlSerializer serializer )
1730         throws java.io.IOException
1731     {
1732         serializer.startTag( NAMESPACE, tagName );
1733         if ( ( pluginExecution.getId() != null ) && !pluginExecution.getId().equals( "default" ) )
1734         {
1735             serializer.startTag( NAMESPACE, "id" ).text( pluginExecution.getId() ).endTag( NAMESPACE, "id" );
1736             writeLocationTracking( pluginExecution, "id", serializer );
1737         }
1738         if ( pluginExecution.getPhase() != null )
1739         {
1740             serializer.startTag( NAMESPACE, "phase" ).text( pluginExecution.getPhase() ).endTag( NAMESPACE, "phase" );
1741             writeLocationTracking( pluginExecution, "phase", serializer );
1742         }
1743         if ( ( pluginExecution.getGoals() != null ) && ( pluginExecution.getGoals().size() > 0 ) )
1744         {
1745             serializer.startTag( NAMESPACE, "goals" );
1746             InputLocation location = pluginExecution.getLocation( "goals" );
1747             int n = 0;
1748             for ( Iterator iter = pluginExecution.getGoals().iterator(); iter.hasNext(); )
1749             {
1750                 String goal = (String) iter.next();
1751                 serializer.startTag( NAMESPACE, "goal" ).text( goal ).endTag( NAMESPACE, "goal" );
1752                 writeLocationTracking( location, Integer.valueOf( n++ ), serializer );
1753             }
1754             serializer.endTag( NAMESPACE, "goals" );
1755         }
1756         if ( pluginExecution.getInherited() != null )
1757         {
1758             serializer.startTag( NAMESPACE, "inherited" ).text( pluginExecution.getInherited() ).endTag( NAMESPACE, "inherited" );
1759             writeLocationTracking( pluginExecution, "inherited", serializer );
1760         }
1761         if ( pluginExecution.getConfiguration() != null )
1762         {
1763             writeXpp3DomToSerializer( (Xpp3Dom) pluginExecution.getConfiguration(), serializer );
1764         }
1765         serializer.endTag( NAMESPACE, tagName );
1766     } //-- void writePluginExecution( PluginExecution, String, XmlSerializer )
1767 
1768     /**
1769      * Method writePluginManagement.
1770      * 
1771      * @param pluginManagement a pluginManagement object.
1772      * @param serializer a serializer object.
1773      * @param tagName a tagName object.
1774      * @throws java.io.IOException java.io.IOException if any.
1775      */
1776     private void writePluginManagement( PluginManagement pluginManagement, String tagName, XmlSerializer serializer )
1777         throws java.io.IOException
1778     {
1779         serializer.startTag( NAMESPACE, tagName );
1780         if ( ( pluginManagement.getPlugins() != null ) && ( pluginManagement.getPlugins().size() > 0 ) )
1781         {
1782             serializer.startTag( NAMESPACE, "plugins" );
1783             for ( Iterator iter = pluginManagement.getPlugins().iterator(); iter.hasNext(); )
1784             {
1785                 Plugin o = (Plugin) iter.next();
1786                 writePlugin( o, "plugin", serializer );
1787             }
1788             serializer.endTag( NAMESPACE, "plugins" );
1789         }
1790         serializer.endTag( NAMESPACE, tagName );
1791     } //-- void writePluginManagement( PluginManagement, String, XmlSerializer )
1792 
1793     /**
1794      * Method writePrerequisites.
1795      * 
1796      * @param prerequisites a prerequisites object.
1797      * @param serializer a serializer object.
1798      * @param tagName a tagName object.
1799      * @throws java.io.IOException java.io.IOException if any.
1800      */
1801     private void writePrerequisites( Prerequisites prerequisites, String tagName, XmlSerializer serializer )
1802         throws java.io.IOException
1803     {
1804         serializer.startTag( NAMESPACE, tagName );
1805         if ( ( prerequisites.getMaven() != null ) && !prerequisites.getMaven().equals( "2.0" ) )
1806         {
1807             serializer.startTag( NAMESPACE, "maven" ).text( prerequisites.getMaven() ).endTag( NAMESPACE, "maven" );
1808             writeLocationTracking( prerequisites, "maven", serializer );
1809         }
1810         serializer.endTag( NAMESPACE, tagName );
1811     } //-- void writePrerequisites( Prerequisites, String, XmlSerializer )
1812 
1813     /**
1814      * Method writeProfile.
1815      * 
1816      * @param profile a profile object.
1817      * @param serializer a serializer object.
1818      * @param tagName a tagName object.
1819      * @throws java.io.IOException java.io.IOException if any.
1820      */
1821     private void writeProfile( Profile profile, String tagName, XmlSerializer serializer )
1822         throws java.io.IOException
1823     {
1824         serializer.startTag( NAMESPACE, tagName );
1825         if ( ( profile.getId() != null ) && !profile.getId().equals( "default" ) )
1826         {
1827             serializer.startTag( NAMESPACE, "id" ).text( profile.getId() ).endTag( NAMESPACE, "id" );
1828             writeLocationTracking( profile, "id", serializer );
1829         }
1830         if ( profile.getActivation() != null )
1831         {
1832             writeActivation( (Activation) profile.getActivation(), "activation", serializer );
1833         }
1834         if ( profile.getBuild() != null )
1835         {
1836             writeBuildBase( (BuildBase) profile.getBuild(), "build", serializer );
1837         }
1838         if ( ( profile.getModules() != null ) && ( profile.getModules().size() > 0 ) )
1839         {
1840             serializer.startTag( NAMESPACE, "modules" );
1841             InputLocation location = profile.getLocation( "modules" );
1842             int n = 0;
1843             for ( Iterator iter = profile.getModules().iterator(); iter.hasNext(); )
1844             {
1845                 String module = (String) iter.next();
1846                 serializer.startTag( NAMESPACE, "module" ).text( module ).endTag( NAMESPACE, "module" );
1847                 writeLocationTracking( location, Integer.valueOf( n++ ), serializer );
1848             }
1849             serializer.endTag( NAMESPACE, "modules" );
1850         }
1851         if ( profile.getDistributionManagement() != null )
1852         {
1853             writeDistributionManagement( (DistributionManagement) profile.getDistributionManagement(), "distributionManagement", serializer );
1854         }
1855         if ( ( profile.getProperties() != null ) && ( profile.getProperties().size() > 0 ) )
1856         {
1857             serializer.startTag( NAMESPACE, "properties" );
1858             InputLocation location = profile.getLocation( "properties" );
1859             for ( Iterator iter = profile.getProperties().keySet().iterator(); iter.hasNext(); )
1860             {
1861                 String key = (String) iter.next();
1862                 String value = (String) profile.getProperties().get( key );
1863                 serializer.startTag( NAMESPACE, key ).text( value ).endTag( NAMESPACE, key );
1864                 writeLocationTracking( location, key, serializer );
1865             }
1866             serializer.endTag( NAMESPACE, "properties" );
1867         }
1868         if ( profile.getDependencyManagement() != null )
1869         {
1870             writeDependencyManagement( (DependencyManagement) profile.getDependencyManagement(), "dependencyManagement", serializer );
1871         }
1872         if ( ( profile.getDependencies() != null ) && ( profile.getDependencies().size() > 0 ) )
1873         {
1874             serializer.startTag( NAMESPACE, "dependencies" );
1875             for ( Iterator iter = profile.getDependencies().iterator(); iter.hasNext(); )
1876             {
1877                 Dependency o = (Dependency) iter.next();
1878                 writeDependency( o, "dependency", serializer );
1879             }
1880             serializer.endTag( NAMESPACE, "dependencies" );
1881         }
1882         if ( ( profile.getRepositories() != null ) && ( profile.getRepositories().size() > 0 ) )
1883         {
1884             serializer.startTag( NAMESPACE, "repositories" );
1885             for ( Iterator iter = profile.getRepositories().iterator(); iter.hasNext(); )
1886             {
1887                 Repository o = (Repository) iter.next();
1888                 writeRepository( o, "repository", serializer );
1889             }
1890             serializer.endTag( NAMESPACE, "repositories" );
1891         }
1892         if ( ( profile.getPluginRepositories() != null ) && ( profile.getPluginRepositories().size() > 0 ) )
1893         {
1894             serializer.startTag( NAMESPACE, "pluginRepositories" );
1895             for ( Iterator iter = profile.getPluginRepositories().iterator(); iter.hasNext(); )
1896             {
1897                 Repository o = (Repository) iter.next();
1898                 writeRepository( o, "pluginRepository", serializer );
1899             }
1900             serializer.endTag( NAMESPACE, "pluginRepositories" );
1901         }
1902         if ( profile.getReports() != null )
1903         {
1904             writeXpp3DomToSerializer( (Xpp3Dom) profile.getReports(), serializer );
1905         }
1906         if ( profile.getReporting() != null )
1907         {
1908             writeReporting( (Reporting) profile.getReporting(), "reporting", serializer );
1909         }
1910         serializer.endTag( NAMESPACE, tagName );
1911     } //-- void writeProfile( Profile, String, XmlSerializer )
1912 
1913     /**
1914      * Method writeRelocation.
1915      * 
1916      * @param relocation a relocation object.
1917      * @param serializer a serializer object.
1918      * @param tagName a tagName object.
1919      * @throws java.io.IOException java.io.IOException if any.
1920      */
1921     private void writeRelocation( Relocation relocation, String tagName, XmlSerializer serializer )
1922         throws java.io.IOException
1923     {
1924         serializer.startTag( NAMESPACE, tagName );
1925         if ( relocation.getGroupId() != null )
1926         {
1927             serializer.startTag( NAMESPACE, "groupId" ).text( relocation.getGroupId() ).endTag( NAMESPACE, "groupId" );
1928             writeLocationTracking( relocation, "groupId", serializer );
1929         }
1930         if ( relocation.getArtifactId() != null )
1931         {
1932             serializer.startTag( NAMESPACE, "artifactId" ).text( relocation.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
1933             writeLocationTracking( relocation, "artifactId", serializer );
1934         }
1935         if ( relocation.getVersion() != null )
1936         {
1937             serializer.startTag( NAMESPACE, "version" ).text( relocation.getVersion() ).endTag( NAMESPACE, "version" );
1938             writeLocationTracking( relocation, "version", serializer );
1939         }
1940         if ( relocation.getMessage() != null )
1941         {
1942             serializer.startTag( NAMESPACE, "message" ).text( relocation.getMessage() ).endTag( NAMESPACE, "message" );
1943             writeLocationTracking( relocation, "message", serializer );
1944         }
1945         serializer.endTag( NAMESPACE, tagName );
1946     } //-- void writeRelocation( Relocation, String, XmlSerializer )
1947 
1948     /**
1949      * Method writeReportPlugin.
1950      * 
1951      * @param reportPlugin a reportPlugin object.
1952      * @param serializer a serializer object.
1953      * @param tagName a tagName object.
1954      * @throws java.io.IOException java.io.IOException if any.
1955      */
1956     private void writeReportPlugin( ReportPlugin reportPlugin, String tagName, XmlSerializer serializer )
1957         throws java.io.IOException
1958     {
1959         serializer.startTag( NAMESPACE, tagName );
1960         if ( ( reportPlugin.getGroupId() != null ) && !reportPlugin.getGroupId().equals( "org.apache.maven.plugins" ) )
1961         {
1962             serializer.startTag( NAMESPACE, "groupId" ).text( reportPlugin.getGroupId() ).endTag( NAMESPACE, "groupId" );
1963             writeLocationTracking( reportPlugin, "groupId", serializer );
1964         }
1965         if ( reportPlugin.getArtifactId() != null )
1966         {
1967             serializer.startTag( NAMESPACE, "artifactId" ).text( reportPlugin.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
1968             writeLocationTracking( reportPlugin, "artifactId", serializer );
1969         }
1970         if ( reportPlugin.getVersion() != null )
1971         {
1972             serializer.startTag( NAMESPACE, "version" ).text( reportPlugin.getVersion() ).endTag( NAMESPACE, "version" );
1973             writeLocationTracking( reportPlugin, "version", serializer );
1974         }
1975         if ( ( reportPlugin.getReportSets() != null ) && ( reportPlugin.getReportSets().size() > 0 ) )
1976         {
1977             serializer.startTag( NAMESPACE, "reportSets" );
1978             for ( Iterator iter = reportPlugin.getReportSets().iterator(); iter.hasNext(); )
1979             {
1980                 ReportSet o = (ReportSet) iter.next();
1981                 writeReportSet( o, "reportSet", serializer );
1982             }
1983             serializer.endTag( NAMESPACE, "reportSets" );
1984         }
1985         if ( reportPlugin.getInherited() != null )
1986         {
1987             serializer.startTag( NAMESPACE, "inherited" ).text( reportPlugin.getInherited() ).endTag( NAMESPACE, "inherited" );
1988             writeLocationTracking( reportPlugin, "inherited", serializer );
1989         }
1990         if ( reportPlugin.getConfiguration() != null )
1991         {
1992             writeXpp3DomToSerializer( (Xpp3Dom) reportPlugin.getConfiguration(), serializer );
1993         }
1994         serializer.endTag( NAMESPACE, tagName );
1995     } //-- void writeReportPlugin( ReportPlugin, String, XmlSerializer )
1996 
1997     /**
1998      * Method writeReportSet.
1999      * 
2000      * @param reportSet a reportSet object.
2001      * @param serializer a serializer object.
2002      * @param tagName a tagName object.
2003      * @throws java.io.IOException java.io.IOException if any.
2004      */
2005     private void writeReportSet( ReportSet reportSet, String tagName, XmlSerializer serializer )
2006         throws java.io.IOException
2007     {
2008         serializer.startTag( NAMESPACE, tagName );
2009         if ( ( reportSet.getId() != null ) && !reportSet.getId().equals( "default" ) )
2010         {
2011             serializer.startTag( NAMESPACE, "id" ).text( reportSet.getId() ).endTag( NAMESPACE, "id" );
2012             writeLocationTracking( reportSet, "id", serializer );
2013         }
2014         if ( ( reportSet.getReports() != null ) && ( reportSet.getReports().size() > 0 ) )
2015         {
2016             serializer.startTag( NAMESPACE, "reports" );
2017             InputLocation location = reportSet.getLocation( "reports" );
2018             int n = 0;
2019             for ( Iterator iter = reportSet.getReports().iterator(); iter.hasNext(); )
2020             {
2021                 String report = (String) iter.next();
2022                 serializer.startTag( NAMESPACE, "report" ).text( report ).endTag( NAMESPACE, "report" );
2023                 writeLocationTracking( location, Integer.valueOf( n++ ), serializer );
2024             }
2025             serializer.endTag( NAMESPACE, "reports" );
2026         }
2027         if ( reportSet.getInherited() != null )
2028         {
2029             serializer.startTag( NAMESPACE, "inherited" ).text( reportSet.getInherited() ).endTag( NAMESPACE, "inherited" );
2030             writeLocationTracking( reportSet, "inherited", serializer );
2031         }
2032         if ( reportSet.getConfiguration() != null )
2033         {
2034             writeXpp3DomToSerializer( (Xpp3Dom) reportSet.getConfiguration(), serializer );
2035         }
2036         serializer.endTag( NAMESPACE, tagName );
2037     } //-- void writeReportSet( ReportSet, String, XmlSerializer )
2038 
2039     /**
2040      * Method writeReporting.
2041      * 
2042      * @param reporting a reporting object.
2043      * @param serializer a serializer object.
2044      * @param tagName a tagName object.
2045      * @throws java.io.IOException java.io.IOException if any.
2046      */
2047     private void writeReporting( Reporting reporting, String tagName, XmlSerializer serializer )
2048         throws java.io.IOException
2049     {
2050         serializer.startTag( NAMESPACE, tagName );
2051         if ( reporting.getExcludeDefaults() != null )
2052         {
2053             serializer.startTag( NAMESPACE, "excludeDefaults" ).text( reporting.getExcludeDefaults() ).endTag( NAMESPACE, "excludeDefaults" );
2054             writeLocationTracking( reporting, "excludeDefaults", serializer );
2055         }
2056         if ( reporting.getOutputDirectory() != null )
2057         {
2058             serializer.startTag( NAMESPACE, "outputDirectory" ).text( reporting.getOutputDirectory() ).endTag( NAMESPACE, "outputDirectory" );
2059             writeLocationTracking( reporting, "outputDirectory", serializer );
2060         }
2061         if ( ( reporting.getPlugins() != null ) && ( reporting.getPlugins().size() > 0 ) )
2062         {
2063             serializer.startTag( NAMESPACE, "plugins" );
2064             for ( Iterator iter = reporting.getPlugins().iterator(); iter.hasNext(); )
2065             {
2066                 ReportPlugin o = (ReportPlugin) iter.next();
2067                 writeReportPlugin( o, "plugin", serializer );
2068             }
2069             serializer.endTag( NAMESPACE, "plugins" );
2070         }
2071         serializer.endTag( NAMESPACE, tagName );
2072     } //-- void writeReporting( Reporting, String, XmlSerializer )
2073 
2074     /**
2075      * Method writeRepository.
2076      * 
2077      * @param repository a repository object.
2078      * @param serializer a serializer object.
2079      * @param tagName a tagName object.
2080      * @throws java.io.IOException java.io.IOException if any.
2081      */
2082     private void writeRepository( Repository repository, String tagName, XmlSerializer serializer )
2083         throws java.io.IOException
2084     {
2085         serializer.startTag( NAMESPACE, tagName );
2086         if ( repository.getReleases() != null )
2087         {
2088             writeRepositoryPolicy( (RepositoryPolicy) repository.getReleases(), "releases", serializer );
2089         }
2090         if ( repository.getSnapshots() != null )
2091         {
2092             writeRepositoryPolicy( (RepositoryPolicy) repository.getSnapshots(), "snapshots", serializer );
2093         }
2094         if ( repository.getId() != null )
2095         {
2096             serializer.startTag( NAMESPACE, "id" ).text( repository.getId() ).endTag( NAMESPACE, "id" );
2097             writeLocationTracking( repository, "id", serializer );
2098         }
2099         if ( repository.getName() != null )
2100         {
2101             serializer.startTag( NAMESPACE, "name" ).text( repository.getName() ).endTag( NAMESPACE, "name" );
2102             writeLocationTracking( repository, "name", serializer );
2103         }
2104         if ( repository.getUrl() != null )
2105         {
2106             serializer.startTag( NAMESPACE, "url" ).text( repository.getUrl() ).endTag( NAMESPACE, "url" );
2107             writeLocationTracking( repository, "url", serializer );
2108         }
2109         if ( ( repository.getLayout() != null ) && !repository.getLayout().equals( "default" ) )
2110         {
2111             serializer.startTag( NAMESPACE, "layout" ).text( repository.getLayout() ).endTag( NAMESPACE, "layout" );
2112             writeLocationTracking( repository, "layout", serializer );
2113         }
2114         serializer.endTag( NAMESPACE, tagName );
2115     } //-- void writeRepository( Repository, String, XmlSerializer )
2116 
2117     /**
2118      * Method writeRepositoryBase.
2119      * 
2120      * @param repositoryBase a repositoryBase object.
2121      * @param serializer a serializer object.
2122      * @param tagName a tagName object.
2123      * @throws java.io.IOException java.io.IOException if any.
2124      */
2125     private void writeRepositoryBase( RepositoryBase repositoryBase, String tagName, XmlSerializer serializer )
2126         throws java.io.IOException
2127     {
2128         serializer.startTag( NAMESPACE, tagName );
2129         if ( repositoryBase.getId() != null )
2130         {
2131             serializer.startTag( NAMESPACE, "id" ).text( repositoryBase.getId() ).endTag( NAMESPACE, "id" );
2132             writeLocationTracking( repositoryBase, "id", serializer );
2133         }
2134         if ( repositoryBase.getName() != null )
2135         {
2136             serializer.startTag( NAMESPACE, "name" ).text( repositoryBase.getName() ).endTag( NAMESPACE, "name" );
2137             writeLocationTracking( repositoryBase, "name", serializer );
2138         }
2139         if ( repositoryBase.getUrl() != null )
2140         {
2141             serializer.startTag( NAMESPACE, "url" ).text( repositoryBase.getUrl() ).endTag( NAMESPACE, "url" );
2142             writeLocationTracking( repositoryBase, "url", serializer );
2143         }
2144         if ( ( repositoryBase.getLayout() != null ) && !repositoryBase.getLayout().equals( "default" ) )
2145         {
2146             serializer.startTag( NAMESPACE, "layout" ).text( repositoryBase.getLayout() ).endTag( NAMESPACE, "layout" );
2147             writeLocationTracking( repositoryBase, "layout", serializer );
2148         }
2149         serializer.endTag( NAMESPACE, tagName );
2150     } //-- void writeRepositoryBase( RepositoryBase, String, XmlSerializer )
2151 
2152     /**
2153      * Method writeRepositoryPolicy.
2154      * 
2155      * @param repositoryPolicy a repositoryPolicy object.
2156      * @param serializer a serializer object.
2157      * @param tagName a tagName object.
2158      * @throws java.io.IOException java.io.IOException if any.
2159      */
2160     private void writeRepositoryPolicy( RepositoryPolicy repositoryPolicy, String tagName, XmlSerializer serializer )
2161         throws java.io.IOException
2162     {
2163         serializer.startTag( NAMESPACE, tagName );
2164         if ( repositoryPolicy.getEnabled() != null )
2165         {
2166             serializer.startTag( NAMESPACE, "enabled" ).text( repositoryPolicy.getEnabled() ).endTag( NAMESPACE, "enabled" );
2167             writeLocationTracking( repositoryPolicy, "enabled", serializer );
2168         }
2169         if ( repositoryPolicy.getUpdatePolicy() != null )
2170         {
2171             serializer.startTag( NAMESPACE, "updatePolicy" ).text( repositoryPolicy.getUpdatePolicy() ).endTag( NAMESPACE, "updatePolicy" );
2172             writeLocationTracking( repositoryPolicy, "updatePolicy", serializer );
2173         }
2174         if ( repositoryPolicy.getChecksumPolicy() != null )
2175         {
2176             serializer.startTag( NAMESPACE, "checksumPolicy" ).text( repositoryPolicy.getChecksumPolicy() ).endTag( NAMESPACE, "checksumPolicy" );
2177             writeLocationTracking( repositoryPolicy, "checksumPolicy", serializer );
2178         }
2179         serializer.endTag( NAMESPACE, tagName );
2180     } //-- void writeRepositoryPolicy( RepositoryPolicy, String, XmlSerializer )
2181 
2182     /**
2183      * Method writeResource.
2184      * 
2185      * @param resource a resource object.
2186      * @param serializer a serializer object.
2187      * @param tagName a tagName object.
2188      * @throws java.io.IOException java.io.IOException if any.
2189      */
2190     private void writeResource( Resource resource, String tagName, XmlSerializer serializer )
2191         throws java.io.IOException
2192     {
2193         serializer.startTag( NAMESPACE, tagName );
2194         if ( resource.getTargetPath() != null )
2195         {
2196             serializer.startTag( NAMESPACE, "targetPath" ).text( resource.getTargetPath() ).endTag( NAMESPACE, "targetPath" );
2197             writeLocationTracking( resource, "targetPath", serializer );
2198         }
2199         if ( resource.getFiltering() != null )
2200         {
2201             serializer.startTag( NAMESPACE, "filtering" ).text( resource.getFiltering() ).endTag( NAMESPACE, "filtering" );
2202             writeLocationTracking( resource, "filtering", serializer );
2203         }
2204         if ( resource.getDirectory() != null )
2205         {
2206             serializer.startTag( NAMESPACE, "directory" ).text( resource.getDirectory() ).endTag( NAMESPACE, "directory" );
2207             writeLocationTracking( resource, "directory", serializer );
2208         }
2209         if ( ( resource.getIncludes() != null ) && ( resource.getIncludes().size() > 0 ) )
2210         {
2211             serializer.startTag( NAMESPACE, "includes" );
2212             InputLocation location = resource.getLocation( "includes" );
2213             int n = 0;
2214             for ( Iterator iter = resource.getIncludes().iterator(); iter.hasNext(); )
2215             {
2216                 String include = (String) iter.next();
2217                 serializer.startTag( NAMESPACE, "include" ).text( include ).endTag( NAMESPACE, "include" );
2218                 writeLocationTracking( location, Integer.valueOf( n++ ), serializer );
2219             }
2220             serializer.endTag( NAMESPACE, "includes" );
2221         }
2222         if ( ( resource.getExcludes() != null ) && ( resource.getExcludes().size() > 0 ) )
2223         {
2224             serializer.startTag( NAMESPACE, "excludes" );
2225             InputLocation location = resource.getLocation( "excludes" );
2226             int n = 0;
2227             for ( Iterator iter = resource.getExcludes().iterator(); iter.hasNext(); )
2228             {
2229                 String exclude = (String) iter.next();
2230                 serializer.startTag( NAMESPACE, "exclude" ).text( exclude ).endTag( NAMESPACE, "exclude" );
2231                 writeLocationTracking( location, Integer.valueOf( n++ ), serializer );
2232             }
2233             serializer.endTag( NAMESPACE, "excludes" );
2234         }
2235         serializer.endTag( NAMESPACE, tagName );
2236     } //-- void writeResource( Resource, String, XmlSerializer )
2237 
2238     /**
2239      * Method writeScm.
2240      * 
2241      * @param scm a scm object.
2242      * @param serializer a serializer object.
2243      * @param tagName a tagName object.
2244      * @throws java.io.IOException java.io.IOException if any.
2245      */
2246     private void writeScm( Scm scm, String tagName, XmlSerializer serializer )
2247         throws java.io.IOException
2248     {
2249         serializer.startTag( NAMESPACE, tagName );
2250         if ( scm.getConnection() != null )
2251         {
2252             serializer.startTag( NAMESPACE, "connection" ).text( scm.getConnection() ).endTag( NAMESPACE, "connection" );
2253             writeLocationTracking( scm, "connection", serializer );
2254         }
2255         if ( scm.getDeveloperConnection() != null )
2256         {
2257             serializer.startTag( NAMESPACE, "developerConnection" ).text( scm.getDeveloperConnection() ).endTag( NAMESPACE, "developerConnection" );
2258             writeLocationTracking( scm, "developerConnection", serializer );
2259         }
2260         if ( ( scm.getTag() != null ) && !scm.getTag().equals( "HEAD" ) )
2261         {
2262             serializer.startTag( NAMESPACE, "tag" ).text( scm.getTag() ).endTag( NAMESPACE, "tag" );
2263             writeLocationTracking( scm, "tag", serializer );
2264         }
2265         if ( scm.getUrl() != null )
2266         {
2267             serializer.startTag( NAMESPACE, "url" ).text( scm.getUrl() ).endTag( NAMESPACE, "url" );
2268             writeLocationTracking( scm, "url", serializer );
2269         }
2270         serializer.endTag( NAMESPACE, tagName );
2271     } //-- void writeScm( Scm, String, XmlSerializer )
2272 
2273     /**
2274      * Method writeSite.
2275      * 
2276      * @param site a site object.
2277      * @param serializer a serializer object.
2278      * @param tagName a tagName object.
2279      * @throws java.io.IOException java.io.IOException if any.
2280      */
2281     private void writeSite( Site site, String tagName, XmlSerializer serializer )
2282         throws java.io.IOException
2283     {
2284         serializer.startTag( NAMESPACE, tagName );
2285         if ( site.getId() != null )
2286         {
2287             serializer.startTag( NAMESPACE, "id" ).text( site.getId() ).endTag( NAMESPACE, "id" );
2288             writeLocationTracking( site, "id", serializer );
2289         }
2290         if ( site.getName() != null )
2291         {
2292             serializer.startTag( NAMESPACE, "name" ).text( site.getName() ).endTag( NAMESPACE, "name" );
2293             writeLocationTracking( site, "name", serializer );
2294         }
2295         if ( site.getUrl() != null )
2296         {
2297             serializer.startTag( NAMESPACE, "url" ).text( site.getUrl() ).endTag( NAMESPACE, "url" );
2298             writeLocationTracking( site, "url", serializer );
2299         }
2300         serializer.endTag( NAMESPACE, tagName );
2301     } //-- void writeSite( Site, String, XmlSerializer )
2302 
2303 }