View Javadoc

1   /*
2    =================== DO NOT EDIT THIS FILE ====================
3    Generated by Modello
4    any modifications will be overwritten.
5    ==============================================================
6    */
7   
8   package org.apache.maven.continuum.model.project.io.stax;
9   
10    //---------------------------------/
11   //- Imported classes and packages -/
12  //---------------------------------/
13  
14  import java.io.IOException;
15  import java.io.InputStream;
16  import java.io.StringWriter;
17  import java.io.Writer;
18  import java.text.DateFormat;
19  import java.util.Iterator;
20  import java.util.Locale;
21  import java.util.jar.Manifest;
22  import javanet.staxutils.IndentingXMLStreamWriter;
23  import javax.xml.stream.*;
24  import org.apache.continuum.model.project.ProjectScmRoot;
25  import org.apache.continuum.model.release.ContinuumReleaseResult;
26  import org.apache.continuum.model.repository.AbstractPurgeConfiguration;
27  import org.apache.continuum.model.repository.DirectoryPurgeConfiguration;
28  import org.apache.continuum.model.repository.DistributedDirectoryPurgeConfiguration;
29  import org.apache.continuum.model.repository.LocalRepository;
30  import org.apache.continuum.model.repository.RepositoryPurgeConfiguration;
31  import org.apache.maven.continuum.model.project.BuildDefinition;
32  import org.apache.maven.continuum.model.project.BuildDefinitionTemplate;
33  import org.apache.maven.continuum.model.project.BuildQueue;
34  import org.apache.maven.continuum.model.project.BuildResult;
35  import org.apache.maven.continuum.model.project.ContinuumDatabase;
36  import org.apache.maven.continuum.model.project.Project;
37  import org.apache.maven.continuum.model.project.ProjectDependency;
38  import org.apache.maven.continuum.model.project.ProjectDeveloper;
39  import org.apache.maven.continuum.model.project.ProjectGroup;
40  import org.apache.maven.continuum.model.project.ProjectNotifier;
41  import org.apache.maven.continuum.model.project.Schedule;
42  import org.apache.maven.continuum.model.scm.ChangeFile;
43  import org.apache.maven.continuum.model.scm.ChangeSet;
44  import org.apache.maven.continuum.model.scm.ScmResult;
45  import org.apache.maven.continuum.model.system.Installation;
46  import org.apache.maven.continuum.model.system.NotificationAddress;
47  import org.apache.maven.continuum.model.system.Profile;
48  import org.apache.maven.continuum.model.system.SystemConfiguration;
49  import org.apache.maven.continuum.project.ContinuumProjectState;
50  import org.codehaus.plexus.util.xml.Xpp3Dom;
51  
52  /**
53   * Class ContinuumStaxWriter.
54   * 
55   * @version $Revision$ $Date$
56   */
57  @SuppressWarnings( "all" )
58  public class ContinuumStaxWriter
59  {
60  
61        //--------------------------/
62       //- Class/Member Variables -/
63      //--------------------------/
64  
65      /**
66       * Field curId.
67       */
68      private int curId;
69  
70      /**
71       * Field idMap.
72       */
73      private java.util.Map idMap;
74  
75  
76        //----------------/
77       //- Constructors -/
78      //----------------/
79  
80      public ContinuumStaxWriter()
81      {
82          idMap = new java.util.HashMap();
83      } //-- org.apache.maven.continuum.model.project.io.stax.ContinuumStaxWriter()
84  
85  
86        //-----------/
87       //- Methods -/
88      //-----------/
89  
90      /**
91       * Method write.
92       * 
93       * @param writer
94       * @param continuumDatabase
95       * @throws java.io.IOException
96       * @throws XMLStreamException
97       */
98      public void write( Writer writer, ContinuumDatabase continuumDatabase )
99          throws java.io.IOException, XMLStreamException
100     {
101         XMLOutputFactory factory = XMLOutputFactory.newInstance();
102         boolean supportWindowsLineEndings = false;
103         if ( factory.isPropertySupported( "com.ctc.wstx.outputEscapeCr" ) )
104         {
105             factory.setProperty( "com.ctc.wstx.outputEscapeCr", Boolean.FALSE );
106             supportWindowsLineEndings = true;
107         }
108         if ( factory.isPropertySupported( "org.codehaus.stax2.automaticEmptyElements" ) )
109         {
110             factory.setProperty( "org.codehaus.stax2.automaticEmptyElements", Boolean.FALSE );
111         }
112         IndentingXMLStreamWriter serializer = new IndentingXMLStreamWriter( factory.createXMLStreamWriter( writer ) );
113         if ( supportWindowsLineEndings )
114         {
115             serializer.setNewLine( serializer.getLineSeparator() );
116         }
117         serializer.writeStartDocument( continuumDatabase.getModelEncoding(), "1.0" );
118         writeContinuumDatabase( continuumDatabase, "continuumDatabase", serializer );
119         serializer.writeEndDocument();
120     } //-- void write( Writer, ContinuumDatabase )
121 
122     /**
123      * Method writeAbstractPurgeConfiguration.
124      * 
125      * @param abstractPurgeConfiguration
126      * @param serializer
127      * @param tagName
128      * @throws java.io.IOException
129      * @throws XMLStreamException
130      */
131     private void writeAbstractPurgeConfiguration( AbstractPurgeConfiguration abstractPurgeConfiguration, String tagName, XMLStreamWriter serializer )
132         throws java.io.IOException, XMLStreamException
133     {
134         if ( abstractPurgeConfiguration != null )
135         {
136             serializer.writeStartElement( tagName );
137             if ( abstractPurgeConfiguration.getId() != 0 )
138             {
139                 serializer.writeStartElement( "id" );
140                 serializer.writeCharacters( String.valueOf( abstractPurgeConfiguration.getId() ) );
141                 serializer.writeEndElement();
142             }
143             if ( abstractPurgeConfiguration.getDescription() != null )
144             {
145                 serializer.writeStartElement( "description" );
146                 serializer.writeCharacters( abstractPurgeConfiguration.getDescription() );
147                 serializer.writeEndElement();
148             }
149             if ( abstractPurgeConfiguration.isDeleteAll() != false )
150             {
151                 serializer.writeStartElement( "deleteAll" );
152                 serializer.writeCharacters( String.valueOf( abstractPurgeConfiguration.isDeleteAll() ) );
153                 serializer.writeEndElement();
154             }
155             if ( abstractPurgeConfiguration.getRetentionCount() != 2 )
156             {
157                 serializer.writeStartElement( "retentionCount" );
158                 serializer.writeCharacters( String.valueOf( abstractPurgeConfiguration.getRetentionCount() ) );
159                 serializer.writeEndElement();
160             }
161             if ( abstractPurgeConfiguration.getDaysOlder() != 100 )
162             {
163                 serializer.writeStartElement( "daysOlder" );
164                 serializer.writeCharacters( String.valueOf( abstractPurgeConfiguration.getDaysOlder() ) );
165                 serializer.writeEndElement();
166             }
167             if ( abstractPurgeConfiguration.isEnabled() != true )
168             {
169                 serializer.writeStartElement( "enabled" );
170                 serializer.writeCharacters( String.valueOf( abstractPurgeConfiguration.isEnabled() ) );
171                 serializer.writeEndElement();
172             }
173             if ( abstractPurgeConfiguration.getSchedule() != null )
174             {
175                 serializer.writeStartElement( "schedule" );
176                 serializer.writeAttribute( "id", String.valueOf( abstractPurgeConfiguration.getSchedule().getId() ) );
177                 serializer.writeEndElement();
178             }
179             if ( abstractPurgeConfiguration.isDefaultPurge() != false )
180             {
181                 serializer.writeStartElement( "defaultPurge" );
182                 serializer.writeCharacters( String.valueOf( abstractPurgeConfiguration.isDefaultPurge() ) );
183                 serializer.writeEndElement();
184             }
185             serializer.writeEndElement();
186         }
187     } //-- void writeAbstractPurgeConfiguration( AbstractPurgeConfiguration, String, XMLStreamWriter )
188 
189     /**
190      * Method writeBuildDefinition.
191      * 
192      * @param buildDefinition
193      * @param serializer
194      * @param tagName
195      * @throws java.io.IOException
196      * @throws XMLStreamException
197      */
198     private void writeBuildDefinition( BuildDefinition buildDefinition, String tagName, XMLStreamWriter serializer )
199         throws java.io.IOException, XMLStreamException
200     {
201         if ( buildDefinition != null )
202         {
203             serializer.writeStartElement( tagName );
204             if ( buildDefinition.getId() != 0 )
205             {
206                 serializer.writeStartElement( "id" );
207                 serializer.writeCharacters( String.valueOf( buildDefinition.getId() ) );
208                 serializer.writeEndElement();
209             }
210             if ( buildDefinition.isDefaultForProject() != false )
211             {
212                 serializer.writeStartElement( "defaultForProject" );
213                 serializer.writeCharacters( String.valueOf( buildDefinition.isDefaultForProject() ) );
214                 serializer.writeEndElement();
215             }
216             if ( buildDefinition.getGoals() != null )
217             {
218                 serializer.writeStartElement( "goals" );
219                 serializer.writeCharacters( buildDefinition.getGoals() );
220                 serializer.writeEndElement();
221             }
222             if ( buildDefinition.getArguments() != null )
223             {
224                 serializer.writeStartElement( "arguments" );
225                 serializer.writeCharacters( buildDefinition.getArguments() );
226                 serializer.writeEndElement();
227             }
228             if ( buildDefinition.getBuildFile() != null )
229             {
230                 serializer.writeStartElement( "buildFile" );
231                 serializer.writeCharacters( buildDefinition.getBuildFile() );
232                 serializer.writeEndElement();
233             }
234             if ( buildDefinition.isBuildFresh() != false )
235             {
236                 serializer.writeStartElement( "buildFresh" );
237                 serializer.writeCharacters( String.valueOf( buildDefinition.isBuildFresh() ) );
238                 serializer.writeEndElement();
239             }
240             if ( buildDefinition.getDescription() != null )
241             {
242                 serializer.writeStartElement( "description" );
243                 serializer.writeCharacters( buildDefinition.getDescription() );
244                 serializer.writeEndElement();
245             }
246             if ( buildDefinition.getType() != null )
247             {
248                 serializer.writeStartElement( "type" );
249                 serializer.writeCharacters( buildDefinition.getType() );
250                 serializer.writeEndElement();
251             }
252             if ( buildDefinition.getSchedule() != null )
253             {
254                 serializer.writeStartElement( "schedule" );
255                 serializer.writeAttribute( "id", String.valueOf( buildDefinition.getSchedule().getId() ) );
256                 serializer.writeEndElement();
257             }
258             if ( buildDefinition.getProfile() != null )
259             {
260                 serializer.writeStartElement( "profile" );
261                 serializer.writeAttribute( "id", String.valueOf( buildDefinition.getProfile().getId() ) );
262                 serializer.writeEndElement();
263             }
264             if ( buildDefinition.isAlwaysBuild() != false )
265             {
266                 serializer.writeStartElement( "alwaysBuild" );
267                 serializer.writeCharacters( String.valueOf( buildDefinition.isAlwaysBuild() ) );
268                 serializer.writeEndElement();
269             }
270             if ( buildDefinition.isTemplate() != false )
271             {
272                 serializer.writeStartElement( "template" );
273                 serializer.writeCharacters( String.valueOf( buildDefinition.isTemplate() ) );
274                 serializer.writeEndElement();
275             }
276             if ( buildDefinition.getUpdatePolicy() != 0 )
277             {
278                 serializer.writeStartElement( "updatePolicy" );
279                 serializer.writeCharacters( String.valueOf( buildDefinition.getUpdatePolicy() ) );
280                 serializer.writeEndElement();
281             }
282             serializer.writeEndElement();
283         }
284     } //-- void writeBuildDefinition( BuildDefinition, String, XMLStreamWriter )
285 
286     /**
287      * Method writeBuildDefinitionTemplate.
288      * 
289      * @param buildDefinitionTemplate
290      * @param serializer
291      * @param tagName
292      * @throws java.io.IOException
293      * @throws XMLStreamException
294      */
295     private void writeBuildDefinitionTemplate( BuildDefinitionTemplate buildDefinitionTemplate, String tagName, XMLStreamWriter serializer )
296         throws java.io.IOException, XMLStreamException
297     {
298         if ( buildDefinitionTemplate != null )
299         {
300             serializer.writeStartElement( tagName );
301             if ( buildDefinitionTemplate.getId() != 0 )
302             {
303                 serializer.writeStartElement( "id" );
304                 serializer.writeCharacters( String.valueOf( buildDefinitionTemplate.getId() ) );
305                 serializer.writeEndElement();
306             }
307             if ( buildDefinitionTemplate.getName() != null )
308             {
309                 serializer.writeStartElement( "name" );
310                 serializer.writeCharacters( buildDefinitionTemplate.getName() );
311                 serializer.writeEndElement();
312             }
313             if ( buildDefinitionTemplate.isContinuumDefault() != false )
314             {
315                 serializer.writeStartElement( "continuumDefault" );
316                 serializer.writeCharacters( String.valueOf( buildDefinitionTemplate.isContinuumDefault() ) );
317                 serializer.writeEndElement();
318             }
319             if ( buildDefinitionTemplate.getType() != null )
320             {
321                 serializer.writeStartElement( "type" );
322                 serializer.writeCharacters( buildDefinitionTemplate.getType() );
323                 serializer.writeEndElement();
324             }
325             if ( ( buildDefinitionTemplate.getBuildDefinitions() != null ) && ( buildDefinitionTemplate.getBuildDefinitions().size() > 0 ) )
326             {
327                 serializer.writeStartElement( "buildDefinitions" );
328                 for ( Iterator iter = buildDefinitionTemplate.getBuildDefinitions().iterator(); iter.hasNext(); )
329                 {
330                     BuildDefinition o = (BuildDefinition) iter.next();
331                     serializer.writeStartElement( "buildDefinition" );
332                     serializer.writeAttribute( "id", String.valueOf( o.getId() ) );
333                     serializer.writeEndElement();
334                 }
335                 serializer.writeEndElement();
336             }
337             serializer.writeEndElement();
338         }
339     } //-- void writeBuildDefinitionTemplate( BuildDefinitionTemplate, String, XMLStreamWriter )
340 
341     /**
342      * Method writeBuildQueue.
343      * 
344      * @param buildQueue
345      * @param serializer
346      * @param tagName
347      * @throws java.io.IOException
348      * @throws XMLStreamException
349      */
350     private void writeBuildQueue( BuildQueue buildQueue, String tagName, XMLStreamWriter serializer )
351         throws java.io.IOException, XMLStreamException
352     {
353         if ( buildQueue != null )
354         {
355             serializer.writeStartElement( tagName );
356             if ( buildQueue.getId() != 0 )
357             {
358                 serializer.writeStartElement( "id" );
359                 serializer.writeCharacters( String.valueOf( buildQueue.getId() ) );
360                 serializer.writeEndElement();
361             }
362             if ( ( buildQueue.getName() != null ) && !buildQueue.getName().equals( "" ) )
363             {
364                 serializer.writeStartElement( "name" );
365                 serializer.writeCharacters( buildQueue.getName() );
366                 serializer.writeEndElement();
367             }
368             serializer.writeEndElement();
369         }
370     } //-- void writeBuildQueue( BuildQueue, String, XMLStreamWriter )
371 
372     /**
373      * Method writeBuildResult.
374      * 
375      * @param buildResult
376      * @param serializer
377      * @param tagName
378      * @throws java.io.IOException
379      * @throws XMLStreamException
380      */
381     private void writeBuildResult( BuildResult buildResult, String tagName, XMLStreamWriter serializer )
382         throws java.io.IOException, XMLStreamException
383     {
384         if ( buildResult != null )
385         {
386             serializer.writeStartElement( tagName );
387             if ( buildResult.getProject() != null )
388             {
389                 serializer.writeStartElement( "project" );
390                 serializer.writeAttribute( "id", String.valueOf( buildResult.getProject().getId() ) );
391                 serializer.writeEndElement();
392             }
393             if ( buildResult.getBuildDefinition() != null )
394             {
395                 serializer.writeStartElement( "buildDefinition" );
396                 serializer.writeAttribute( "id", String.valueOf( buildResult.getBuildDefinition().getId() ) );
397                 serializer.writeEndElement();
398             }
399             if ( buildResult.getId() != 0 )
400             {
401                 serializer.writeStartElement( "id" );
402                 serializer.writeCharacters( String.valueOf( buildResult.getId() ) );
403                 serializer.writeEndElement();
404             }
405             if ( buildResult.getBuildNumber() != 0 )
406             {
407                 serializer.writeStartElement( "buildNumber" );
408                 serializer.writeCharacters( String.valueOf( buildResult.getBuildNumber() ) );
409                 serializer.writeEndElement();
410             }
411             if ( buildResult.getUsername() != null )
412             {
413                 serializer.writeStartElement( "username" );
414                 serializer.writeCharacters( buildResult.getUsername() );
415                 serializer.writeEndElement();
416             }
417             if ( buildResult.getState() != 0 )
418             {
419                 serializer.writeStartElement( "state" );
420                 serializer.writeCharacters( String.valueOf( buildResult.getState() ) );
421                 serializer.writeEndElement();
422             }
423             if ( buildResult.getTrigger() != 0 )
424             {
425                 serializer.writeStartElement( "trigger" );
426                 serializer.writeCharacters( String.valueOf( buildResult.getTrigger() ) );
427                 serializer.writeEndElement();
428             }
429             if ( buildResult.getStartTime() != 0L )
430             {
431                 serializer.writeStartElement( "startTime" );
432                 serializer.writeCharacters( String.valueOf( buildResult.getStartTime() ) );
433                 serializer.writeEndElement();
434             }
435             if ( buildResult.getEndTime() != 0L )
436             {
437                 serializer.writeStartElement( "endTime" );
438                 serializer.writeCharacters( String.valueOf( buildResult.getEndTime() ) );
439                 serializer.writeEndElement();
440             }
441             if ( buildResult.getError() != null )
442             {
443                 serializer.writeStartElement( "error" );
444                 serializer.writeCharacters( buildResult.getError() );
445                 serializer.writeEndElement();
446             }
447             if ( buildResult.isSuccess() != false )
448             {
449                 serializer.writeStartElement( "success" );
450                 serializer.writeCharacters( String.valueOf( buildResult.isSuccess() ) );
451                 serializer.writeEndElement();
452             }
453             if ( buildResult.getExitCode() != 0 )
454             {
455                 serializer.writeStartElement( "exitCode" );
456                 serializer.writeCharacters( String.valueOf( buildResult.getExitCode() ) );
457                 serializer.writeEndElement();
458             }
459             if ( buildResult.getScmResult() != null )
460             {
461                 writeScmResult( (ScmResult) buildResult.getScmResult(), "scmResult", serializer );
462             }
463             if ( ( buildResult.getModifiedDependencies() != null ) && ( buildResult.getModifiedDependencies().size() > 0 ) )
464             {
465                 serializer.writeStartElement( "modifiedDependencies" );
466                 for ( Iterator iter = buildResult.getModifiedDependencies().iterator(); iter.hasNext(); )
467                 {
468                     ProjectDependency o = (ProjectDependency) iter.next();
469                     writeProjectDependency( o, "modifiedDependency", serializer );
470                 }
471                 serializer.writeEndElement();
472             }
473             if ( buildResult.getLastChangedDate() != 0L )
474             {
475                 serializer.writeStartElement( "lastChangedDate" );
476                 serializer.writeCharacters( String.valueOf( buildResult.getLastChangedDate() ) );
477                 serializer.writeEndElement();
478             }
479             if ( ( buildResult.getBuildUrl() != null ) && !buildResult.getBuildUrl().equals( "" ) )
480             {
481                 serializer.writeStartElement( "buildUrl" );
482                 serializer.writeCharacters( buildResult.getBuildUrl() );
483                 serializer.writeEndElement();
484             }
485             serializer.writeEndElement();
486         }
487     } //-- void writeBuildResult( BuildResult, String, XMLStreamWriter )
488 
489     /**
490      * Method writeChangeFile.
491      * 
492      * @param changeFile
493      * @param serializer
494      * @param tagName
495      * @throws java.io.IOException
496      * @throws XMLStreamException
497      */
498     private void writeChangeFile( ChangeFile changeFile, String tagName, XMLStreamWriter serializer )
499         throws java.io.IOException, XMLStreamException
500     {
501         if ( changeFile != null )
502         {
503             serializer.writeStartElement( tagName );
504             if ( changeFile.getName() != null )
505             {
506                 serializer.writeStartElement( "name" );
507                 serializer.writeCharacters( changeFile.getName() );
508                 serializer.writeEndElement();
509             }
510             if ( changeFile.getRevision() != null )
511             {
512                 serializer.writeStartElement( "revision" );
513                 serializer.writeCharacters( changeFile.getRevision() );
514                 serializer.writeEndElement();
515             }
516             if ( changeFile.getStatus() != null )
517             {
518                 serializer.writeStartElement( "status" );
519                 serializer.writeCharacters( changeFile.getStatus() );
520                 serializer.writeEndElement();
521             }
522             serializer.writeEndElement();
523         }
524     } //-- void writeChangeFile( ChangeFile, String, XMLStreamWriter )
525 
526     /**
527      * Method writeChangeSet.
528      * 
529      * @param changeSet
530      * @param serializer
531      * @param tagName
532      * @throws java.io.IOException
533      * @throws XMLStreamException
534      */
535     private void writeChangeSet( ChangeSet changeSet, String tagName, XMLStreamWriter serializer )
536         throws java.io.IOException, XMLStreamException
537     {
538         if ( changeSet != null )
539         {
540             serializer.writeStartElement( tagName );
541             if ( changeSet.getId() != null )
542             {
543                 serializer.writeStartElement( "id" );
544                 serializer.writeCharacters( changeSet.getId() );
545                 serializer.writeEndElement();
546             }
547             if ( changeSet.getAuthor() != null )
548             {
549                 serializer.writeStartElement( "author" );
550                 serializer.writeCharacters( changeSet.getAuthor() );
551                 serializer.writeEndElement();
552             }
553             if ( changeSet.getComment() != null )
554             {
555                 serializer.writeStartElement( "comment" );
556                 serializer.writeCharacters( changeSet.getComment() );
557                 serializer.writeEndElement();
558             }
559             if ( changeSet.getDate() != 0L )
560             {
561                 serializer.writeStartElement( "date" );
562                 serializer.writeCharacters( String.valueOf( changeSet.getDate() ) );
563                 serializer.writeEndElement();
564             }
565             if ( ( changeSet.getFiles() != null ) && ( changeSet.getFiles().size() > 0 ) )
566             {
567                 serializer.writeStartElement( "files" );
568                 for ( Iterator iter = changeSet.getFiles().iterator(); iter.hasNext(); )
569                 {
570                     ChangeFile o = (ChangeFile) iter.next();
571                     writeChangeFile( o, "file", serializer );
572                 }
573                 serializer.writeEndElement();
574             }
575             serializer.writeEndElement();
576         }
577     } //-- void writeChangeSet( ChangeSet, String, XMLStreamWriter )
578 
579     /**
580      * Method writeContinuumDatabase.
581      * 
582      * @param continuumDatabase
583      * @param serializer
584      * @param tagName
585      * @throws java.io.IOException
586      * @throws XMLStreamException
587      */
588     private void writeContinuumDatabase( ContinuumDatabase continuumDatabase, String tagName, XMLStreamWriter serializer )
589         throws java.io.IOException, XMLStreamException
590     {
591         if ( continuumDatabase != null )
592         {
593             serializer.writeStartElement( tagName );
594             if ( ( continuumDatabase.getProjectGroups() != null ) && ( continuumDatabase.getProjectGroups().size() > 0 ) )
595             {
596                 serializer.writeStartElement( "projectGroups" );
597                 for ( Iterator iter = continuumDatabase.getProjectGroups().iterator(); iter.hasNext(); )
598                 {
599                     ProjectGroup o = (ProjectGroup) iter.next();
600                     writeProjectGroup( o, "projectGroup", serializer );
601                 }
602                 serializer.writeEndElement();
603             }
604             if ( continuumDatabase.getSystemConfiguration() != null )
605             {
606                 writeSystemConfiguration( (SystemConfiguration) continuumDatabase.getSystemConfiguration(), "systemConfiguration", serializer );
607             }
608             if ( ( continuumDatabase.getInstallations() != null ) && ( continuumDatabase.getInstallations().size() > 0 ) )
609             {
610                 serializer.writeStartElement( "installations" );
611                 for ( Iterator iter = continuumDatabase.getInstallations().iterator(); iter.hasNext(); )
612                 {
613                     Installation o = (Installation) iter.next();
614                     writeInstallation( o, "installation", serializer );
615                 }
616                 serializer.writeEndElement();
617             }
618             if ( ( continuumDatabase.getSchedules() != null ) && ( continuumDatabase.getSchedules().size() > 0 ) )
619             {
620                 serializer.writeStartElement( "schedules" );
621                 for ( Iterator iter = continuumDatabase.getSchedules().iterator(); iter.hasNext(); )
622                 {
623                     Schedule o = (Schedule) iter.next();
624                     writeSchedule( o, "schedule", serializer );
625                 }
626                 serializer.writeEndElement();
627             }
628             if ( ( continuumDatabase.getProfiles() != null ) && ( continuumDatabase.getProfiles().size() > 0 ) )
629             {
630                 serializer.writeStartElement( "profiles" );
631                 for ( Iterator iter = continuumDatabase.getProfiles().iterator(); iter.hasNext(); )
632                 {
633                     Profile o = (Profile) iter.next();
634                     writeProfile( o, "profile", serializer );
635                 }
636                 serializer.writeEndElement();
637             }
638             if ( ( continuumDatabase.getLocalRepositories() != null ) && ( continuumDatabase.getLocalRepositories().size() > 0 ) )
639             {
640                 serializer.writeStartElement( "localRepositories" );
641                 for ( Iterator iter = continuumDatabase.getLocalRepositories().iterator(); iter.hasNext(); )
642                 {
643                     LocalRepository o = (LocalRepository) iter.next();
644                     writeLocalRepository( o, "localRepository", serializer );
645                 }
646                 serializer.writeEndElement();
647             }
648             if ( ( continuumDatabase.getRepositoryPurgeConfigurations() != null ) && ( continuumDatabase.getRepositoryPurgeConfigurations().size() > 0 ) )
649             {
650                 serializer.writeStartElement( "repositoryPurgeConfigurations" );
651                 for ( Iterator iter = continuumDatabase.getRepositoryPurgeConfigurations().iterator(); iter.hasNext(); )
652                 {
653                     RepositoryPurgeConfiguration o = (RepositoryPurgeConfiguration) iter.next();
654                     writeRepositoryPurgeConfiguration( o, "repositoryPurgeConfiguration", serializer );
655                 }
656                 serializer.writeEndElement();
657             }
658             if ( ( continuumDatabase.getDirectoryPurgeConfigurations() != null ) && ( continuumDatabase.getDirectoryPurgeConfigurations().size() > 0 ) )
659             {
660                 serializer.writeStartElement( "directoryPurgeConfigurations" );
661                 for ( Iterator iter = continuumDatabase.getDirectoryPurgeConfigurations().iterator(); iter.hasNext(); )
662                 {
663                     DirectoryPurgeConfiguration o = (DirectoryPurgeConfiguration) iter.next();
664                     writeDirectoryPurgeConfiguration( o, "directoryPurgeConfiguration", serializer );
665                 }
666                 serializer.writeEndElement();
667             }
668             if ( ( continuumDatabase.getDistributedDirectoryPurgeConfigurations() != null ) && ( continuumDatabase.getDistributedDirectoryPurgeConfigurations().size() > 0 ) )
669             {
670                 serializer.writeStartElement( "distributedDirectoryPurgeConfigurations" );
671                 for ( Iterator iter = continuumDatabase.getDistributedDirectoryPurgeConfigurations().iterator(); iter.hasNext(); )
672                 {
673                     DistributedDirectoryPurgeConfiguration o = (DistributedDirectoryPurgeConfiguration) iter.next();
674                     writeDistributedDirectoryPurgeConfiguration( o, "distributedDirectoryPurgeConfiguration", serializer );
675                 }
676                 serializer.writeEndElement();
677             }
678             if ( ( continuumDatabase.getProjectScmRoots() != null ) && ( continuumDatabase.getProjectScmRoots().size() > 0 ) )
679             {
680                 serializer.writeStartElement( "projectScmRoots" );
681                 for ( Iterator iter = continuumDatabase.getProjectScmRoots().iterator(); iter.hasNext(); )
682                 {
683                     ProjectScmRoot o = (ProjectScmRoot) iter.next();
684                     writeProjectScmRoot( o, "projectScmRoot", serializer );
685                 }
686                 serializer.writeEndElement();
687             }
688             if ( ( continuumDatabase.getContinuumReleaseResults() != null ) && ( continuumDatabase.getContinuumReleaseResults().size() > 0 ) )
689             {
690                 serializer.writeStartElement( "continuumReleaseResults" );
691                 for ( Iterator iter = continuumDatabase.getContinuumReleaseResults().iterator(); iter.hasNext(); )
692                 {
693                     ContinuumReleaseResult o = (ContinuumReleaseResult) iter.next();
694                     writeContinuumReleaseResult( o, "continuumReleaseResult", serializer );
695                 }
696                 serializer.writeEndElement();
697             }
698             if ( ( continuumDatabase.getBuildDefinitionTemplates() != null ) && ( continuumDatabase.getBuildDefinitionTemplates().size() > 0 ) )
699             {
700                 serializer.writeStartElement( "buildDefinitionTemplates" );
701                 for ( Iterator iter = continuumDatabase.getBuildDefinitionTemplates().iterator(); iter.hasNext(); )
702                 {
703                     BuildDefinitionTemplate o = (BuildDefinitionTemplate) iter.next();
704                     writeBuildDefinitionTemplate( o, "buildDefinitionTemplate", serializer );
705                 }
706                 serializer.writeEndElement();
707             }
708             if ( ( continuumDatabase.getBuildQueues() != null ) && ( continuumDatabase.getBuildQueues().size() > 0 ) )
709             {
710                 serializer.writeStartElement( "buildQueues" );
711                 for ( Iterator iter = continuumDatabase.getBuildQueues().iterator(); iter.hasNext(); )
712                 {
713                     BuildQueue o = (BuildQueue) iter.next();
714                     writeBuildQueue( o, "buildQueue", serializer );
715                 }
716                 serializer.writeEndElement();
717             }
718             if ( ( continuumDatabase.getBuildDefinitions() != null ) && ( continuumDatabase.getBuildDefinitions().size() > 0 ) )
719             {
720                 serializer.writeStartElement( "buildDefinitions" );
721                 for ( Iterator iter = continuumDatabase.getBuildDefinitions().iterator(); iter.hasNext(); )
722                 {
723                     BuildDefinition o = (BuildDefinition) iter.next();
724                     writeBuildDefinition( o, "buildDefinition", serializer );
725                 }
726                 serializer.writeEndElement();
727             }
728             serializer.writeEndElement();
729         }
730     } //-- void writeContinuumDatabase( ContinuumDatabase, String, XMLStreamWriter )
731 
732     /**
733      * Method writeContinuumProjectState.
734      * 
735      * @param continuumProjectState
736      * @param serializer
737      * @param tagName
738      * @throws java.io.IOException
739      * @throws XMLStreamException
740      */
741     private void writeContinuumProjectState( ContinuumProjectState continuumProjectState, String tagName, XMLStreamWriter serializer )
742         throws java.io.IOException, XMLStreamException
743     {
744         if ( continuumProjectState != null )
745         {
746             serializer.writeStartElement( tagName );
747             if ( continuumProjectState.getName() != null )
748             {
749                 serializer.writeStartElement( "name" );
750                 serializer.writeCharacters( continuumProjectState.getName() );
751                 serializer.writeEndElement();
752             }
753             serializer.writeEndElement();
754         }
755     } //-- void writeContinuumProjectState( ContinuumProjectState, String, XMLStreamWriter )
756 
757     /**
758      * Method writeContinuumReleaseResult.
759      * 
760      * @param continuumReleaseResult
761      * @param serializer
762      * @param tagName
763      * @throws java.io.IOException
764      * @throws XMLStreamException
765      */
766     private void writeContinuumReleaseResult( ContinuumReleaseResult continuumReleaseResult, String tagName, XMLStreamWriter serializer )
767         throws java.io.IOException, XMLStreamException
768     {
769         if ( continuumReleaseResult != null )
770         {
771             serializer.writeStartElement( tagName );
772             if ( continuumReleaseResult.getId() != 0 )
773             {
774                 serializer.writeStartElement( "id" );
775                 serializer.writeCharacters( String.valueOf( continuumReleaseResult.getId() ) );
776                 serializer.writeEndElement();
777             }
778             if ( continuumReleaseResult.getStartTime() != 0L )
779             {
780                 serializer.writeStartElement( "startTime" );
781                 serializer.writeCharacters( String.valueOf( continuumReleaseResult.getStartTime() ) );
782                 serializer.writeEndElement();
783             }
784             if ( continuumReleaseResult.getEndTime() != 0L )
785             {
786                 serializer.writeStartElement( "endTime" );
787                 serializer.writeCharacters( String.valueOf( continuumReleaseResult.getEndTime() ) );
788                 serializer.writeEndElement();
789             }
790             if ( continuumReleaseResult.getResultCode() != 0 )
791             {
792                 serializer.writeStartElement( "resultCode" );
793                 serializer.writeCharacters( String.valueOf( continuumReleaseResult.getResultCode() ) );
794                 serializer.writeEndElement();
795             }
796             if ( continuumReleaseResult.getProjectGroup() != null )
797             {
798                 serializer.writeStartElement( "projectGroup" );
799                 serializer.writeAttribute( "id", String.valueOf( continuumReleaseResult.getProjectGroup().getId() ) );
800                 serializer.writeEndElement();
801             }
802             if ( continuumReleaseResult.getProject() != null )
803             {
804                 serializer.writeStartElement( "project" );
805                 serializer.writeAttribute( "id", String.valueOf( continuumReleaseResult.getProject().getId() ) );
806                 serializer.writeEndElement();
807             }
808             if ( continuumReleaseResult.getReleaseGoal() != null )
809             {
810                 serializer.writeStartElement( "releaseGoal" );
811                 serializer.writeCharacters( continuumReleaseResult.getReleaseGoal() );
812                 serializer.writeEndElement();
813             }
814             if ( continuumReleaseResult.getUsername() != null )
815             {
816                 serializer.writeStartElement( "username" );
817                 serializer.writeCharacters( continuumReleaseResult.getUsername() );
818                 serializer.writeEndElement();
819             }
820             serializer.writeEndElement();
821         }
822     } //-- void writeContinuumReleaseResult( ContinuumReleaseResult, String, XMLStreamWriter )
823 
824     /**
825      * Method writeDirectoryPurgeConfiguration.
826      * 
827      * @param directoryPurgeConfiguration
828      * @param serializer
829      * @param tagName
830      * @throws java.io.IOException
831      * @throws XMLStreamException
832      */
833     private void writeDirectoryPurgeConfiguration( DirectoryPurgeConfiguration directoryPurgeConfiguration, String tagName, XMLStreamWriter serializer )
834         throws java.io.IOException, XMLStreamException
835     {
836         if ( directoryPurgeConfiguration != null )
837         {
838             serializer.writeStartElement( tagName );
839             if ( directoryPurgeConfiguration.getLocation() != null )
840             {
841                 serializer.writeStartElement( "location" );
842                 serializer.writeCharacters( directoryPurgeConfiguration.getLocation() );
843                 serializer.writeEndElement();
844             }
845             if ( directoryPurgeConfiguration.getDirectoryType() != null )
846             {
847                 serializer.writeStartElement( "directoryType" );
848                 serializer.writeCharacters( directoryPurgeConfiguration.getDirectoryType() );
849                 serializer.writeEndElement();
850             }
851             if ( directoryPurgeConfiguration.getId() != 0 )
852             {
853                 serializer.writeStartElement( "id" );
854                 serializer.writeCharacters( String.valueOf( directoryPurgeConfiguration.getId() ) );
855                 serializer.writeEndElement();
856             }
857             if ( directoryPurgeConfiguration.getDescription() != null )
858             {
859                 serializer.writeStartElement( "description" );
860                 serializer.writeCharacters( directoryPurgeConfiguration.getDescription() );
861                 serializer.writeEndElement();
862             }
863             if ( directoryPurgeConfiguration.isDeleteAll() != false )
864             {
865                 serializer.writeStartElement( "deleteAll" );
866                 serializer.writeCharacters( String.valueOf( directoryPurgeConfiguration.isDeleteAll() ) );
867                 serializer.writeEndElement();
868             }
869             if ( directoryPurgeConfiguration.getRetentionCount() != 2 )
870             {
871                 serializer.writeStartElement( "retentionCount" );
872                 serializer.writeCharacters( String.valueOf( directoryPurgeConfiguration.getRetentionCount() ) );
873                 serializer.writeEndElement();
874             }
875             if ( directoryPurgeConfiguration.getDaysOlder() != 100 )
876             {
877                 serializer.writeStartElement( "daysOlder" );
878                 serializer.writeCharacters( String.valueOf( directoryPurgeConfiguration.getDaysOlder() ) );
879                 serializer.writeEndElement();
880             }
881             if ( directoryPurgeConfiguration.isEnabled() != true )
882             {
883                 serializer.writeStartElement( "enabled" );
884                 serializer.writeCharacters( String.valueOf( directoryPurgeConfiguration.isEnabled() ) );
885                 serializer.writeEndElement();
886             }
887             if ( directoryPurgeConfiguration.getSchedule() != null )
888             {
889                 serializer.writeStartElement( "schedule" );
890                 serializer.writeAttribute( "id", String.valueOf( directoryPurgeConfiguration.getSchedule().getId() ) );
891                 serializer.writeEndElement();
892             }
893             if ( directoryPurgeConfiguration.isDefaultPurge() != false )
894             {
895                 serializer.writeStartElement( "defaultPurge" );
896                 serializer.writeCharacters( String.valueOf( directoryPurgeConfiguration.isDefaultPurge() ) );
897                 serializer.writeEndElement();
898             }
899             serializer.writeEndElement();
900         }
901     } //-- void writeDirectoryPurgeConfiguration( DirectoryPurgeConfiguration, String, XMLStreamWriter )
902 
903     /**
904      * Method writeDistributedDirectoryPurgeConfiguration.
905      * 
906      * @param distributedDirectoryPurgeConfiguration
907      * @param serializer
908      * @param tagName
909      * @throws java.io.IOException
910      * @throws XMLStreamException
911      */
912     private void writeDistributedDirectoryPurgeConfiguration( DistributedDirectoryPurgeConfiguration distributedDirectoryPurgeConfiguration, String tagName, XMLStreamWriter serializer )
913         throws java.io.IOException, XMLStreamException
914     {
915         if ( distributedDirectoryPurgeConfiguration != null )
916         {
917             serializer.writeStartElement( tagName );
918             if ( distributedDirectoryPurgeConfiguration.getBuildAgentUrl() != null )
919             {
920                 serializer.writeStartElement( "buildAgentUrl" );
921                 serializer.writeCharacters( distributedDirectoryPurgeConfiguration.getBuildAgentUrl() );
922                 serializer.writeEndElement();
923             }
924             if ( distributedDirectoryPurgeConfiguration.getDirectoryType() != null )
925             {
926                 serializer.writeStartElement( "directoryType" );
927                 serializer.writeCharacters( distributedDirectoryPurgeConfiguration.getDirectoryType() );
928                 serializer.writeEndElement();
929             }
930             if ( distributedDirectoryPurgeConfiguration.getId() != 0 )
931             {
932                 serializer.writeStartElement( "id" );
933                 serializer.writeCharacters( String.valueOf( distributedDirectoryPurgeConfiguration.getId() ) );
934                 serializer.writeEndElement();
935             }
936             if ( distributedDirectoryPurgeConfiguration.getDescription() != null )
937             {
938                 serializer.writeStartElement( "description" );
939                 serializer.writeCharacters( distributedDirectoryPurgeConfiguration.getDescription() );
940                 serializer.writeEndElement();
941             }
942             if ( distributedDirectoryPurgeConfiguration.isDeleteAll() != false )
943             {
944                 serializer.writeStartElement( "deleteAll" );
945                 serializer.writeCharacters( String.valueOf( distributedDirectoryPurgeConfiguration.isDeleteAll() ) );
946                 serializer.writeEndElement();
947             }
948             if ( distributedDirectoryPurgeConfiguration.getRetentionCount() != 2 )
949             {
950                 serializer.writeStartElement( "retentionCount" );
951                 serializer.writeCharacters( String.valueOf( distributedDirectoryPurgeConfiguration.getRetentionCount() ) );
952                 serializer.writeEndElement();
953             }
954             if ( distributedDirectoryPurgeConfiguration.getDaysOlder() != 100 )
955             {
956                 serializer.writeStartElement( "daysOlder" );
957                 serializer.writeCharacters( String.valueOf( distributedDirectoryPurgeConfiguration.getDaysOlder() ) );
958                 serializer.writeEndElement();
959             }
960             if ( distributedDirectoryPurgeConfiguration.isEnabled() != true )
961             {
962                 serializer.writeStartElement( "enabled" );
963                 serializer.writeCharacters( String.valueOf( distributedDirectoryPurgeConfiguration.isEnabled() ) );
964                 serializer.writeEndElement();
965             }
966             if ( distributedDirectoryPurgeConfiguration.getSchedule() != null )
967             {
968                 serializer.writeStartElement( "schedule" );
969                 serializer.writeAttribute( "id", String.valueOf( distributedDirectoryPurgeConfiguration.getSchedule().getId() ) );
970                 serializer.writeEndElement();
971             }
972             if ( distributedDirectoryPurgeConfiguration.isDefaultPurge() != false )
973             {
974                 serializer.writeStartElement( "defaultPurge" );
975                 serializer.writeCharacters( String.valueOf( distributedDirectoryPurgeConfiguration.isDefaultPurge() ) );
976                 serializer.writeEndElement();
977             }
978             serializer.writeEndElement();
979         }
980     } //-- void writeDistributedDirectoryPurgeConfiguration( DistributedDirectoryPurgeConfiguration, String, XMLStreamWriter )
981 
982     /**
983      * Method writeDom.
984      * 
985      * @param dom
986      * @param serializer
987      * @throws XMLStreamException
988      */
989     private void writeDom( Xpp3Dom dom, XMLStreamWriter serializer )
990         throws XMLStreamException
991     {
992         serializer.writeStartElement( dom.getName() );
993         String[] attributeNames = dom.getAttributeNames();
994         for ( int i = 0; i < attributeNames.length; i++ )
995         {
996             String attributeName = attributeNames[i];
997             serializer.writeAttribute( attributeName, dom.getAttribute( attributeName ) );
998         }
999         Xpp3Dom[] children = dom.getChildren();
1000         for ( int i = 0; i < children.length; i++ )
1001         {
1002             writeDom( children[i], serializer );
1003         }
1004         String value = dom.getValue();
1005         if ( value != null )
1006         {
1007             serializer.writeCharacters( value );
1008         }
1009         serializer.writeEndElement();
1010     } //-- void writeDom( Xpp3Dom, XMLStreamWriter )
1011 
1012     /**
1013      * Method writeInstallation.
1014      * 
1015      * @param installation
1016      * @param serializer
1017      * @param tagName
1018      * @throws java.io.IOException
1019      * @throws XMLStreamException
1020      */
1021     private void writeInstallation( Installation installation, String tagName, XMLStreamWriter serializer )
1022         throws java.io.IOException, XMLStreamException
1023     {
1024         if ( installation != null )
1025         {
1026             serializer.writeStartElement( tagName );
1027             if ( installation.getType() != null )
1028             {
1029                 serializer.writeStartElement( "type" );
1030                 serializer.writeCharacters( installation.getType() );
1031                 serializer.writeEndElement();
1032             }
1033             if ( installation.getVarValue() != null )
1034             {
1035                 serializer.writeStartElement( "varValue" );
1036                 serializer.writeCharacters( installation.getVarValue() );
1037                 serializer.writeEndElement();
1038             }
1039             if ( installation.getVarName() != null )
1040             {
1041                 serializer.writeStartElement( "varName" );
1042                 serializer.writeCharacters( installation.getVarName() );
1043                 serializer.writeEndElement();
1044             }
1045             if ( installation.getName() != null )
1046             {
1047                 serializer.writeStartElement( "name" );
1048                 serializer.writeCharacters( installation.getName() );
1049                 serializer.writeEndElement();
1050             }
1051             if ( installation.getInstallationId() != 0 )
1052             {
1053                 serializer.writeStartElement( "installationId" );
1054                 serializer.writeCharacters( String.valueOf( installation.getInstallationId() ) );
1055                 serializer.writeEndElement();
1056             }
1057             serializer.writeEndElement();
1058         }
1059     } //-- void writeInstallation( Installation, String, XMLStreamWriter )
1060 
1061     /**
1062      * Method writeLocalRepository.
1063      * 
1064      * @param localRepository
1065      * @param serializer
1066      * @param tagName
1067      * @throws java.io.IOException
1068      * @throws XMLStreamException
1069      */
1070     private void writeLocalRepository( LocalRepository localRepository, String tagName, XMLStreamWriter serializer )
1071         throws java.io.IOException, XMLStreamException
1072     {
1073         if ( localRepository != null )
1074         {
1075             serializer.writeStartElement( tagName );
1076             if ( localRepository.getId() != 0 )
1077             {
1078                 serializer.writeStartElement( "id" );
1079                 serializer.writeCharacters( String.valueOf( localRepository.getId() ) );
1080                 serializer.writeEndElement();
1081             }
1082             if ( localRepository.getName() != null )
1083             {
1084                 serializer.writeStartElement( "name" );
1085                 serializer.writeCharacters( localRepository.getName() );
1086                 serializer.writeEndElement();
1087             }
1088             if ( localRepository.getLocation() != null )
1089             {
1090                 serializer.writeStartElement( "location" );
1091                 serializer.writeCharacters( localRepository.getLocation() );
1092                 serializer.writeEndElement();
1093             }
1094             if ( ( localRepository.getLayout() != null ) && !localRepository.getLayout().equals( "default" ) )
1095             {
1096                 serializer.writeStartElement( "layout" );
1097                 serializer.writeCharacters( localRepository.getLayout() );
1098                 serializer.writeEndElement();
1099             }
1100             serializer.writeEndElement();
1101         }
1102     } //-- void writeLocalRepository( LocalRepository, String, XMLStreamWriter )
1103 
1104     /**
1105      * Method writeNotificationAddress.
1106      * 
1107      * @param notificationAddress
1108      * @param serializer
1109      * @param tagName
1110      * @throws java.io.IOException
1111      * @throws XMLStreamException
1112      */
1113     private void writeNotificationAddress( NotificationAddress notificationAddress, String tagName, XMLStreamWriter serializer )
1114         throws java.io.IOException, XMLStreamException
1115     {
1116         if ( notificationAddress != null )
1117         {
1118             serializer.writeStartElement( tagName );
1119             if ( ( notificationAddress.getType() != null ) && !notificationAddress.getType().equals( "mail" ) )
1120             {
1121                 serializer.writeStartElement( "type" );
1122                 serializer.writeCharacters( notificationAddress.getType() );
1123                 serializer.writeEndElement();
1124             }
1125             if ( notificationAddress.getAddress() != null )
1126             {
1127                 serializer.writeStartElement( "address" );
1128                 serializer.writeCharacters( notificationAddress.getAddress() );
1129                 serializer.writeEndElement();
1130             }
1131             if ( ( notificationAddress.getConfiguration() != null ) && ( notificationAddress.getConfiguration().size() > 0 ) )
1132             {
1133                 serializer.writeStartElement( "configuration" );
1134                 for ( Iterator iter = notificationAddress.getConfiguration().keySet().iterator(); iter.hasNext(); )
1135                 {
1136                     String key = (String) iter.next();
1137                     String value = (String) notificationAddress.getConfiguration().get( key );
1138                     serializer.writeStartElement( "" + key + "" );
1139                     serializer.writeCharacters( value );
1140                     serializer.writeEndElement();
1141                 }
1142                 serializer.writeEndElement();
1143             }
1144             serializer.writeEndElement();
1145         }
1146     } //-- void writeNotificationAddress( NotificationAddress, String, XMLStreamWriter )
1147 
1148     /**
1149      * Method writeProfile.
1150      * 
1151      * @param profile
1152      * @param serializer
1153      * @param tagName
1154      * @throws java.io.IOException
1155      * @throws XMLStreamException
1156      */
1157     private void writeProfile( Profile profile, String tagName, XMLStreamWriter serializer )
1158         throws java.io.IOException, XMLStreamException
1159     {
1160         if ( profile != null )
1161         {
1162             serializer.writeStartElement( tagName );
1163             if ( profile.getId() != 0 )
1164             {
1165                 serializer.writeStartElement( "id" );
1166                 serializer.writeCharacters( String.valueOf( profile.getId() ) );
1167                 serializer.writeEndElement();
1168             }
1169             if ( profile.isActive() != false )
1170             {
1171                 serializer.writeStartElement( "active" );
1172                 serializer.writeCharacters( String.valueOf( profile.isActive() ) );
1173                 serializer.writeEndElement();
1174             }
1175             if ( profile.getName() != null )
1176             {
1177                 serializer.writeStartElement( "name" );
1178                 serializer.writeCharacters( profile.getName() );
1179                 serializer.writeEndElement();
1180             }
1181             if ( profile.getDescription() != null )
1182             {
1183                 serializer.writeStartElement( "description" );
1184                 serializer.writeCharacters( profile.getDescription() );
1185                 serializer.writeEndElement();
1186             }
1187             if ( profile.getScmMode() != 0 )
1188             {
1189                 serializer.writeStartElement( "scmMode" );
1190                 serializer.writeCharacters( String.valueOf( profile.getScmMode() ) );
1191                 serializer.writeEndElement();
1192             }
1193             if ( profile.isBuildWithoutChanges() != false )
1194             {
1195                 serializer.writeStartElement( "buildWithoutChanges" );
1196                 serializer.writeCharacters( String.valueOf( profile.isBuildWithoutChanges() ) );
1197                 serializer.writeEndElement();
1198             }
1199             if ( ( profile.getBuildAgentGroup() != null ) && !profile.getBuildAgentGroup().equals( "" ) )
1200             {
1201                 serializer.writeStartElement( "buildAgentGroup" );
1202                 serializer.writeCharacters( profile.getBuildAgentGroup() );
1203                 serializer.writeEndElement();
1204             }
1205             if ( profile.getJdk() != null )
1206             {
1207                 serializer.writeStartElement( "jdk" );
1208                 serializer.writeAttribute( "installationId", String.valueOf( profile.getJdk().getInstallationId() ) );
1209                 serializer.writeEndElement();
1210             }
1211             if ( profile.getBuilder() != null )
1212             {
1213                 serializer.writeStartElement( "builder" );
1214                 serializer.writeAttribute( "installationId", String.valueOf( profile.getBuilder().getInstallationId() ) );
1215                 serializer.writeEndElement();
1216             }
1217             if ( ( profile.getEnvironmentVariables() != null ) && ( profile.getEnvironmentVariables().size() > 0 ) )
1218             {
1219                 serializer.writeStartElement( "environmentVariables" );
1220                 for ( Iterator iter = profile.getEnvironmentVariables().iterator(); iter.hasNext(); )
1221                 {
1222                     Installation o = (Installation) iter.next();
1223                     serializer.writeStartElement( "environmentVariable" );
1224                     serializer.writeAttribute( "installationId", String.valueOf( o.getInstallationId() ) );
1225                     serializer.writeEndElement();
1226                 }
1227                 serializer.writeEndElement();
1228             }
1229             serializer.writeEndElement();
1230         }
1231     } //-- void writeProfile( Profile, String, XMLStreamWriter )
1232 
1233     /**
1234      * Method writeProject.
1235      * 
1236      * @param project
1237      * @param serializer
1238      * @param tagName
1239      * @throws java.io.IOException
1240      * @throws XMLStreamException
1241      */
1242     private void writeProject( Project project, String tagName, XMLStreamWriter serializer )
1243         throws java.io.IOException, XMLStreamException
1244     {
1245         if ( project != null )
1246         {
1247             serializer.writeStartElement( tagName );
1248             if ( project.getId() != 0 )
1249             {
1250                 serializer.writeStartElement( "id" );
1251                 serializer.writeCharacters( String.valueOf( project.getId() ) );
1252                 serializer.writeEndElement();
1253             }
1254             if ( project.getGroupId() != null )
1255             {
1256                 serializer.writeStartElement( "groupId" );
1257                 serializer.writeCharacters( project.getGroupId() );
1258                 serializer.writeEndElement();
1259             }
1260             if ( project.getArtifactId() != null )
1261             {
1262                 serializer.writeStartElement( "artifactId" );
1263                 serializer.writeCharacters( project.getArtifactId() );
1264                 serializer.writeEndElement();
1265             }
1266             if ( project.getExecutorId() != null )
1267             {
1268                 serializer.writeStartElement( "executorId" );
1269                 serializer.writeCharacters( project.getExecutorId() );
1270                 serializer.writeEndElement();
1271             }
1272             if ( project.getName() != null )
1273             {
1274                 serializer.writeStartElement( "name" );
1275                 serializer.writeCharacters( project.getName() );
1276                 serializer.writeEndElement();
1277             }
1278             if ( project.getDescription() != null )
1279             {
1280                 serializer.writeStartElement( "description" );
1281                 serializer.writeCharacters( project.getDescription() );
1282                 serializer.writeEndElement();
1283             }
1284             if ( project.getUrl() != null )
1285             {
1286                 serializer.writeStartElement( "url" );
1287                 serializer.writeCharacters( project.getUrl() );
1288                 serializer.writeEndElement();
1289             }
1290             if ( project.getScmUrl() != null )
1291             {
1292                 serializer.writeStartElement( "scmUrl" );
1293                 serializer.writeCharacters( project.getScmUrl() );
1294                 serializer.writeEndElement();
1295             }
1296             if ( project.getScmTag() != null )
1297             {
1298                 serializer.writeStartElement( "scmTag" );
1299                 serializer.writeCharacters( project.getScmTag() );
1300                 serializer.writeEndElement();
1301             }
1302             if ( project.getScmUsername() != null )
1303             {
1304                 serializer.writeStartElement( "scmUsername" );
1305                 serializer.writeCharacters( project.getScmUsername() );
1306                 serializer.writeEndElement();
1307             }
1308             if ( project.getScmPassword() != null )
1309             {
1310                 serializer.writeStartElement( "scmPassword" );
1311                 serializer.writeCharacters( project.getScmPassword() );
1312                 serializer.writeEndElement();
1313             }
1314             if ( project.isScmUseCache() != false )
1315             {
1316                 serializer.writeStartElement( "scmUseCache" );
1317                 serializer.writeCharacters( String.valueOf( project.isScmUseCache() ) );
1318                 serializer.writeEndElement();
1319             }
1320             if ( project.getVersion() != null )
1321             {
1322                 serializer.writeStartElement( "version" );
1323                 serializer.writeCharacters( project.getVersion() );
1324                 serializer.writeEndElement();
1325             }
1326             if ( project.getState() != 1 )
1327             {
1328                 serializer.writeStartElement( "state" );
1329                 serializer.writeCharacters( String.valueOf( project.getState() ) );
1330                 serializer.writeEndElement();
1331             }
1332             if ( project.getOldState() != 0 )
1333             {
1334                 serializer.writeStartElement( "oldState" );
1335                 serializer.writeCharacters( String.valueOf( project.getOldState() ) );
1336                 serializer.writeEndElement();
1337             }
1338             if ( project.getLatestBuildId() != 0 )
1339             {
1340                 serializer.writeStartElement( "latestBuildId" );
1341                 serializer.writeCharacters( String.valueOf( project.getLatestBuildId() ) );
1342                 serializer.writeEndElement();
1343             }
1344             if ( project.getBuildNumber() != 0 )
1345             {
1346                 serializer.writeStartElement( "buildNumber" );
1347                 serializer.writeCharacters( String.valueOf( project.getBuildNumber() ) );
1348                 serializer.writeEndElement();
1349             }
1350             if ( project.getWorkingDirectory() != null )
1351             {
1352                 serializer.writeStartElement( "workingDirectory" );
1353                 serializer.writeCharacters( project.getWorkingDirectory() );
1354                 serializer.writeEndElement();
1355             }
1356             if ( project.getRelativePath() != null )
1357             {
1358                 serializer.writeStartElement( "relativePath" );
1359                 serializer.writeCharacters( project.getRelativePath() );
1360                 serializer.writeEndElement();
1361             }
1362             if ( project.isCheckedOutInSingleDirectory() != false )
1363             {
1364                 serializer.writeStartElement( "checkedOutInSingleDirectory" );
1365                 serializer.writeCharacters( String.valueOf( project.isCheckedOutInSingleDirectory() ) );
1366                 serializer.writeEndElement();
1367             }
1368             if ( ( project.getBuildResults() != null ) && ( project.getBuildResults().size() > 0 ) )
1369             {
1370                 serializer.writeStartElement( "buildResults" );
1371                 for ( Iterator iter = project.getBuildResults().iterator(); iter.hasNext(); )
1372                 {
1373                     BuildResult o = (BuildResult) iter.next();
1374                     writeBuildResult( o, "buildResult", serializer );
1375                 }
1376                 serializer.writeEndElement();
1377             }
1378             if ( project.getCheckoutResult() != null )
1379             {
1380                 writeScmResult( (ScmResult) project.getCheckoutResult(), "checkoutResult", serializer );
1381             }
1382             if ( ( project.getDevelopers() != null ) && ( project.getDevelopers().size() > 0 ) )
1383             {
1384                 serializer.writeStartElement( "developers" );
1385                 for ( Iterator iter = project.getDevelopers().iterator(); iter.hasNext(); )
1386                 {
1387                     ProjectDeveloper o = (ProjectDeveloper) iter.next();
1388                     writeProjectDeveloper( o, "developer", serializer );
1389                 }
1390                 serializer.writeEndElement();
1391             }
1392             if ( project.getParent() != null )
1393             {
1394                 writeProjectDependency( (ProjectDependency) project.getParent(), "parent", serializer );
1395             }
1396             if ( ( project.getDependencies() != null ) && ( project.getDependencies().size() > 0 ) )
1397             {
1398                 serializer.writeStartElement( "dependencies" );
1399                 for ( Iterator iter = project.getDependencies().iterator(); iter.hasNext(); )
1400                 {
1401                     ProjectDependency o = (ProjectDependency) iter.next();
1402                     writeProjectDependency( o, "dependency", serializer );
1403                 }
1404                 serializer.writeEndElement();
1405             }
1406             if ( project.getProjectGroup() != null )
1407             {
1408                 serializer.writeStartElement( "projectGroup" );
1409                 serializer.writeAttribute( "id", String.valueOf( project.getProjectGroup().getId() ) );
1410                 serializer.writeEndElement();
1411             }
1412             if ( ( project.getNotifiers() != null ) && ( project.getNotifiers().size() > 0 ) )
1413             {
1414                 serializer.writeStartElement( "notifiers" );
1415                 for ( Iterator iter = project.getNotifiers().iterator(); iter.hasNext(); )
1416                 {
1417                     ProjectNotifier o = (ProjectNotifier) iter.next();
1418                     writeProjectNotifier( o, "notifier", serializer );
1419                 }
1420                 serializer.writeEndElement();
1421             }
1422             if ( ( project.getBuildDefinitions() != null ) && ( project.getBuildDefinitions().size() > 0 ) )
1423             {
1424                 serializer.writeStartElement( "buildDefinitions" );
1425                 for ( Iterator iter = project.getBuildDefinitions().iterator(); iter.hasNext(); )
1426                 {
1427                     BuildDefinition o = (BuildDefinition) iter.next();
1428                     writeBuildDefinition( o, "buildDefinition", serializer );
1429                 }
1430                 serializer.writeEndElement();
1431             }
1432             serializer.writeEndElement();
1433         }
1434     } //-- void writeProject( Project, String, XMLStreamWriter )
1435 
1436     /**
1437      * Method writeProjectDependency.
1438      * 
1439      * @param projectDependency
1440      * @param serializer
1441      * @param tagName
1442      * @throws java.io.IOException
1443      * @throws XMLStreamException
1444      */
1445     private void writeProjectDependency( ProjectDependency projectDependency, String tagName, XMLStreamWriter serializer )
1446         throws java.io.IOException, XMLStreamException
1447     {
1448         if ( projectDependency != null )
1449         {
1450             serializer.writeStartElement( tagName );
1451             if ( projectDependency.getGroupId() != null )
1452             {
1453                 serializer.writeStartElement( "groupId" );
1454                 serializer.writeCharacters( projectDependency.getGroupId() );
1455                 serializer.writeEndElement();
1456             }
1457             if ( projectDependency.getArtifactId() != null )
1458             {
1459                 serializer.writeStartElement( "artifactId" );
1460                 serializer.writeCharacters( projectDependency.getArtifactId() );
1461                 serializer.writeEndElement();
1462             }
1463             if ( projectDependency.getVersion() != null )
1464             {
1465                 serializer.writeStartElement( "version" );
1466                 serializer.writeCharacters( projectDependency.getVersion() );
1467                 serializer.writeEndElement();
1468             }
1469             serializer.writeEndElement();
1470         }
1471     } //-- void writeProjectDependency( ProjectDependency, String, XMLStreamWriter )
1472 
1473     /**
1474      * Method writeProjectDeveloper.
1475      * 
1476      * @param projectDeveloper
1477      * @param serializer
1478      * @param tagName
1479      * @throws java.io.IOException
1480      * @throws XMLStreamException
1481      */
1482     private void writeProjectDeveloper( ProjectDeveloper projectDeveloper, String tagName, XMLStreamWriter serializer )
1483         throws java.io.IOException, XMLStreamException
1484     {
1485         if ( projectDeveloper != null )
1486         {
1487             serializer.writeStartElement( tagName );
1488             if ( projectDeveloper.getScmId() != null )
1489             {
1490                 serializer.writeStartElement( "scmId" );
1491                 serializer.writeCharacters( projectDeveloper.getScmId() );
1492                 serializer.writeEndElement();
1493             }
1494             if ( projectDeveloper.getName() != null )
1495             {
1496                 serializer.writeStartElement( "name" );
1497                 serializer.writeCharacters( projectDeveloper.getName() );
1498                 serializer.writeEndElement();
1499             }
1500             if ( projectDeveloper.getEmail() != null )
1501             {
1502                 serializer.writeStartElement( "email" );
1503                 serializer.writeCharacters( projectDeveloper.getEmail() );
1504                 serializer.writeEndElement();
1505             }
1506             if ( projectDeveloper.getContinuumId() != 0 )
1507             {
1508                 serializer.writeStartElement( "continuumId" );
1509                 serializer.writeCharacters( String.valueOf( projectDeveloper.getContinuumId() ) );
1510                 serializer.writeEndElement();
1511             }
1512             serializer.writeEndElement();
1513         }
1514     } //-- void writeProjectDeveloper( ProjectDeveloper, String, XMLStreamWriter )
1515 
1516     /**
1517      * Method writeProjectGroup.
1518      * 
1519      * @param projectGroup
1520      * @param serializer
1521      * @param tagName
1522      * @throws java.io.IOException
1523      * @throws XMLStreamException
1524      */
1525     private void writeProjectGroup( ProjectGroup projectGroup, String tagName, XMLStreamWriter serializer )
1526         throws java.io.IOException, XMLStreamException
1527     {
1528         if ( projectGroup != null )
1529         {
1530             serializer.writeStartElement( tagName );
1531             if ( projectGroup.getId() != 0 )
1532             {
1533                 serializer.writeStartElement( "id" );
1534                 serializer.writeCharacters( String.valueOf( projectGroup.getId() ) );
1535                 serializer.writeEndElement();
1536             }
1537             if ( projectGroup.getGroupId() != null )
1538             {
1539                 serializer.writeStartElement( "groupId" );
1540                 serializer.writeCharacters( projectGroup.getGroupId() );
1541                 serializer.writeEndElement();
1542             }
1543             if ( projectGroup.getName() != null )
1544             {
1545                 serializer.writeStartElement( "name" );
1546                 serializer.writeCharacters( projectGroup.getName() );
1547                 serializer.writeEndElement();
1548             }
1549             if ( projectGroup.getDescription() != null )
1550             {
1551                 serializer.writeStartElement( "description" );
1552                 serializer.writeCharacters( projectGroup.getDescription() );
1553                 serializer.writeEndElement();
1554             }
1555             if ( ( projectGroup.getProjects() != null ) && ( projectGroup.getProjects().size() > 0 ) )
1556             {
1557                 serializer.writeStartElement( "projects" );
1558                 for ( Iterator iter = projectGroup.getProjects().iterator(); iter.hasNext(); )
1559                 {
1560                     Project o = (Project) iter.next();
1561                     writeProject( o, "project", serializer );
1562                 }
1563                 serializer.writeEndElement();
1564             }
1565             if ( ( projectGroup.getNotifiers() != null ) && ( projectGroup.getNotifiers().size() > 0 ) )
1566             {
1567                 serializer.writeStartElement( "notifiers" );
1568                 for ( Iterator iter = projectGroup.getNotifiers().iterator(); iter.hasNext(); )
1569                 {
1570                     ProjectNotifier o = (ProjectNotifier) iter.next();
1571                     writeProjectNotifier( o, "notifier", serializer );
1572                 }
1573                 serializer.writeEndElement();
1574             }
1575             if ( ( projectGroup.getBuildDefinitions() != null ) && ( projectGroup.getBuildDefinitions().size() > 0 ) )
1576             {
1577                 serializer.writeStartElement( "buildDefinitions" );
1578                 for ( Iterator iter = projectGroup.getBuildDefinitions().iterator(); iter.hasNext(); )
1579                 {
1580                     BuildDefinition o = (BuildDefinition) iter.next();
1581                     writeBuildDefinition( o, "buildDefinition", serializer );
1582                 }
1583                 serializer.writeEndElement();
1584             }
1585             if ( projectGroup.getLocalRepository() != null )
1586             {
1587                 serializer.writeStartElement( "localRepository" );
1588                 serializer.writeAttribute( "id", String.valueOf( projectGroup.getLocalRepository().getId() ) );
1589                 serializer.writeEndElement();
1590             }
1591             serializer.writeEndElement();
1592         }
1593     } //-- void writeProjectGroup( ProjectGroup, String, XMLStreamWriter )
1594 
1595     /**
1596      * Method writeProjectNotifier.
1597      * 
1598      * @param projectNotifier
1599      * @param serializer
1600      * @param tagName
1601      * @throws java.io.IOException
1602      * @throws XMLStreamException
1603      */
1604     private void writeProjectNotifier( ProjectNotifier projectNotifier, String tagName, XMLStreamWriter serializer )
1605         throws java.io.IOException, XMLStreamException
1606     {
1607         if ( projectNotifier != null )
1608         {
1609             serializer.writeStartElement( tagName );
1610             if ( projectNotifier.getId() != 0 )
1611             {
1612                 serializer.writeStartElement( "id" );
1613                 serializer.writeCharacters( String.valueOf( projectNotifier.getId() ) );
1614                 serializer.writeEndElement();
1615             }
1616             if ( ( projectNotifier.getType() != null ) && !projectNotifier.getType().equals( "mail" ) )
1617             {
1618                 serializer.writeStartElement( "type" );
1619                 serializer.writeCharacters( projectNotifier.getType() );
1620                 serializer.writeEndElement();
1621             }
1622             if ( projectNotifier.getFrom() != 0 )
1623             {
1624                 serializer.writeStartElement( "from" );
1625                 serializer.writeCharacters( String.valueOf( projectNotifier.getFrom() ) );
1626                 serializer.writeEndElement();
1627             }
1628             if ( projectNotifier.isEnabled() != true )
1629             {
1630                 serializer.writeStartElement( "enabled" );
1631                 serializer.writeCharacters( String.valueOf( projectNotifier.isEnabled() ) );
1632                 serializer.writeEndElement();
1633             }
1634             if ( projectNotifier.getRecipientType() != 0 )
1635             {
1636                 serializer.writeStartElement( "recipientType" );
1637                 serializer.writeCharacters( String.valueOf( projectNotifier.getRecipientType() ) );
1638                 serializer.writeEndElement();
1639             }
1640             if ( projectNotifier.isSendOnSuccess() != true )
1641             {
1642                 serializer.writeStartElement( "sendOnSuccess" );
1643                 serializer.writeCharacters( String.valueOf( projectNotifier.isSendOnSuccess() ) );
1644                 serializer.writeEndElement();
1645             }
1646             if ( projectNotifier.isSendOnFailure() != true )
1647             {
1648                 serializer.writeStartElement( "sendOnFailure" );
1649                 serializer.writeCharacters( String.valueOf( projectNotifier.isSendOnFailure() ) );
1650                 serializer.writeEndElement();
1651             }
1652             if ( projectNotifier.isSendOnError() != true )
1653             {
1654                 serializer.writeStartElement( "sendOnError" );
1655                 serializer.writeCharacters( String.valueOf( projectNotifier.isSendOnError() ) );
1656                 serializer.writeEndElement();
1657             }
1658             if ( projectNotifier.isSendOnWarning() != true )
1659             {
1660                 serializer.writeStartElement( "sendOnWarning" );
1661                 serializer.writeCharacters( String.valueOf( projectNotifier.isSendOnWarning() ) );
1662                 serializer.writeEndElement();
1663             }
1664             if ( ( projectNotifier.getConfiguration() != null ) && ( projectNotifier.getConfiguration().size() > 0 ) )
1665             {
1666                 serializer.writeStartElement( "configuration" );
1667                 for ( Iterator iter = projectNotifier.getConfiguration().keySet().iterator(); iter.hasNext(); )
1668                 {
1669                     String key = (String) iter.next();
1670                     String value = (String) projectNotifier.getConfiguration().get( key );
1671                     serializer.writeStartElement( "" + key + "" );
1672                     serializer.writeCharacters( value );
1673                     serializer.writeEndElement();
1674                 }
1675                 serializer.writeEndElement();
1676             }
1677             if ( projectNotifier.isSendOnScmFailure() != false )
1678             {
1679                 serializer.writeStartElement( "sendOnScmFailure" );
1680                 serializer.writeCharacters( String.valueOf( projectNotifier.isSendOnScmFailure() ) );
1681                 serializer.writeEndElement();
1682             }
1683             serializer.writeEndElement();
1684         }
1685     } //-- void writeProjectNotifier( ProjectNotifier, String, XMLStreamWriter )
1686 
1687     /**
1688      * Method writeProjectScmRoot.
1689      * 
1690      * @param projectScmRoot
1691      * @param serializer
1692      * @param tagName
1693      * @throws java.io.IOException
1694      * @throws XMLStreamException
1695      */
1696     private void writeProjectScmRoot( ProjectScmRoot projectScmRoot, String tagName, XMLStreamWriter serializer )
1697         throws java.io.IOException, XMLStreamException
1698     {
1699         if ( projectScmRoot != null )
1700         {
1701             serializer.writeStartElement( tagName );
1702             if ( projectScmRoot.getId() != 0 )
1703             {
1704                 serializer.writeStartElement( "id" );
1705                 serializer.writeCharacters( String.valueOf( projectScmRoot.getId() ) );
1706                 serializer.writeEndElement();
1707             }
1708             if ( projectScmRoot.getScmRootAddress() != null )
1709             {
1710                 serializer.writeStartElement( "scmRootAddress" );
1711                 serializer.writeCharacters( projectScmRoot.getScmRootAddress() );
1712                 serializer.writeEndElement();
1713             }
1714             if ( projectScmRoot.getOldState() != 0 )
1715             {
1716                 serializer.writeStartElement( "oldState" );
1717                 serializer.writeCharacters( String.valueOf( projectScmRoot.getOldState() ) );
1718                 serializer.writeEndElement();
1719             }
1720             if ( projectScmRoot.getState() != 0 )
1721             {
1722                 serializer.writeStartElement( "state" );
1723                 serializer.writeCharacters( String.valueOf( projectScmRoot.getState() ) );
1724                 serializer.writeEndElement();
1725             }
1726             if ( projectScmRoot.getError() != null )
1727             {
1728                 serializer.writeStartElement( "error" );
1729                 serializer.writeCharacters( projectScmRoot.getError() );
1730                 serializer.writeEndElement();
1731             }
1732             if ( projectScmRoot.getProjectGroup() != null )
1733             {
1734                 serializer.writeStartElement( "projectGroup" );
1735                 serializer.writeAttribute( "id", String.valueOf( projectScmRoot.getProjectGroup().getId() ) );
1736                 serializer.writeEndElement();
1737             }
1738             serializer.writeEndElement();
1739         }
1740     } //-- void writeProjectScmRoot( ProjectScmRoot, String, XMLStreamWriter )
1741 
1742     /**
1743      * Method writeRepositoryPurgeConfiguration.
1744      * 
1745      * @param repositoryPurgeConfiguration
1746      * @param serializer
1747      * @param tagName
1748      * @throws java.io.IOException
1749      * @throws XMLStreamException
1750      */
1751     private void writeRepositoryPurgeConfiguration( RepositoryPurgeConfiguration repositoryPurgeConfiguration, String tagName, XMLStreamWriter serializer )
1752         throws java.io.IOException, XMLStreamException
1753     {
1754         if ( repositoryPurgeConfiguration != null )
1755         {
1756             serializer.writeStartElement( tagName );
1757             if ( repositoryPurgeConfiguration.getRepository() != null )
1758             {
1759                 serializer.writeStartElement( "repository" );
1760                 serializer.writeAttribute( "id", String.valueOf( repositoryPurgeConfiguration.getRepository().getId() ) );
1761                 serializer.writeEndElement();
1762             }
1763             if ( repositoryPurgeConfiguration.isDeleteReleasedSnapshots() != false )
1764             {
1765                 serializer.writeStartElement( "deleteReleasedSnapshots" );
1766                 serializer.writeCharacters( String.valueOf( repositoryPurgeConfiguration.isDeleteReleasedSnapshots() ) );
1767                 serializer.writeEndElement();
1768             }
1769             if ( repositoryPurgeConfiguration.getId() != 0 )
1770             {
1771                 serializer.writeStartElement( "id" );
1772                 serializer.writeCharacters( String.valueOf( repositoryPurgeConfiguration.getId() ) );
1773                 serializer.writeEndElement();
1774             }
1775             if ( repositoryPurgeConfiguration.getDescription() != null )
1776             {
1777                 serializer.writeStartElement( "description" );
1778                 serializer.writeCharacters( repositoryPurgeConfiguration.getDescription() );
1779                 serializer.writeEndElement();
1780             }
1781             if ( repositoryPurgeConfiguration.isDeleteAll() != false )
1782             {
1783                 serializer.writeStartElement( "deleteAll" );
1784                 serializer.writeCharacters( String.valueOf( repositoryPurgeConfiguration.isDeleteAll() ) );
1785                 serializer.writeEndElement();
1786             }
1787             if ( repositoryPurgeConfiguration.getRetentionCount() != 2 )
1788             {
1789                 serializer.writeStartElement( "retentionCount" );
1790                 serializer.writeCharacters( String.valueOf( repositoryPurgeConfiguration.getRetentionCount() ) );
1791                 serializer.writeEndElement();
1792             }
1793             if ( repositoryPurgeConfiguration.getDaysOlder() != 100 )
1794             {
1795                 serializer.writeStartElement( "daysOlder" );
1796                 serializer.writeCharacters( String.valueOf( repositoryPurgeConfiguration.getDaysOlder() ) );
1797                 serializer.writeEndElement();
1798             }
1799             if ( repositoryPurgeConfiguration.isEnabled() != true )
1800             {
1801                 serializer.writeStartElement( "enabled" );
1802                 serializer.writeCharacters( String.valueOf( repositoryPurgeConfiguration.isEnabled() ) );
1803                 serializer.writeEndElement();
1804             }
1805             if ( repositoryPurgeConfiguration.getSchedule() != null )
1806             {
1807                 serializer.writeStartElement( "schedule" );
1808                 serializer.writeAttribute( "id", String.valueOf( repositoryPurgeConfiguration.getSchedule().getId() ) );
1809                 serializer.writeEndElement();
1810             }
1811             if ( repositoryPurgeConfiguration.isDefaultPurge() != false )
1812             {
1813                 serializer.writeStartElement( "defaultPurge" );
1814                 serializer.writeCharacters( String.valueOf( repositoryPurgeConfiguration.isDefaultPurge() ) );
1815                 serializer.writeEndElement();
1816             }
1817             serializer.writeEndElement();
1818         }
1819     } //-- void writeRepositoryPurgeConfiguration( RepositoryPurgeConfiguration, String, XMLStreamWriter )
1820 
1821     /**
1822      * Method writeSchedule.
1823      * 
1824      * @param schedule
1825      * @param serializer
1826      * @param tagName
1827      * @throws java.io.IOException
1828      * @throws XMLStreamException
1829      */
1830     private void writeSchedule( Schedule schedule, String tagName, XMLStreamWriter serializer )
1831         throws java.io.IOException, XMLStreamException
1832     {
1833         if ( schedule != null )
1834         {
1835             serializer.writeStartElement( tagName );
1836             if ( schedule.getId() != 0 )
1837             {
1838                 serializer.writeStartElement( "id" );
1839                 serializer.writeCharacters( String.valueOf( schedule.getId() ) );
1840                 serializer.writeEndElement();
1841             }
1842             if ( schedule.isActive() != false )
1843             {
1844                 serializer.writeStartElement( "active" );
1845                 serializer.writeCharacters( String.valueOf( schedule.isActive() ) );
1846                 serializer.writeEndElement();
1847             }
1848             if ( schedule.getName() != null )
1849             {
1850                 serializer.writeStartElement( "name" );
1851                 serializer.writeCharacters( schedule.getName() );
1852                 serializer.writeEndElement();
1853             }
1854             if ( schedule.getDescription() != null )
1855             {
1856                 serializer.writeStartElement( "description" );
1857                 serializer.writeCharacters( schedule.getDescription() );
1858                 serializer.writeEndElement();
1859             }
1860             if ( schedule.getDelay() != 0 )
1861             {
1862                 serializer.writeStartElement( "delay" );
1863                 serializer.writeCharacters( String.valueOf( schedule.getDelay() ) );
1864                 serializer.writeEndElement();
1865             }
1866             if ( schedule.getMaxJobExecutionTime() != 3600 )
1867             {
1868                 serializer.writeStartElement( "maxJobExecutionTime" );
1869                 serializer.writeCharacters( String.valueOf( schedule.getMaxJobExecutionTime() ) );
1870                 serializer.writeEndElement();
1871             }
1872             if ( schedule.getCronExpression() != null )
1873             {
1874                 serializer.writeStartElement( "cronExpression" );
1875                 serializer.writeCharacters( schedule.getCronExpression() );
1876                 serializer.writeEndElement();
1877             }
1878             if ( ( schedule.getBuildQueues() != null ) && ( schedule.getBuildQueues().size() > 0 ) )
1879             {
1880                 serializer.writeStartElement( "buildQueues" );
1881                 for ( Iterator iter = schedule.getBuildQueues().iterator(); iter.hasNext(); )
1882                 {
1883                     BuildQueue o = (BuildQueue) iter.next();
1884                     serializer.writeStartElement( "buildQueue" );
1885                     serializer.writeAttribute( "id", String.valueOf( o.getId() ) );
1886                     serializer.writeEndElement();
1887                 }
1888                 serializer.writeEndElement();
1889             }
1890             serializer.writeEndElement();
1891         }
1892     } //-- void writeSchedule( Schedule, String, XMLStreamWriter )
1893 
1894     /**
1895      * Method writeScmResult.
1896      * 
1897      * @param scmResult
1898      * @param serializer
1899      * @param tagName
1900      * @throws java.io.IOException
1901      * @throws XMLStreamException
1902      */
1903     private void writeScmResult( ScmResult scmResult, String tagName, XMLStreamWriter serializer )
1904         throws java.io.IOException, XMLStreamException
1905     {
1906         if ( scmResult != null )
1907         {
1908             serializer.writeStartElement( tagName );
1909             if ( scmResult.isSuccess() != false )
1910             {
1911                 serializer.writeStartElement( "success" );
1912                 serializer.writeCharacters( String.valueOf( scmResult.isSuccess() ) );
1913                 serializer.writeEndElement();
1914             }
1915             if ( scmResult.getCommandLine() != null )
1916             {
1917                 serializer.writeStartElement( "commandLine" );
1918                 serializer.writeCharacters( scmResult.getCommandLine() );
1919                 serializer.writeEndElement();
1920             }
1921             if ( scmResult.getProviderMessage() != null )
1922             {
1923                 serializer.writeStartElement( "providerMessage" );
1924                 serializer.writeCharacters( scmResult.getProviderMessage() );
1925                 serializer.writeEndElement();
1926             }
1927             if ( scmResult.getCommandOutput() != null )
1928             {
1929                 serializer.writeStartElement( "commandOutput" );
1930                 serializer.writeCharacters( scmResult.getCommandOutput() );
1931                 serializer.writeEndElement();
1932             }
1933             if ( scmResult.getException() != null )
1934             {
1935                 serializer.writeStartElement( "exception" );
1936                 serializer.writeCharacters( scmResult.getException() );
1937                 serializer.writeEndElement();
1938             }
1939             if ( ( scmResult.getChanges() != null ) && ( scmResult.getChanges().size() > 0 ) )
1940             {
1941                 serializer.writeStartElement( "changes" );
1942                 for ( Iterator iter = scmResult.getChanges().iterator(); iter.hasNext(); )
1943                 {
1944                     ChangeSet o = (ChangeSet) iter.next();
1945                     writeChangeSet( o, "change", serializer );
1946                 }
1947                 serializer.writeEndElement();
1948             }
1949             serializer.writeEndElement();
1950         }
1951     } //-- void writeScmResult( ScmResult, String, XMLStreamWriter )
1952 
1953     /**
1954      * Method writeSystemConfiguration.
1955      * 
1956      * @param systemConfiguration
1957      * @param serializer
1958      * @param tagName
1959      * @throws java.io.IOException
1960      * @throws XMLStreamException
1961      */
1962     private void writeSystemConfiguration( SystemConfiguration systemConfiguration, String tagName, XMLStreamWriter serializer )
1963         throws java.io.IOException, XMLStreamException
1964     {
1965         if ( systemConfiguration != null )
1966         {
1967             serializer.writeStartElement( tagName );
1968             if ( systemConfiguration.isGuestAccountEnabled() != true )
1969             {
1970                 serializer.writeStartElement( "guestAccountEnabled" );
1971                 serializer.writeCharacters( String.valueOf( systemConfiguration.isGuestAccountEnabled() ) );
1972                 serializer.writeEndElement();
1973             }
1974             if ( ( systemConfiguration.getDefaultScheduleDescription() != null ) && !systemConfiguration.getDefaultScheduleDescription().equals( "Run hourly" ) )
1975             {
1976                 serializer.writeStartElement( "defaultScheduleDescription" );
1977                 serializer.writeCharacters( systemConfiguration.getDefaultScheduleDescription() );
1978                 serializer.writeEndElement();
1979             }
1980             if ( ( systemConfiguration.getDefaultScheduleCronExpression() != null ) && !systemConfiguration.getDefaultScheduleCronExpression().equals( "0 0 * * * ?" ) )
1981             {
1982                 serializer.writeStartElement( "defaultScheduleCronExpression" );
1983                 serializer.writeCharacters( systemConfiguration.getDefaultScheduleCronExpression() );
1984                 serializer.writeEndElement();
1985             }
1986             if ( ( systemConfiguration.getWorkingDirectory() != null ) && !systemConfiguration.getWorkingDirectory().equals( "working-directory" ) )
1987             {
1988                 serializer.writeStartElement( "workingDirectory" );
1989                 serializer.writeCharacters( systemConfiguration.getWorkingDirectory() );
1990                 serializer.writeEndElement();
1991             }
1992             if ( ( systemConfiguration.getBuildOutputDirectory() != null ) && !systemConfiguration.getBuildOutputDirectory().equals( "build-output-directory" ) )
1993             {
1994                 serializer.writeStartElement( "buildOutputDirectory" );
1995                 serializer.writeCharacters( systemConfiguration.getBuildOutputDirectory() );
1996                 serializer.writeEndElement();
1997             }
1998             if ( systemConfiguration.getDeploymentRepositoryDirectory() != null )
1999             {
2000                 serializer.writeStartElement( "deploymentRepositoryDirectory" );
2001                 serializer.writeCharacters( systemConfiguration.getDeploymentRepositoryDirectory() );
2002                 serializer.writeEndElement();
2003             }
2004             if ( systemConfiguration.getBaseUrl() != null )
2005             {
2006                 serializer.writeStartElement( "baseUrl" );
2007                 serializer.writeCharacters( systemConfiguration.getBaseUrl() );
2008                 serializer.writeEndElement();
2009             }
2010             if ( systemConfiguration.isInitialized() != false )
2011             {
2012                 serializer.writeStartElement( "initialized" );
2013                 serializer.writeCharacters( String.valueOf( systemConfiguration.isInitialized() ) );
2014                 serializer.writeEndElement();
2015             }
2016             if ( ( systemConfiguration.getReleaseOutputDirectory() != null ) && !systemConfiguration.getReleaseOutputDirectory().equals( "release-output-directory" ) )
2017             {
2018                 serializer.writeStartElement( "releaseOutputDirectory" );
2019                 serializer.writeCharacters( systemConfiguration.getReleaseOutputDirectory() );
2020                 serializer.writeEndElement();
2021             }
2022             if ( systemConfiguration.getNumberOfBuildsInParallel() != 1 )
2023             {
2024                 serializer.writeStartElement( "numberOfBuildsInParallel" );
2025                 serializer.writeCharacters( String.valueOf( systemConfiguration.getNumberOfBuildsInParallel() ) );
2026                 serializer.writeEndElement();
2027             }
2028             if ( systemConfiguration.isDistributedBuildEnabled() != false )
2029             {
2030                 serializer.writeStartElement( "distributedBuildEnabled" );
2031                 serializer.writeCharacters( String.valueOf( systemConfiguration.isDistributedBuildEnabled() ) );
2032                 serializer.writeEndElement();
2033             }
2034             serializer.writeEndElement();
2035         }
2036     } //-- void writeSystemConfiguration( SystemConfiguration, String, XMLStreamWriter )
2037 
2038 }