View Javadoc

1   /*
2    =================== DO NOT EDIT THIS FILE ====================
3    Generated by Modello 1.1 on 2011-09-18 11:22:32,
4    any modifications will be overwritten.
5    ==============================================================
6    */
7   
8   package org.apache.maven.continuum.model.project.v1_0_9.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.maven.continuum.model.project.v1_0_9.BuildDefinition;
25  import org.apache.maven.continuum.model.project.v1_0_9.BuildResult;
26  import org.apache.maven.continuum.model.project.v1_0_9.ContinuumDatabase;
27  import org.apache.maven.continuum.model.project.v1_0_9.Project;
28  import org.apache.maven.continuum.model.project.v1_0_9.ProjectDependency;
29  import org.apache.maven.continuum.model.project.v1_0_9.ProjectDeveloper;
30  import org.apache.maven.continuum.model.project.v1_0_9.ProjectGroup;
31  import org.apache.maven.continuum.model.project.v1_0_9.ProjectNotifier;
32  import org.apache.maven.continuum.model.project.v1_0_9.Schedule;
33  import org.apache.maven.continuum.model.scm.v1_0_9.ChangeFile;
34  import org.apache.maven.continuum.model.scm.v1_0_9.ChangeSet;
35  import org.apache.maven.continuum.model.scm.v1_0_9.ScmResult;
36  import org.apache.maven.continuum.model.scm.v1_0_9.SuiteResult;
37  import org.apache.maven.continuum.model.scm.v1_0_9.TestCaseFailure;
38  import org.apache.maven.continuum.model.scm.v1_0_9.TestResult;
39  import org.apache.maven.continuum.model.system.v1_0_9.NotificationAddress;
40  import org.apache.maven.continuum.model.system.v1_0_9.SystemConfiguration;
41  import org.codehaus.plexus.util.xml.Xpp3Dom;
42  
43  /**
44   * Class ContinuumStaxWriter.
45   * 
46   * @version $Revision$ $Date$
47   */
48  @SuppressWarnings( "all" )
49  public class ContinuumStaxWriter
50  {
51  
52        //--------------------------/
53       //- Class/Member Variables -/
54      //--------------------------/
55  
56      /**
57       * Field curId.
58       */
59      private int curId;
60  
61      /**
62       * Field idMap.
63       */
64      private java.util.Map idMap;
65  
66  
67        //----------------/
68       //- Constructors -/
69      //----------------/
70  
71      public ContinuumStaxWriter()
72      {
73          idMap = new java.util.HashMap();
74      } //-- org.apache.maven.continuum.model.project.v1_0_9.io.stax.ContinuumStaxWriter()
75  
76  
77        //-----------/
78       //- Methods -/
79      //-----------/
80  
81      /**
82       * Method write.
83       * 
84       * @param writer
85       * @param continuumDatabase
86       * @throws java.io.IOException
87       * @throws XMLStreamException
88       */
89      public void write( Writer writer, ContinuumDatabase continuumDatabase )
90          throws java.io.IOException, XMLStreamException
91      {
92          XMLOutputFactory factory = XMLOutputFactory.newInstance();
93          boolean supportWindowsLineEndings = false;
94          if ( factory.isPropertySupported( "com.ctc.wstx.outputEscapeCr" ) )
95          {
96              factory.setProperty( "com.ctc.wstx.outputEscapeCr", Boolean.FALSE );
97              supportWindowsLineEndings = true;
98          }
99          if ( factory.isPropertySupported( "org.codehaus.stax2.automaticEmptyElements" ) )
100         {
101             factory.setProperty( "org.codehaus.stax2.automaticEmptyElements", Boolean.FALSE );
102         }
103         IndentingXMLStreamWriter serializer = new IndentingXMLStreamWriter( factory.createXMLStreamWriter( writer ) );
104         if ( supportWindowsLineEndings )
105         {
106             serializer.setNewLine( serializer.getLineSeparator() );
107         }
108         serializer.writeStartDocument( continuumDatabase.getModelEncoding(), "1.0" );
109         writeContinuumDatabase( continuumDatabase, "continuumDatabase", serializer );
110         serializer.writeEndDocument();
111     } //-- void write( Writer, ContinuumDatabase )
112 
113     /**
114      * Method writeBuildDefinition.
115      * 
116      * @param buildDefinition
117      * @param serializer
118      * @param tagName
119      * @throws java.io.IOException
120      * @throws XMLStreamException
121      */
122     private void writeBuildDefinition( BuildDefinition buildDefinition, String tagName, XMLStreamWriter serializer )
123         throws java.io.IOException, XMLStreamException
124     {
125         if ( buildDefinition != null )
126         {
127             serializer.writeStartElement( tagName );
128             if ( buildDefinition.getId() != 0 )
129             {
130                 serializer.writeStartElement( "id" );
131                 serializer.writeCharacters( String.valueOf( buildDefinition.getId() ) );
132                 serializer.writeEndElement();
133             }
134             if ( buildDefinition.isDefaultForProject() != false )
135             {
136                 serializer.writeStartElement( "defaultForProject" );
137                 serializer.writeCharacters( String.valueOf( buildDefinition.isDefaultForProject() ) );
138                 serializer.writeEndElement();
139             }
140             if ( buildDefinition.getGoals() != null )
141             {
142                 serializer.writeStartElement( "goals" );
143                 serializer.writeCharacters( buildDefinition.getGoals() );
144                 serializer.writeEndElement();
145             }
146             if ( buildDefinition.getArguments() != null )
147             {
148                 serializer.writeStartElement( "arguments" );
149                 serializer.writeCharacters( buildDefinition.getArguments() );
150                 serializer.writeEndElement();
151             }
152             if ( buildDefinition.getBuildFile() != null )
153             {
154                 serializer.writeStartElement( "buildFile" );
155                 serializer.writeCharacters( buildDefinition.getBuildFile() );
156                 serializer.writeEndElement();
157             }
158             if ( buildDefinition.getSchedule() != null )
159             {
160                 serializer.writeStartElement( "schedule" );
161                 serializer.writeAttribute( "id", String.valueOf( buildDefinition.getSchedule().getId() ) );
162                 serializer.writeEndElement();
163             }
164             if ( buildDefinition.getLatestBuildId() != 0 )
165             {
166                 serializer.writeStartElement( "latestBuildId" );
167                 serializer.writeCharacters( String.valueOf( buildDefinition.getLatestBuildId() ) );
168                 serializer.writeEndElement();
169             }
170             serializer.writeEndElement();
171         }
172     } //-- void writeBuildDefinition( BuildDefinition, String, XMLStreamWriter )
173 
174     /**
175      * Method writeBuildResult.
176      * 
177      * @param buildResult
178      * @param serializer
179      * @param tagName
180      * @throws java.io.IOException
181      * @throws XMLStreamException
182      */
183     private void writeBuildResult( BuildResult buildResult, String tagName, XMLStreamWriter serializer )
184         throws java.io.IOException, XMLStreamException
185     {
186         if ( buildResult != null )
187         {
188             serializer.writeStartElement( tagName );
189             if ( buildResult.getProject() != null )
190             {
191                 serializer.writeStartElement( "project" );
192                 serializer.writeAttribute( "id", String.valueOf( buildResult.getProject().getId() ) );
193                 serializer.writeEndElement();
194             }
195             if ( buildResult.getId() != 0 )
196             {
197                 serializer.writeStartElement( "id" );
198                 serializer.writeCharacters( String.valueOf( buildResult.getId() ) );
199                 serializer.writeEndElement();
200             }
201             if ( buildResult.getBuildNumber() != 0 )
202             {
203                 serializer.writeStartElement( "buildNumber" );
204                 serializer.writeCharacters( String.valueOf( buildResult.getBuildNumber() ) );
205                 serializer.writeEndElement();
206             }
207             if ( buildResult.getState() != 0 )
208             {
209                 serializer.writeStartElement( "state" );
210                 serializer.writeCharacters( String.valueOf( buildResult.getState() ) );
211                 serializer.writeEndElement();
212             }
213             if ( buildResult.getTrigger() != 0 )
214             {
215                 serializer.writeStartElement( "trigger" );
216                 serializer.writeCharacters( String.valueOf( buildResult.getTrigger() ) );
217                 serializer.writeEndElement();
218             }
219             if ( buildResult.getStartTime() != 0L )
220             {
221                 serializer.writeStartElement( "startTime" );
222                 serializer.writeCharacters( String.valueOf( buildResult.getStartTime() ) );
223                 serializer.writeEndElement();
224             }
225             if ( buildResult.getEndTime() != 0L )
226             {
227                 serializer.writeStartElement( "endTime" );
228                 serializer.writeCharacters( String.valueOf( buildResult.getEndTime() ) );
229                 serializer.writeEndElement();
230             }
231             if ( buildResult.getError() != null )
232             {
233                 serializer.writeStartElement( "error" );
234                 serializer.writeCharacters( buildResult.getError() );
235                 serializer.writeEndElement();
236             }
237             if ( buildResult.isSuccess() != false )
238             {
239                 serializer.writeStartElement( "success" );
240                 serializer.writeCharacters( String.valueOf( buildResult.isSuccess() ) );
241                 serializer.writeEndElement();
242             }
243             if ( buildResult.getExitCode() != 0 )
244             {
245                 serializer.writeStartElement( "exitCode" );
246                 serializer.writeCharacters( String.valueOf( buildResult.getExitCode() ) );
247                 serializer.writeEndElement();
248             }
249             if ( buildResult.getScmResult() != null )
250             {
251                 writeScmResult( (ScmResult) buildResult.getScmResult(), "scmResult", serializer );
252             }
253             if ( buildResult.getTestResult() != null )
254             {
255                 writeTestResult( (TestResult) buildResult.getTestResult(), "testResult", serializer );
256             }
257             serializer.writeEndElement();
258         }
259     } //-- void writeBuildResult( BuildResult, String, XMLStreamWriter )
260 
261     /**
262      * Method writeChangeFile.
263      * 
264      * @param changeFile
265      * @param serializer
266      * @param tagName
267      * @throws java.io.IOException
268      * @throws XMLStreamException
269      */
270     private void writeChangeFile( ChangeFile changeFile, String tagName, XMLStreamWriter serializer )
271         throws java.io.IOException, XMLStreamException
272     {
273         if ( changeFile != null )
274         {
275             serializer.writeStartElement( tagName );
276             if ( changeFile.getName() != null )
277             {
278                 serializer.writeStartElement( "name" );
279                 serializer.writeCharacters( changeFile.getName() );
280                 serializer.writeEndElement();
281             }
282             if ( changeFile.getRevision() != null )
283             {
284                 serializer.writeStartElement( "revision" );
285                 serializer.writeCharacters( changeFile.getRevision() );
286                 serializer.writeEndElement();
287             }
288             if ( changeFile.getStatus() != null )
289             {
290                 serializer.writeStartElement( "status" );
291                 serializer.writeCharacters( changeFile.getStatus() );
292                 serializer.writeEndElement();
293             }
294             serializer.writeEndElement();
295         }
296     } //-- void writeChangeFile( ChangeFile, String, XMLStreamWriter )
297 
298     /**
299      * Method writeChangeSet.
300      * 
301      * @param changeSet
302      * @param serializer
303      * @param tagName
304      * @throws java.io.IOException
305      * @throws XMLStreamException
306      */
307     private void writeChangeSet( ChangeSet changeSet, String tagName, XMLStreamWriter serializer )
308         throws java.io.IOException, XMLStreamException
309     {
310         if ( changeSet != null )
311         {
312             serializer.writeStartElement( tagName );
313             if ( changeSet.getAuthor() != null )
314             {
315                 serializer.writeStartElement( "author" );
316                 serializer.writeCharacters( changeSet.getAuthor() );
317                 serializer.writeEndElement();
318             }
319             if ( changeSet.getComment() != null )
320             {
321                 serializer.writeStartElement( "comment" );
322                 serializer.writeCharacters( changeSet.getComment() );
323                 serializer.writeEndElement();
324             }
325             if ( changeSet.getDate() != 0L )
326             {
327                 serializer.writeStartElement( "date" );
328                 serializer.writeCharacters( String.valueOf( changeSet.getDate() ) );
329                 serializer.writeEndElement();
330             }
331             if ( ( changeSet.getFiles() != null ) && ( changeSet.getFiles().size() > 0 ) )
332             {
333                 serializer.writeStartElement( "files" );
334                 for ( Iterator iter = changeSet.getFiles().iterator(); iter.hasNext(); )
335                 {
336                     ChangeFile o = (ChangeFile) iter.next();
337                     writeChangeFile( o, "file", serializer );
338                 }
339                 serializer.writeEndElement();
340             }
341             serializer.writeEndElement();
342         }
343     } //-- void writeChangeSet( ChangeSet, String, XMLStreamWriter )
344 
345     /**
346      * Method writeContinuumDatabase.
347      * 
348      * @param continuumDatabase
349      * @param serializer
350      * @param tagName
351      * @throws java.io.IOException
352      * @throws XMLStreamException
353      */
354     private void writeContinuumDatabase( ContinuumDatabase continuumDatabase, String tagName, XMLStreamWriter serializer )
355         throws java.io.IOException, XMLStreamException
356     {
357         if ( continuumDatabase != null )
358         {
359             serializer.writeStartElement( tagName );
360             if ( ( continuumDatabase.getProjectGroups() != null ) && ( continuumDatabase.getProjectGroups().size() > 0 ) )
361             {
362                 serializer.writeStartElement( "projectGroups" );
363                 for ( Iterator iter = continuumDatabase.getProjectGroups().iterator(); iter.hasNext(); )
364                 {
365                     ProjectGroup o = (ProjectGroup) iter.next();
366                     writeProjectGroup( o, "projectGroup", serializer );
367                 }
368                 serializer.writeEndElement();
369             }
370             if ( continuumDatabase.getSystemConfiguration() != null )
371             {
372                 writeSystemConfiguration( (SystemConfiguration) continuumDatabase.getSystemConfiguration(), "systemConfiguration", serializer );
373             }
374             if ( ( continuumDatabase.getSchedules() != null ) && ( continuumDatabase.getSchedules().size() > 0 ) )
375             {
376                 serializer.writeStartElement( "schedules" );
377                 for ( Iterator iter = continuumDatabase.getSchedules().iterator(); iter.hasNext(); )
378                 {
379                     Schedule o = (Schedule) iter.next();
380                     writeSchedule( o, "schedule", serializer );
381                 }
382                 serializer.writeEndElement();
383             }
384             serializer.writeEndElement();
385         }
386     } //-- void writeContinuumDatabase( ContinuumDatabase, String, XMLStreamWriter )
387 
388     /**
389      * Method writeDom.
390      * 
391      * @param dom
392      * @param serializer
393      * @throws XMLStreamException
394      */
395     private void writeDom( Xpp3Dom dom, XMLStreamWriter serializer )
396         throws XMLStreamException
397     {
398         serializer.writeStartElement( dom.getName() );
399         String[] attributeNames = dom.getAttributeNames();
400         for ( int i = 0; i < attributeNames.length; i++ )
401         {
402             String attributeName = attributeNames[i];
403             serializer.writeAttribute( attributeName, dom.getAttribute( attributeName ) );
404         }
405         Xpp3Dom[] children = dom.getChildren();
406         for ( int i = 0; i < children.length; i++ )
407         {
408             writeDom( children[i], serializer );
409         }
410         String value = dom.getValue();
411         if ( value != null )
412         {
413             serializer.writeCharacters( value );
414         }
415         serializer.writeEndElement();
416     } //-- void writeDom( Xpp3Dom, XMLStreamWriter )
417 
418     /**
419      * Method writeNotificationAddress.
420      * 
421      * @param notificationAddress
422      * @param serializer
423      * @param tagName
424      * @throws java.io.IOException
425      * @throws XMLStreamException
426      */
427     private void writeNotificationAddress( NotificationAddress notificationAddress, String tagName, XMLStreamWriter serializer )
428         throws java.io.IOException, XMLStreamException
429     {
430         if ( notificationAddress != null )
431         {
432             serializer.writeStartElement( tagName );
433             if ( ( notificationAddress.getType() != null ) && !notificationAddress.getType().equals( "mail" ) )
434             {
435                 serializer.writeStartElement( "type" );
436                 serializer.writeCharacters( notificationAddress.getType() );
437                 serializer.writeEndElement();
438             }
439             if ( notificationAddress.getAddress() != null )
440             {
441                 serializer.writeStartElement( "address" );
442                 serializer.writeCharacters( notificationAddress.getAddress() );
443                 serializer.writeEndElement();
444             }
445             if ( ( notificationAddress.getConfiguration() != null ) && ( notificationAddress.getConfiguration().size() > 0 ) )
446             {
447                 serializer.writeStartElement( "configuration" );
448                 for ( Iterator iter = notificationAddress.getConfiguration().keySet().iterator(); iter.hasNext(); )
449                 {
450                     String key = (String) iter.next();
451                     String value = (String) notificationAddress.getConfiguration().get( key );
452                     serializer.writeStartElement( "" + key + "" );
453                     serializer.writeCharacters( value );
454                     serializer.writeEndElement();
455                 }
456                 serializer.writeEndElement();
457             }
458             serializer.writeEndElement();
459         }
460     } //-- void writeNotificationAddress( NotificationAddress, String, XMLStreamWriter )
461 
462     /**
463      * Method writeProject.
464      * 
465      * @param project
466      * @param serializer
467      * @param tagName
468      * @throws java.io.IOException
469      * @throws XMLStreamException
470      */
471     private void writeProject( Project project, String tagName, XMLStreamWriter serializer )
472         throws java.io.IOException, XMLStreamException
473     {
474         if ( project != null )
475         {
476             serializer.writeStartElement( tagName );
477             if ( project.getId() != 0 )
478             {
479                 serializer.writeStartElement( "id" );
480                 serializer.writeCharacters( String.valueOf( project.getId() ) );
481                 serializer.writeEndElement();
482             }
483             if ( project.getGroupId() != null )
484             {
485                 serializer.writeStartElement( "groupId" );
486                 serializer.writeCharacters( project.getGroupId() );
487                 serializer.writeEndElement();
488             }
489             if ( project.getArtifactId() != null )
490             {
491                 serializer.writeStartElement( "artifactId" );
492                 serializer.writeCharacters( project.getArtifactId() );
493                 serializer.writeEndElement();
494             }
495             if ( project.getExecutorId() != null )
496             {
497                 serializer.writeStartElement( "executorId" );
498                 serializer.writeCharacters( project.getExecutorId() );
499                 serializer.writeEndElement();
500             }
501             if ( project.getName() != null )
502             {
503                 serializer.writeStartElement( "name" );
504                 serializer.writeCharacters( project.getName() );
505                 serializer.writeEndElement();
506             }
507             if ( project.getDescription() != null )
508             {
509                 serializer.writeStartElement( "description" );
510                 serializer.writeCharacters( project.getDescription() );
511                 serializer.writeEndElement();
512             }
513             if ( project.getUrl() != null )
514             {
515                 serializer.writeStartElement( "url" );
516                 serializer.writeCharacters( project.getUrl() );
517                 serializer.writeEndElement();
518             }
519             if ( project.getScmUrl() != null )
520             {
521                 serializer.writeStartElement( "scmUrl" );
522                 serializer.writeCharacters( project.getScmUrl() );
523                 serializer.writeEndElement();
524             }
525             if ( project.getScmTag() != null )
526             {
527                 serializer.writeStartElement( "scmTag" );
528                 serializer.writeCharacters( project.getScmTag() );
529                 serializer.writeEndElement();
530             }
531             if ( project.getScmUsername() != null )
532             {
533                 serializer.writeStartElement( "scmUsername" );
534                 serializer.writeCharacters( project.getScmUsername() );
535                 serializer.writeEndElement();
536             }
537             if ( project.getScmPassword() != null )
538             {
539                 serializer.writeStartElement( "scmPassword" );
540                 serializer.writeCharacters( project.getScmPassword() );
541                 serializer.writeEndElement();
542             }
543             if ( project.getVersion() != null )
544             {
545                 serializer.writeStartElement( "version" );
546                 serializer.writeCharacters( project.getVersion() );
547                 serializer.writeEndElement();
548             }
549             if ( project.getState() != 1 )
550             {
551                 serializer.writeStartElement( "state" );
552                 serializer.writeCharacters( String.valueOf( project.getState() ) );
553                 serializer.writeEndElement();
554             }
555             if ( project.getOldState() != 0 )
556             {
557                 serializer.writeStartElement( "oldState" );
558                 serializer.writeCharacters( String.valueOf( project.getOldState() ) );
559                 serializer.writeEndElement();
560             }
561             if ( project.getLatestBuildId() != 0 )
562             {
563                 serializer.writeStartElement( "latestBuildId" );
564                 serializer.writeCharacters( String.valueOf( project.getLatestBuildId() ) );
565                 serializer.writeEndElement();
566             }
567             if ( project.getBuildNumber() != 0 )
568             {
569                 serializer.writeStartElement( "buildNumber" );
570                 serializer.writeCharacters( String.valueOf( project.getBuildNumber() ) );
571                 serializer.writeEndElement();
572             }
573             if ( project.getWorkingDirectory() != null )
574             {
575                 serializer.writeStartElement( "workingDirectory" );
576                 serializer.writeCharacters( project.getWorkingDirectory() );
577                 serializer.writeEndElement();
578             }
579             if ( ( project.getBuildResults() != null ) && ( project.getBuildResults().size() > 0 ) )
580             {
581                 serializer.writeStartElement( "buildResults" );
582                 for ( Iterator iter = project.getBuildResults().iterator(); iter.hasNext(); )
583                 {
584                     BuildResult o = (BuildResult) iter.next();
585                     writeBuildResult( o, "buildResult", serializer );
586                 }
587                 serializer.writeEndElement();
588             }
589             if ( project.getCheckoutResult() != null )
590             {
591                 writeScmResult( (ScmResult) project.getCheckoutResult(), "checkoutResult", serializer );
592             }
593             if ( ( project.getDevelopers() != null ) && ( project.getDevelopers().size() > 0 ) )
594             {
595                 serializer.writeStartElement( "developers" );
596                 for ( Iterator iter = project.getDevelopers().iterator(); iter.hasNext(); )
597                 {
598                     ProjectDeveloper o = (ProjectDeveloper) iter.next();
599                     writeProjectDeveloper( o, "developer", serializer );
600                 }
601                 serializer.writeEndElement();
602             }
603             if ( project.getParent() != null )
604             {
605                 writeProjectDependency( (ProjectDependency) project.getParent(), "parent", serializer );
606             }
607             if ( ( project.getDependencies() != null ) && ( project.getDependencies().size() > 0 ) )
608             {
609                 serializer.writeStartElement( "dependencies" );
610                 for ( Iterator iter = project.getDependencies().iterator(); iter.hasNext(); )
611                 {
612                     ProjectDependency o = (ProjectDependency) iter.next();
613                     writeProjectDependency( o, "dependency", serializer );
614                 }
615                 serializer.writeEndElement();
616             }
617             if ( project.getProjectGroup() != null )
618             {
619                 serializer.writeStartElement( "projectGroup" );
620                 serializer.writeAttribute( "id", String.valueOf( project.getProjectGroup().getId() ) );
621                 serializer.writeEndElement();
622             }
623             if ( ( project.getNotifiers() != null ) && ( project.getNotifiers().size() > 0 ) )
624             {
625                 serializer.writeStartElement( "notifiers" );
626                 for ( Iterator iter = project.getNotifiers().iterator(); iter.hasNext(); )
627                 {
628                     ProjectNotifier o = (ProjectNotifier) iter.next();
629                     writeProjectNotifier( o, "notifier", serializer );
630                 }
631                 serializer.writeEndElement();
632             }
633             if ( ( project.getBuildDefinitions() != null ) && ( project.getBuildDefinitions().size() > 0 ) )
634             {
635                 serializer.writeStartElement( "buildDefinitions" );
636                 for ( Iterator iter = project.getBuildDefinitions().iterator(); iter.hasNext(); )
637                 {
638                     BuildDefinition o = (BuildDefinition) iter.next();
639                     writeBuildDefinition( o, "buildDefinition", serializer );
640                 }
641                 serializer.writeEndElement();
642             }
643             serializer.writeEndElement();
644         }
645     } //-- void writeProject( Project, String, XMLStreamWriter )
646 
647     /**
648      * Method writeProjectDependency.
649      * 
650      * @param projectDependency
651      * @param serializer
652      * @param tagName
653      * @throws java.io.IOException
654      * @throws XMLStreamException
655      */
656     private void writeProjectDependency( ProjectDependency projectDependency, String tagName, XMLStreamWriter serializer )
657         throws java.io.IOException, XMLStreamException
658     {
659         if ( projectDependency != null )
660         {
661             serializer.writeStartElement( tagName );
662             if ( projectDependency.getGroupId() != null )
663             {
664                 serializer.writeStartElement( "groupId" );
665                 serializer.writeCharacters( projectDependency.getGroupId() );
666                 serializer.writeEndElement();
667             }
668             if ( projectDependency.getArtifactId() != null )
669             {
670                 serializer.writeStartElement( "artifactId" );
671                 serializer.writeCharacters( projectDependency.getArtifactId() );
672                 serializer.writeEndElement();
673             }
674             if ( projectDependency.getVersion() != null )
675             {
676                 serializer.writeStartElement( "version" );
677                 serializer.writeCharacters( projectDependency.getVersion() );
678                 serializer.writeEndElement();
679             }
680             serializer.writeEndElement();
681         }
682     } //-- void writeProjectDependency( ProjectDependency, String, XMLStreamWriter )
683 
684     /**
685      * Method writeProjectDeveloper.
686      * 
687      * @param projectDeveloper
688      * @param serializer
689      * @param tagName
690      * @throws java.io.IOException
691      * @throws XMLStreamException
692      */
693     private void writeProjectDeveloper( ProjectDeveloper projectDeveloper, String tagName, XMLStreamWriter serializer )
694         throws java.io.IOException, XMLStreamException
695     {
696         if ( projectDeveloper != null )
697         {
698             serializer.writeStartElement( tagName );
699             if ( projectDeveloper.getScmId() != null )
700             {
701                 serializer.writeStartElement( "scmId" );
702                 serializer.writeCharacters( projectDeveloper.getScmId() );
703                 serializer.writeEndElement();
704             }
705             if ( projectDeveloper.getName() != null )
706             {
707                 serializer.writeStartElement( "name" );
708                 serializer.writeCharacters( projectDeveloper.getName() );
709                 serializer.writeEndElement();
710             }
711             if ( projectDeveloper.getEmail() != null )
712             {
713                 serializer.writeStartElement( "email" );
714                 serializer.writeCharacters( projectDeveloper.getEmail() );
715                 serializer.writeEndElement();
716             }
717             if ( projectDeveloper.getContinuumId() != 0 )
718             {
719                 serializer.writeStartElement( "continuumId" );
720                 serializer.writeCharacters( String.valueOf( projectDeveloper.getContinuumId() ) );
721                 serializer.writeEndElement();
722             }
723             serializer.writeEndElement();
724         }
725     } //-- void writeProjectDeveloper( ProjectDeveloper, String, XMLStreamWriter )
726 
727     /**
728      * Method writeProjectGroup.
729      * 
730      * @param projectGroup
731      * @param serializer
732      * @param tagName
733      * @throws java.io.IOException
734      * @throws XMLStreamException
735      */
736     private void writeProjectGroup( ProjectGroup projectGroup, String tagName, XMLStreamWriter serializer )
737         throws java.io.IOException, XMLStreamException
738     {
739         if ( projectGroup != null )
740         {
741             serializer.writeStartElement( tagName );
742             if ( projectGroup.getId() != 0 )
743             {
744                 serializer.writeStartElement( "id" );
745                 serializer.writeCharacters( String.valueOf( projectGroup.getId() ) );
746                 serializer.writeEndElement();
747             }
748             if ( projectGroup.getGroupId() != null )
749             {
750                 serializer.writeStartElement( "groupId" );
751                 serializer.writeCharacters( projectGroup.getGroupId() );
752                 serializer.writeEndElement();
753             }
754             if ( projectGroup.getName() != null )
755             {
756                 serializer.writeStartElement( "name" );
757                 serializer.writeCharacters( projectGroup.getName() );
758                 serializer.writeEndElement();
759             }
760             if ( projectGroup.getDescription() != null )
761             {
762                 serializer.writeStartElement( "description" );
763                 serializer.writeCharacters( projectGroup.getDescription() );
764                 serializer.writeEndElement();
765             }
766             if ( ( projectGroup.getProjects() != null ) && ( projectGroup.getProjects().size() > 0 ) )
767             {
768                 serializer.writeStartElement( "projects" );
769                 for ( Iterator iter = projectGroup.getProjects().iterator(); iter.hasNext(); )
770                 {
771                     Project o = (Project) iter.next();
772                     writeProject( o, "project", serializer );
773                 }
774                 serializer.writeEndElement();
775             }
776             if ( ( projectGroup.getNotifiers() != null ) && ( projectGroup.getNotifiers().size() > 0 ) )
777             {
778                 serializer.writeStartElement( "notifiers" );
779                 for ( Iterator iter = projectGroup.getNotifiers().iterator(); iter.hasNext(); )
780                 {
781                     ProjectNotifier o = (ProjectNotifier) iter.next();
782                     writeProjectNotifier( o, "notifier", serializer );
783                 }
784                 serializer.writeEndElement();
785             }
786             if ( ( projectGroup.getBuildDefinitions() != null ) && ( projectGroup.getBuildDefinitions().size() > 0 ) )
787             {
788                 serializer.writeStartElement( "buildDefinitions" );
789                 for ( Iterator iter = projectGroup.getBuildDefinitions().iterator(); iter.hasNext(); )
790                 {
791                     BuildDefinition o = (BuildDefinition) iter.next();
792                     writeBuildDefinition( o, "buildDefinition", serializer );
793                 }
794                 serializer.writeEndElement();
795             }
796             serializer.writeEndElement();
797         }
798     } //-- void writeProjectGroup( ProjectGroup, String, XMLStreamWriter )
799 
800     /**
801      * Method writeProjectNotifier.
802      * 
803      * @param projectNotifier
804      * @param serializer
805      * @param tagName
806      * @throws java.io.IOException
807      * @throws XMLStreamException
808      */
809     private void writeProjectNotifier( ProjectNotifier projectNotifier, String tagName, XMLStreamWriter serializer )
810         throws java.io.IOException, XMLStreamException
811     {
812         if ( projectNotifier != null )
813         {
814             serializer.writeStartElement( tagName );
815             if ( projectNotifier.getId() != 0 )
816             {
817                 serializer.writeStartElement( "id" );
818                 serializer.writeCharacters( String.valueOf( projectNotifier.getId() ) );
819                 serializer.writeEndElement();
820             }
821             if ( ( projectNotifier.getType() != null ) && !projectNotifier.getType().equals( "mail" ) )
822             {
823                 serializer.writeStartElement( "type" );
824                 serializer.writeCharacters( projectNotifier.getType() );
825                 serializer.writeEndElement();
826             }
827             if ( projectNotifier.getFrom() != 0 )
828             {
829                 serializer.writeStartElement( "from" );
830                 serializer.writeCharacters( String.valueOf( projectNotifier.getFrom() ) );
831                 serializer.writeEndElement();
832             }
833             if ( projectNotifier.isEnabled() != true )
834             {
835                 serializer.writeStartElement( "enabled" );
836                 serializer.writeCharacters( String.valueOf( projectNotifier.isEnabled() ) );
837                 serializer.writeEndElement();
838             }
839             if ( projectNotifier.getRecipientType() != 0 )
840             {
841                 serializer.writeStartElement( "recipientType" );
842                 serializer.writeCharacters( String.valueOf( projectNotifier.getRecipientType() ) );
843                 serializer.writeEndElement();
844             }
845             if ( projectNotifier.isSendOnSuccess() != true )
846             {
847                 serializer.writeStartElement( "sendOnSuccess" );
848                 serializer.writeCharacters( String.valueOf( projectNotifier.isSendOnSuccess() ) );
849                 serializer.writeEndElement();
850             }
851             if ( projectNotifier.isSendOnFailure() != true )
852             {
853                 serializer.writeStartElement( "sendOnFailure" );
854                 serializer.writeCharacters( String.valueOf( projectNotifier.isSendOnFailure() ) );
855                 serializer.writeEndElement();
856             }
857             if ( projectNotifier.isSendOnError() != true )
858             {
859                 serializer.writeStartElement( "sendOnError" );
860                 serializer.writeCharacters( String.valueOf( projectNotifier.isSendOnError() ) );
861                 serializer.writeEndElement();
862             }
863             if ( projectNotifier.isSendOnWarning() != true )
864             {
865                 serializer.writeStartElement( "sendOnWarning" );
866                 serializer.writeCharacters( String.valueOf( projectNotifier.isSendOnWarning() ) );
867                 serializer.writeEndElement();
868             }
869             if ( ( projectNotifier.getConfiguration() != null ) && ( projectNotifier.getConfiguration().size() > 0 ) )
870             {
871                 serializer.writeStartElement( "configuration" );
872                 for ( Iterator iter = projectNotifier.getConfiguration().keySet().iterator(); iter.hasNext(); )
873                 {
874                     String key = (String) iter.next();
875                     String value = (String) projectNotifier.getConfiguration().get( key );
876                     serializer.writeStartElement( "" + key + "" );
877                     serializer.writeCharacters( value );
878                     serializer.writeEndElement();
879                 }
880                 serializer.writeEndElement();
881             }
882             serializer.writeEndElement();
883         }
884     } //-- void writeProjectNotifier( ProjectNotifier, String, XMLStreamWriter )
885 
886     /**
887      * Method writeSchedule.
888      * 
889      * @param schedule
890      * @param serializer
891      * @param tagName
892      * @throws java.io.IOException
893      * @throws XMLStreamException
894      */
895     private void writeSchedule( Schedule schedule, String tagName, XMLStreamWriter serializer )
896         throws java.io.IOException, XMLStreamException
897     {
898         if ( schedule != null )
899         {
900             serializer.writeStartElement( tagName );
901             if ( schedule.getId() != 0 )
902             {
903                 serializer.writeStartElement( "id" );
904                 serializer.writeCharacters( String.valueOf( schedule.getId() ) );
905                 serializer.writeEndElement();
906             }
907             if ( schedule.isActive() != false )
908             {
909                 serializer.writeStartElement( "active" );
910                 serializer.writeCharacters( String.valueOf( schedule.isActive() ) );
911                 serializer.writeEndElement();
912             }
913             if ( schedule.getName() != null )
914             {
915                 serializer.writeStartElement( "name" );
916                 serializer.writeCharacters( schedule.getName() );
917                 serializer.writeEndElement();
918             }
919             if ( schedule.getDescription() != null )
920             {
921                 serializer.writeStartElement( "description" );
922                 serializer.writeCharacters( schedule.getDescription() );
923                 serializer.writeEndElement();
924             }
925             if ( schedule.getDelay() != 0 )
926             {
927                 serializer.writeStartElement( "delay" );
928                 serializer.writeCharacters( String.valueOf( schedule.getDelay() ) );
929                 serializer.writeEndElement();
930             }
931             if ( schedule.getMaxJobExecutionTime() != 3600 )
932             {
933                 serializer.writeStartElement( "maxJobExecutionTime" );
934                 serializer.writeCharacters( String.valueOf( schedule.getMaxJobExecutionTime() ) );
935                 serializer.writeEndElement();
936             }
937             if ( schedule.getCronExpression() != null )
938             {
939                 serializer.writeStartElement( "cronExpression" );
940                 serializer.writeCharacters( schedule.getCronExpression() );
941                 serializer.writeEndElement();
942             }
943             serializer.writeEndElement();
944         }
945     } //-- void writeSchedule( Schedule, String, XMLStreamWriter )
946 
947     /**
948      * Method writeScmResult.
949      * 
950      * @param scmResult
951      * @param serializer
952      * @param tagName
953      * @throws java.io.IOException
954      * @throws XMLStreamException
955      */
956     private void writeScmResult( ScmResult scmResult, String tagName, XMLStreamWriter serializer )
957         throws java.io.IOException, XMLStreamException
958     {
959         if ( scmResult != null )
960         {
961             serializer.writeStartElement( tagName );
962             if ( scmResult.isSuccess() != false )
963             {
964                 serializer.writeStartElement( "success" );
965                 serializer.writeCharacters( String.valueOf( scmResult.isSuccess() ) );
966                 serializer.writeEndElement();
967             }
968             if ( scmResult.getCommandLine() != null )
969             {
970                 serializer.writeStartElement( "commandLine" );
971                 serializer.writeCharacters( scmResult.getCommandLine() );
972                 serializer.writeEndElement();
973             }
974             if ( scmResult.getProviderMessage() != null )
975             {
976                 serializer.writeStartElement( "providerMessage" );
977                 serializer.writeCharacters( scmResult.getProviderMessage() );
978                 serializer.writeEndElement();
979             }
980             if ( scmResult.getCommandOutput() != null )
981             {
982                 serializer.writeStartElement( "commandOutput" );
983                 serializer.writeCharacters( scmResult.getCommandOutput() );
984                 serializer.writeEndElement();
985             }
986             if ( scmResult.getException() != null )
987             {
988                 serializer.writeStartElement( "exception" );
989                 serializer.writeCharacters( scmResult.getException() );
990                 serializer.writeEndElement();
991             }
992             if ( ( scmResult.getChanges() != null ) && ( scmResult.getChanges().size() > 0 ) )
993             {
994                 serializer.writeStartElement( "changes" );
995                 for ( Iterator iter = scmResult.getChanges().iterator(); iter.hasNext(); )
996                 {
997                     ChangeSet o = (ChangeSet) iter.next();
998                     writeChangeSet( o, "change", serializer );
999                 }
1000                 serializer.writeEndElement();
1001             }
1002             serializer.writeEndElement();
1003         }
1004     } //-- void writeScmResult( ScmResult, String, XMLStreamWriter )
1005 
1006     /**
1007      * Method writeSuiteResult.
1008      * 
1009      * @param suiteResult
1010      * @param serializer
1011      * @param tagName
1012      * @throws java.io.IOException
1013      * @throws XMLStreamException
1014      */
1015     private void writeSuiteResult( SuiteResult suiteResult, String tagName, XMLStreamWriter serializer )
1016         throws java.io.IOException, XMLStreamException
1017     {
1018         if ( suiteResult != null )
1019         {
1020             serializer.writeStartElement( tagName );
1021             if ( suiteResult.getName() != null )
1022             {
1023                 serializer.writeStartElement( "name" );
1024                 serializer.writeCharacters( suiteResult.getName() );
1025                 serializer.writeEndElement();
1026             }
1027             if ( suiteResult.getTestCount() != 0 )
1028             {
1029                 serializer.writeStartElement( "testCount" );
1030                 serializer.writeCharacters( String.valueOf( suiteResult.getTestCount() ) );
1031                 serializer.writeEndElement();
1032             }
1033             if ( suiteResult.getFailureCount() != 0 )
1034             {
1035                 serializer.writeStartElement( "failureCount" );
1036                 serializer.writeCharacters( String.valueOf( suiteResult.getFailureCount() ) );
1037                 serializer.writeEndElement();
1038             }
1039             if ( suiteResult.getTotalTime() != 0L )
1040             {
1041                 serializer.writeStartElement( "totalTime" );
1042                 serializer.writeCharacters( String.valueOf( suiteResult.getTotalTime() ) );
1043                 serializer.writeEndElement();
1044             }
1045             if ( ( suiteResult.getFailures() != null ) && ( suiteResult.getFailures().size() > 0 ) )
1046             {
1047                 serializer.writeStartElement( "failures" );
1048                 for ( Iterator iter = suiteResult.getFailures().iterator(); iter.hasNext(); )
1049                 {
1050                     TestCaseFailure o = (TestCaseFailure) iter.next();
1051                     writeTestCaseFailure( o, "failure", serializer );
1052                 }
1053                 serializer.writeEndElement();
1054             }
1055             serializer.writeEndElement();
1056         }
1057     } //-- void writeSuiteResult( SuiteResult, String, XMLStreamWriter )
1058 
1059     /**
1060      * Method writeSystemConfiguration.
1061      * 
1062      * @param systemConfiguration
1063      * @param serializer
1064      * @param tagName
1065      * @throws java.io.IOException
1066      * @throws XMLStreamException
1067      */
1068     private void writeSystemConfiguration( SystemConfiguration systemConfiguration, String tagName, XMLStreamWriter serializer )
1069         throws java.io.IOException, XMLStreamException
1070     {
1071         if ( systemConfiguration != null )
1072         {
1073             serializer.writeStartElement( tagName );
1074             if ( systemConfiguration.isGuestAccountEnabled() != true )
1075             {
1076                 serializer.writeStartElement( "guestAccountEnabled" );
1077                 serializer.writeCharacters( String.valueOf( systemConfiguration.isGuestAccountEnabled() ) );
1078                 serializer.writeEndElement();
1079             }
1080             if ( ( systemConfiguration.getDefaultScheduleDescription() != null ) && !systemConfiguration.getDefaultScheduleDescription().equals( "Run hourly" ) )
1081             {
1082                 serializer.writeStartElement( "defaultScheduleDescription" );
1083                 serializer.writeCharacters( systemConfiguration.getDefaultScheduleDescription() );
1084                 serializer.writeEndElement();
1085             }
1086             if ( ( systemConfiguration.getDefaultScheduleCronExpression() != null ) && !systemConfiguration.getDefaultScheduleCronExpression().equals( "0 0 * * * ?" ) )
1087             {
1088                 serializer.writeStartElement( "defaultScheduleCronExpression" );
1089                 serializer.writeCharacters( systemConfiguration.getDefaultScheduleCronExpression() );
1090                 serializer.writeEndElement();
1091             }
1092             if ( ( systemConfiguration.getWorkingDirectory() != null ) && !systemConfiguration.getWorkingDirectory().equals( "working-directory" ) )
1093             {
1094                 serializer.writeStartElement( "workingDirectory" );
1095                 serializer.writeCharacters( systemConfiguration.getWorkingDirectory() );
1096                 serializer.writeEndElement();
1097             }
1098             if ( ( systemConfiguration.getBuildOutputDirectory() != null ) && !systemConfiguration.getBuildOutputDirectory().equals( "build-output-directory" ) )
1099             {
1100                 serializer.writeStartElement( "buildOutputDirectory" );
1101                 serializer.writeCharacters( systemConfiguration.getBuildOutputDirectory() );
1102                 serializer.writeEndElement();
1103             }
1104             if ( systemConfiguration.getDeploymentRepositoryDirectory() != null )
1105             {
1106                 serializer.writeStartElement( "deploymentRepositoryDirectory" );
1107                 serializer.writeCharacters( systemConfiguration.getDeploymentRepositoryDirectory() );
1108                 serializer.writeEndElement();
1109             }
1110             if ( systemConfiguration.getBaseUrl() != null )
1111             {
1112                 serializer.writeStartElement( "baseUrl" );
1113                 serializer.writeCharacters( systemConfiguration.getBaseUrl() );
1114                 serializer.writeEndElement();
1115             }
1116             if ( systemConfiguration.isInitialized() != false )
1117             {
1118                 serializer.writeStartElement( "initialized" );
1119                 serializer.writeCharacters( String.valueOf( systemConfiguration.isInitialized() ) );
1120                 serializer.writeEndElement();
1121             }
1122             serializer.writeEndElement();
1123         }
1124     } //-- void writeSystemConfiguration( SystemConfiguration, String, XMLStreamWriter )
1125 
1126     /**
1127      * Method writeTestCaseFailure.
1128      * 
1129      * @param testCaseFailure
1130      * @param serializer
1131      * @param tagName
1132      * @throws java.io.IOException
1133      * @throws XMLStreamException
1134      */
1135     private void writeTestCaseFailure( TestCaseFailure testCaseFailure, String tagName, XMLStreamWriter serializer )
1136         throws java.io.IOException, XMLStreamException
1137     {
1138         if ( testCaseFailure != null )
1139         {
1140             serializer.writeStartElement( tagName );
1141             if ( testCaseFailure.getName() != null )
1142             {
1143                 serializer.writeStartElement( "name" );
1144                 serializer.writeCharacters( testCaseFailure.getName() );
1145                 serializer.writeEndElement();
1146             }
1147             if ( testCaseFailure.getException() != null )
1148             {
1149                 serializer.writeStartElement( "exception" );
1150                 serializer.writeCharacters( testCaseFailure.getException() );
1151                 serializer.writeEndElement();
1152             }
1153             serializer.writeEndElement();
1154         }
1155     } //-- void writeTestCaseFailure( TestCaseFailure, String, XMLStreamWriter )
1156 
1157     /**
1158      * Method writeTestResult.
1159      * 
1160      * @param testResult
1161      * @param serializer
1162      * @param tagName
1163      * @throws java.io.IOException
1164      * @throws XMLStreamException
1165      */
1166     private void writeTestResult( TestResult testResult, String tagName, XMLStreamWriter serializer )
1167         throws java.io.IOException, XMLStreamException
1168     {
1169         if ( testResult != null )
1170         {
1171             serializer.writeStartElement( tagName );
1172             if ( testResult.getTestCount() != 0 )
1173             {
1174                 serializer.writeStartElement( "testCount" );
1175                 serializer.writeCharacters( String.valueOf( testResult.getTestCount() ) );
1176                 serializer.writeEndElement();
1177             }
1178             if ( testResult.getFailureCount() != 0 )
1179             {
1180                 serializer.writeStartElement( "failureCount" );
1181                 serializer.writeCharacters( String.valueOf( testResult.getFailureCount() ) );
1182                 serializer.writeEndElement();
1183             }
1184             if ( testResult.getTotalTime() != 0L )
1185             {
1186                 serializer.writeStartElement( "totalTime" );
1187                 serializer.writeCharacters( String.valueOf( testResult.getTotalTime() ) );
1188                 serializer.writeEndElement();
1189             }
1190             if ( ( testResult.getSuiteResults() != null ) && ( testResult.getSuiteResults().size() > 0 ) )
1191             {
1192                 serializer.writeStartElement( "suiteResults" );
1193                 for ( Iterator iter = testResult.getSuiteResults().iterator(); iter.hasNext(); )
1194                 {
1195                     SuiteResult o = (SuiteResult) iter.next();
1196                     writeSuiteResult( o, "suiteResult", serializer );
1197                 }
1198                 serializer.writeEndElement();
1199             }
1200             serializer.writeEndElement();
1201         }
1202     } //-- void writeTestResult( TestResult, String, XMLStreamWriter )
1203 
1204 }