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