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