View Javadoc

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