001// =================== DO NOT EDIT THIS FILE ====================
002// Generated by Modello 2.3.0,
003// any modifications will be overwritten.
004// ==============================================================
005
006package org.codehaus.modello.test.features.io.xpp3;
007
008  //---------------------------------/
009 //- Imported classes and packages -/
010//---------------------------------/
011
012import java.io.OutputStream;
013import java.io.Writer;
014import java.util.Iterator;
015import org.codehaus.modello.test.features.Action;
016import org.codehaus.modello.test.features.AnnotationTest;
017import org.codehaus.modello.test.features.ArrayFeatures;
018import org.codehaus.modello.test.features.AssociationFeatures;
019import org.codehaus.modello.test.features.BaseClass;
020import org.codehaus.modello.test.features.BidiInList;
021import org.codehaus.modello.test.features.BidiInSet;
022import org.codehaus.modello.test.features.Bidirectional;
023import org.codehaus.modello.test.features.ContentTest;
024import org.codehaus.modello.test.features.DueTo;
025import org.codehaus.modello.test.features.Features;
026import org.codehaus.modello.test.features.File;
027import org.codehaus.modello.test.features.InterfacesFeature;
028import org.codehaus.modello.test.features.JavaFeatures;
029import org.codehaus.modello.test.features.NodeItem;
030import org.codehaus.modello.test.features.Reference;
031import org.codehaus.modello.test.features.SimpleInterface;
032import org.codehaus.modello.test.features.SimpleTypes;
033import org.codehaus.modello.test.features.SubClassLevel1;
034import org.codehaus.modello.test.features.SubClassLevel2;
035import org.codehaus.modello.test.features.SubClassLevel3;
036import org.codehaus.modello.test.features.SubInterface;
037import org.codehaus.modello.test.features.SuperThing;
038import org.codehaus.modello.test.features.Thing;
039import org.codehaus.modello.test.features.Thingy;
040import org.codehaus.modello.test.features.XdocFeatures;
041import org.codehaus.modello.test.features.XmlAttributes;
042import org.codehaus.modello.test.features.XmlContent;
043import org.codehaus.modello.test.features.XmlContentLong;
044import org.codehaus.modello.test.features.XmlContentLongWithAttributes;
045import org.codehaus.modello.test.features.XmlFeatures;
046import org.codehaus.modello.test.features.XmlFieldsOrder;
047import org.codehaus.modello.test.features.XmlFieldsOrderParent;
048import org.codehaus.modello.test.features.XmlFieldsOrderParent2;
049import org.codehaus.modello.test.features.XmlTransientFields;
050import org.codehaus.modello.test.features.XsdFeatures;
051import org.codehaus.modello.test.features.other.PackageNameFeature;
052import org.codehaus.modello.test.features.other.SubInterfaceInPackage;
053import org.codehaus.plexus.util.xml.Xpp3Dom;
054import org.codehaus.plexus.util.xml.pull.MXSerializer;
055import org.codehaus.plexus.util.xml.pull.XmlSerializer;
056
057/**
058 * Class ModelloFeaturesTestXpp3Writer.
059 * 
060 * @version $Revision$ $Date$
061 */
062@SuppressWarnings( "all" )
063public class ModelloFeaturesTestXpp3Writer
064{
065
066      //--------------------------/
067     //- Class/Member Variables -/
068    //--------------------------/
069
070    /**
071     * Field NAMESPACE.
072     */
073    private static final String NAMESPACE = null;
074
075    /**
076     * Field fileComment.
077     */
078    private String fileComment = null;
079
080
081      //-----------/
082     //- Methods -/
083    //-----------/
084
085    /**
086     * Method setFileComment.
087     * 
088     * @param fileComment a fileComment object.
089     */
090    public void setFileComment( String fileComment )
091    {
092        this.fileComment = fileComment;
093    } //-- void setFileComment( String )
094
095    /**
096     * Method write.
097     * 
098     * @param writer a writer object.
099     * @param features a features object.
100     * @throws java.io.IOException java.io.IOException if any.
101     */
102    public void write( Writer writer, Features features )
103        throws java.io.IOException
104    {
105        XmlSerializer serializer = new MXSerializer();
106        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
107        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
108        serializer.setOutput( writer );
109        serializer.startDocument( features.getModelEncoding(), null );
110        writeFeatures( features, "features-demo", serializer );
111        serializer.endDocument();
112    } //-- void write( Writer, Features )
113
114    /**
115     * Method write.
116     * 
117     * @param stream a stream object.
118     * @param features a features object.
119     * @throws java.io.IOException java.io.IOException if any.
120     */
121    public void write( OutputStream stream, Features features )
122        throws java.io.IOException
123    {
124        XmlSerializer serializer = new MXSerializer();
125        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
126        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
127        serializer.setOutput( stream, features.getModelEncoding() );
128        serializer.startDocument( features.getModelEncoding(), null );
129        writeFeatures( features, "features-demo", serializer );
130        serializer.endDocument();
131    } //-- void write( OutputStream, Features )
132
133    /**
134     * Method writeAction.
135     * 
136     * @param action a action object.
137     * @param serializer a serializer object.
138     * @param tagName a tagName object.
139     * @throws java.io.IOException java.io.IOException if any.
140     */
141    private void writeAction( Action action, String tagName, XmlSerializer serializer )
142        throws java.io.IOException
143    {
144        serializer.startTag( NAMESPACE, tagName );
145        if ( action.getDev() != null )
146        {
147            serializer.attribute( NAMESPACE, "dev", action.getDev() );
148        }
149        serializer.text( action.getAction() );
150        serializer.endTag( NAMESPACE, tagName );
151    } //-- void writeAction( Action, String, XmlSerializer )
152
153    /**
154     * Method writeAnnotationTest.
155     * 
156     * @param annotationTest a annotationTest object.
157     * @param serializer a serializer object.
158     * @param tagName a tagName object.
159     * @throws java.io.IOException java.io.IOException if any.
160     */
161    private void writeAnnotationTest( AnnotationTest annotationTest, String tagName, XmlSerializer serializer )
162        throws java.io.IOException
163    {
164        serializer.startTag( NAMESPACE, tagName );
165        if ( annotationTest.getAnyField() != null )
166        {
167            serializer.startTag( NAMESPACE, "anyField" ).text( annotationTest.getAnyField() ).endTag( NAMESPACE, "anyField" );
168        }
169        serializer.endTag( NAMESPACE, tagName );
170    } //-- void writeAnnotationTest( AnnotationTest, String, XmlSerializer )
171
172    /**
173     * Method writeArrayFeatures.
174     * 
175     * @param arrayFeatures a arrayFeatures object.
176     * @param serializer a serializer object.
177     * @param tagName a tagName object.
178     * @throws java.io.IOException java.io.IOException if any.
179     */
180    private void writeArrayFeatures( ArrayFeatures arrayFeatures, String tagName, XmlSerializer serializer )
181        throws java.io.IOException
182    {
183        serializer.startTag( NAMESPACE, tagName );
184        serializer.endTag( NAMESPACE, tagName );
185    } //-- void writeArrayFeatures( ArrayFeatures, String, XmlSerializer )
186
187    /**
188     * Method writeAssociationFeatures.
189     * 
190     * @param associationFeatures a associationFeatures object.
191     * @param serializer a serializer object.
192     * @param tagName a tagName object.
193     * @throws java.io.IOException java.io.IOException if any.
194     */
195    private void writeAssociationFeatures( AssociationFeatures associationFeatures, String tagName, XmlSerializer serializer )
196        throws java.io.IOException
197    {
198        serializer.startTag( NAMESPACE, tagName );
199        if ( ( associationFeatures.getListReferences() != null ) && ( associationFeatures.getListReferences().size() > 0 ) )
200        {
201            serializer.startTag( NAMESPACE, "listReferences" );
202            for ( Iterator iter = associationFeatures.getListReferences().iterator(); iter.hasNext(); )
203            {
204                Reference o = (Reference) iter.next();
205                writeReference( o, "listReference", serializer );
206            }
207            serializer.endTag( NAMESPACE, "listReferences" );
208        }
209        if ( ( associationFeatures.getSetReferences() != null ) && ( associationFeatures.getSetReferences().size() > 0 ) )
210        {
211            serializer.startTag( NAMESPACE, "setReferences" );
212            for ( Iterator iter = associationFeatures.getSetReferences().iterator(); iter.hasNext(); )
213            {
214                Reference o = (Reference) iter.next();
215                writeReference( o, "setReference", serializer );
216            }
217            serializer.endTag( NAMESPACE, "setReferences" );
218        }
219        if ( ( associationFeatures.getListStrings() != null ) && ( associationFeatures.getListStrings().size() > 0 ) )
220        {
221            serializer.startTag( NAMESPACE, "listStrings" );
222            for ( Iterator iter = associationFeatures.getListStrings().iterator(); iter.hasNext(); )
223            {
224                String listString = (String) iter.next();
225                serializer.startTag( NAMESPACE, "listString" ).text( listString ).endTag( NAMESPACE, "listString" );
226            }
227            serializer.endTag( NAMESPACE, "listStrings" );
228        }
229        if ( ( associationFeatures.getSetStrings() != null ) && ( associationFeatures.getSetStrings().size() > 0 ) )
230        {
231            serializer.startTag( NAMESPACE, "setStrings" );
232            for ( Iterator iter = associationFeatures.getSetStrings().iterator(); iter.hasNext(); )
233            {
234                String setString = (String) iter.next();
235                serializer.startTag( NAMESPACE, "setString" ).text( setString ).endTag( NAMESPACE, "setString" );
236            }
237            serializer.endTag( NAMESPACE, "setStrings" );
238        }
239        if ( ( associationFeatures.getProperties() != null ) && ( associationFeatures.getProperties().size() > 0 ) )
240        {
241            serializer.startTag( NAMESPACE, "properties" );
242            for ( Iterator iter = associationFeatures.getProperties().keySet().iterator(); iter.hasNext(); )
243            {
244                String key = (String) iter.next();
245                String value = (String) associationFeatures.getProperties().get( key );
246                serializer.startTag( NAMESPACE, key ).text( value ).endTag( NAMESPACE, key );
247            }
248            serializer.endTag( NAMESPACE, "properties" );
249        }
250        if ( associationFeatures.getBidi() != null )
251        {
252            writeBidirectional( (Bidirectional) associationFeatures.getBidi(), "bidi", serializer );
253        }
254        if ( ( associationFeatures.getListOfBidis() != null ) && ( associationFeatures.getListOfBidis().size() > 0 ) )
255        {
256            serializer.startTag( NAMESPACE, "listOfBidis" );
257            for ( Iterator iter = associationFeatures.getListOfBidis().iterator(); iter.hasNext(); )
258            {
259                BidiInList o = (BidiInList) iter.next();
260                writeBidiInList( o, "listOfBidi", serializer );
261            }
262            serializer.endTag( NAMESPACE, "listOfBidis" );
263        }
264        if ( ( associationFeatures.getSetOfBidis() != null ) && ( associationFeatures.getSetOfBidis().size() > 0 ) )
265        {
266            serializer.startTag( NAMESPACE, "setOfBidis" );
267            for ( Iterator iter = associationFeatures.getSetOfBidis().iterator(); iter.hasNext(); )
268            {
269                BidiInSet o = (BidiInSet) iter.next();
270                writeBidiInSet( o, "setOfBidi", serializer );
271            }
272            serializer.endTag( NAMESPACE, "setOfBidis" );
273        }
274        serializer.endTag( NAMESPACE, tagName );
275    } //-- void writeAssociationFeatures( AssociationFeatures, String, XmlSerializer )
276
277    /**
278     * Method writeBaseClass.
279     * 
280     * @param baseClass a baseClass object.
281     * @param serializer a serializer object.
282     * @param tagName a tagName object.
283     * @throws java.io.IOException java.io.IOException if any.
284     */
285    private void writeBaseClass( BaseClass baseClass, String tagName, XmlSerializer serializer )
286        throws java.io.IOException
287    {
288        serializer.startTag( NAMESPACE, tagName );
289        if ( baseClass.getBaseAttribute() != 0 )
290        {
291            serializer.attribute( NAMESPACE, "baseAttribute", String.valueOf( baseClass.getBaseAttribute() ) );
292        }
293        if ( baseClass.getBaseElement() != 0 )
294        {
295            serializer.startTag( NAMESPACE, "baseElement" ).text( String.valueOf( baseClass.getBaseElement() ) ).endTag( NAMESPACE, "baseElement" );
296        }
297        serializer.endTag( NAMESPACE, tagName );
298    } //-- void writeBaseClass( BaseClass, String, XmlSerializer )
299
300    /**
301     * Method writeBidiInList.
302     * 
303     * @param bidiInList a bidiInList object.
304     * @param serializer a serializer object.
305     * @param tagName a tagName object.
306     * @throws java.io.IOException java.io.IOException if any.
307     */
308    private void writeBidiInList( BidiInList bidiInList, String tagName, XmlSerializer serializer )
309        throws java.io.IOException
310    {
311        serializer.startTag( NAMESPACE, tagName );
312        if ( bidiInList.getParent() != null )
313        {
314            writeAssociationFeatures( (AssociationFeatures) bidiInList.getParent(), "parent", serializer );
315        }
316        serializer.endTag( NAMESPACE, tagName );
317    } //-- void writeBidiInList( BidiInList, String, XmlSerializer )
318
319    /**
320     * Method writeBidiInSet.
321     * 
322     * @param bidiInSet a bidiInSet object.
323     * @param serializer a serializer object.
324     * @param tagName a tagName object.
325     * @throws java.io.IOException java.io.IOException if any.
326     */
327    private void writeBidiInSet( BidiInSet bidiInSet, String tagName, XmlSerializer serializer )
328        throws java.io.IOException
329    {
330        serializer.startTag( NAMESPACE, tagName );
331        if ( bidiInSet.getParent() != null )
332        {
333            writeAssociationFeatures( (AssociationFeatures) bidiInSet.getParent(), "parent", serializer );
334        }
335        serializer.endTag( NAMESPACE, tagName );
336    } //-- void writeBidiInSet( BidiInSet, String, XmlSerializer )
337
338    /**
339     * Method writeBidirectional.
340     * 
341     * @param bidirectional a bidirectional object.
342     * @param serializer a serializer object.
343     * @param tagName a tagName object.
344     * @throws java.io.IOException java.io.IOException if any.
345     */
346    private void writeBidirectional( Bidirectional bidirectional, String tagName, XmlSerializer serializer )
347        throws java.io.IOException
348    {
349        serializer.startTag( NAMESPACE, tagName );
350        if ( bidirectional.getParent() != null )
351        {
352            writeAssociationFeatures( (AssociationFeatures) bidirectional.getParent(), "parent", serializer );
353        }
354        serializer.endTag( NAMESPACE, tagName );
355    } //-- void writeBidirectional( Bidirectional, String, XmlSerializer )
356
357    /**
358     * Method writeContentTest.
359     * 
360     * @param contentTest a contentTest object.
361     * @param serializer a serializer object.
362     * @param tagName a tagName object.
363     * @throws java.io.IOException java.io.IOException if any.
364     */
365    private void writeContentTest( ContentTest contentTest, String tagName, XmlSerializer serializer )
366        throws java.io.IOException
367    {
368        serializer.startTag( NAMESPACE, tagName );
369        if ( contentTest.getAttr() != null )
370        {
371            serializer.attribute( NAMESPACE, "attr", contentTest.getAttr() );
372        }
373        if ( contentTest.getAttr2() != 0 )
374        {
375            serializer.attribute( NAMESPACE, "attr2", String.valueOf( contentTest.getAttr2() ) );
376        }
377        serializer.text( contentTest.getContent() );
378        serializer.endTag( NAMESPACE, tagName );
379    } //-- void writeContentTest( ContentTest, String, XmlSerializer )
380
381    /**
382     * Method writeDueTo.
383     * 
384     * @param dueTo a dueTo object.
385     * @param serializer a serializer object.
386     * @param tagName a tagName object.
387     * @throws java.io.IOException java.io.IOException if any.
388     */
389    private void writeDueTo( DueTo dueTo, String tagName, XmlSerializer serializer )
390        throws java.io.IOException
391    {
392        serializer.startTag( NAMESPACE, tagName );
393        if ( dueTo.getName() != null )
394        {
395            serializer.attribute( NAMESPACE, "name", dueTo.getName() );
396        }
397        if ( dueTo.getEmail() != null )
398        {
399            serializer.attribute( NAMESPACE, "email", dueTo.getEmail() );
400        }
401        serializer.endTag( NAMESPACE, tagName );
402    } //-- void writeDueTo( DueTo, String, XmlSerializer )
403
404    /**
405     * Method writeFeatures.
406     * 
407     * @param features a features object.
408     * @param serializer a serializer object.
409     * @param tagName a tagName object.
410     * @throws java.io.IOException java.io.IOException if any.
411     */
412    private void writeFeatures( Features features, String tagName, XmlSerializer serializer )
413        throws java.io.IOException
414    {
415        if ( this.fileComment != null )
416        {
417        serializer.comment(this.fileComment);
418        }
419        serializer.setPrefix( "", "http://codehaus-plexus.github.io/FEATURES/1.0.0" );
420        serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
421        serializer.startTag( NAMESPACE, tagName );
422        serializer.attribute( "", "xsi:schemaLocation", "http://codehaus-plexus.github.io/FEATURES/1.0.0 http://codehaus-plexus.github.io/features-1.0.0.xsd" );
423        if ( features.getVersionField() != null )
424        {
425            serializer.startTag( NAMESPACE, "versionField" ).text( features.getVersionField() ).endTag( NAMESPACE, "versionField" );
426        }
427        if ( features.getComment() != null )
428        {
429            serializer.startTag( NAMESPACE, "comment" ).text( features.getComment() ).endTag( NAMESPACE, "comment" );
430        }
431        if ( features.getDescription() != null )
432        {
433            serializer.startTag( NAMESPACE, "description" ).text( features.getDescription() ).endTag( NAMESPACE, "description" );
434        }
435        if ( features.getRequired() != null )
436        {
437            serializer.startTag( NAMESPACE, "required" ).text( features.getRequired() ).endTag( NAMESPACE, "required" );
438        }
439        if ( features.getIdentifier() != null )
440        {
441            serializer.startTag( NAMESPACE, "identifier" ).text( features.getIdentifier() ).endTag( NAMESPACE, "identifier" );
442        }
443        if ( features.getIdentifierPart2() != null )
444        {
445            writeReference( (Reference) features.getIdentifierPart2(), "identifierPart2", serializer );
446        }
447        if ( features.getSimpleTypes() != null )
448        {
449            writeSimpleTypes( (SimpleTypes) features.getSimpleTypes(), "simpleTypes", serializer );
450        }
451        if ( features.getDefaultValues() != null )
452        {
453            writeSimpleTypes( (SimpleTypes) features.getDefaultValues(), "defaultValues", serializer );
454        }
455        if ( features.getArrays() != null )
456        {
457            writeArrayFeatures( (ArrayFeatures) features.getArrays(), "arrays", serializer );
458        }
459        if ( features.getAssociationFeatures() != null )
460        {
461            writeAssociationFeatures( (AssociationFeatures) features.getAssociationFeatures(), "associationFeatures", serializer );
462        }
463        if ( features.getJavaFeatures() != null )
464        {
465            writeJavaFeatures( (JavaFeatures) features.getJavaFeatures(), "javaFeatures", serializer );
466        }
467        if ( features.getXmlFeatures() != null )
468        {
469            writeXmlFeatures( (XmlFeatures) features.getXmlFeatures(), "xmlFeatures", serializer );
470        }
471        if ( features.getXdocFeatures() != null )
472        {
473            writeXdocFeatures( (XdocFeatures) features.getXdocFeatures(), "xdocFeatures", serializer );
474        }
475        if ( features.getNode() != null )
476        {
477            writeNodeItem( (NodeItem) features.getNode(), "node", serializer );
478        }
479        if ( features.getCloneable() != null )
480        {
481            writeThing( (Thing) features.getCloneable(), "cloneable", serializer );
482        }
483        if ( features.getFile() != null )
484        {
485            writeFile( (File) features.getFile(), "file", serializer );
486        }
487        if ( features.getAction() != null )
488        {
489            writeAction( (Action) features.getAction(), "action", serializer );
490        }
491        serializer.endTag( NAMESPACE, tagName );
492    } //-- void writeFeatures( Features, String, XmlSerializer )
493
494    /**
495     * Method writeFile.
496     * 
497     * @param file a file object.
498     * @param serializer a serializer object.
499     * @param tagName a tagName object.
500     * @throws java.io.IOException java.io.IOException if any.
501     */
502    private void writeFile( File file, String tagName, XmlSerializer serializer )
503        throws java.io.IOException
504    {
505        serializer.startTag( NAMESPACE, tagName );
506        if ( file.getFile() != null )
507        {
508            serializer.startTag( NAMESPACE, "file" ).text( file.getFile() ).endTag( NAMESPACE, "file" );
509        }
510        serializer.endTag( NAMESPACE, tagName );
511    } //-- void writeFile( File, String, XmlSerializer )
512
513    /**
514     * Method writeInterfacesFeature.
515     * 
516     * @param interfacesFeature a interfacesFeature object.
517     * @param serializer a serializer object.
518     * @param tagName a tagName object.
519     * @throws java.io.IOException java.io.IOException if any.
520     */
521    private void writeInterfacesFeature( InterfacesFeature interfacesFeature, String tagName, XmlSerializer serializer )
522        throws java.io.IOException
523    {
524        serializer.startTag( NAMESPACE, tagName );
525        if ( interfacesFeature.getId() != null )
526        {
527            serializer.startTag( NAMESPACE, "id" ).text( interfacesFeature.getId() ).endTag( NAMESPACE, "id" );
528        }
529        serializer.endTag( NAMESPACE, tagName );
530    } //-- void writeInterfacesFeature( InterfacesFeature, String, XmlSerializer )
531
532    /**
533     * Method writeJavaFeatures.
534     * 
535     * @param javaFeatures a javaFeatures object.
536     * @param serializer a serializer object.
537     * @param tagName a tagName object.
538     * @throws java.io.IOException java.io.IOException if any.
539     */
540    private void writeJavaFeatures( JavaFeatures javaFeatures, String tagName, XmlSerializer serializer )
541        throws java.io.IOException
542    {
543        serializer.startTag( NAMESPACE, tagName );
544        if ( javaFeatures.getInterfaces() != null )
545        {
546            writeInterfacesFeature( (InterfacesFeature) javaFeatures.getInterfaces(), "interfaces", serializer );
547        }
548        if ( javaFeatures.getPackageName() != null )
549        {
550            writePackageNameFeature( (PackageNameFeature) javaFeatures.getPackageName(), "packageName", serializer );
551        }
552        if ( javaFeatures.getBase() != null )
553        {
554            writeBaseClass( (BaseClass) javaFeatures.getBase(), "base", serializer );
555        }
556        if ( javaFeatures.getSubClass() != null )
557        {
558            writeSubClassLevel1( (SubClassLevel1) javaFeatures.getSubClass(), "subClass", serializer );
559        }
560        if ( javaFeatures.getSubClass2() != null )
561        {
562            writeSubClassLevel2( (SubClassLevel2) javaFeatures.getSubClass2(), "subClass2", serializer );
563        }
564        if ( javaFeatures.getSubClass3() != null )
565        {
566            writeSubClassLevel3( (SubClassLevel3) javaFeatures.getSubClass3(), "subClass3", serializer );
567        }
568        if ( javaFeatures.getAnnotation() != null )
569        {
570            writeAnnotationTest( (AnnotationTest) javaFeatures.getAnnotation(), "annotation", serializer );
571        }
572        serializer.endTag( NAMESPACE, tagName );
573    } //-- void writeJavaFeatures( JavaFeatures, String, XmlSerializer )
574
575    /**
576     * Method writeNodeItem.
577     * 
578     * @param nodeItem a nodeItem object.
579     * @param serializer a serializer object.
580     * @param tagName a tagName object.
581     * @throws java.io.IOException java.io.IOException if any.
582     */
583    private void writeNodeItem( NodeItem nodeItem, String tagName, XmlSerializer serializer )
584        throws java.io.IOException
585    {
586        serializer.startTag( NAMESPACE, tagName );
587        if ( nodeItem.getValue() != null )
588        {
589            serializer.startTag( NAMESPACE, "value" ).text( nodeItem.getValue() ).endTag( NAMESPACE, "value" );
590        }
591        if ( nodeItem.getChild() != null )
592        {
593            writeNodeItem( (NodeItem) nodeItem.getChild(), "child", serializer );
594        }
595        serializer.endTag( NAMESPACE, tagName );
596    } //-- void writeNodeItem( NodeItem, String, XmlSerializer )
597
598    /**
599     * Method writePackageNameFeature.
600     * 
601     * @param packageNameFeature a packageNameFeature object.
602     * @param serializer a serializer object.
603     * @param tagName a tagName object.
604     * @throws java.io.IOException java.io.IOException if any.
605     */
606    private void writePackageNameFeature( PackageNameFeature packageNameFeature, String tagName, XmlSerializer serializer )
607        throws java.io.IOException
608    {
609        serializer.startTag( NAMESPACE, tagName );
610        if ( packageNameFeature.getReference() != null )
611        {
612            writeReference( (Reference) packageNameFeature.getReference(), "reference", serializer );
613        }
614        serializer.endTag( NAMESPACE, tagName );
615    } //-- void writePackageNameFeature( PackageNameFeature, String, XmlSerializer )
616
617    /**
618     * Method writeReference.
619     * 
620     * @param reference a reference object.
621     * @param serializer a serializer object.
622     * @param tagName a tagName object.
623     * @throws java.io.IOException java.io.IOException if any.
624     */
625    private void writeReference( Reference reference, String tagName, XmlSerializer serializer )
626        throws java.io.IOException
627    {
628        serializer.startTag( NAMESPACE, tagName );
629        if ( reference.getId() != null )
630        {
631            serializer.startTag( NAMESPACE, "id" ).text( reference.getId() ).endTag( NAMESPACE, "id" );
632        }
633        serializer.endTag( NAMESPACE, tagName );
634    } //-- void writeReference( Reference, String, XmlSerializer )
635
636    /**
637     * Method writeSimpleTypes.
638     * 
639     * @param simpleTypes a simpleTypes object.
640     * @param serializer a serializer object.
641     * @param tagName a tagName object.
642     * @throws java.io.IOException java.io.IOException if any.
643     */
644    private void writeSimpleTypes( SimpleTypes simpleTypes, String tagName, XmlSerializer serializer )
645        throws java.io.IOException
646    {
647        serializer.startTag( NAMESPACE, tagName );
648        if ( simpleTypes.isPrimitiveBoolean() != true )
649        {
650            serializer.startTag( NAMESPACE, "primitiveBoolean" ).text( String.valueOf( simpleTypes.isPrimitiveBoolean() ) ).endTag( NAMESPACE, "primitiveBoolean" );
651        }
652        if ( simpleTypes.getPrimitiveChar() != 'H' )
653        {
654            serializer.startTag( NAMESPACE, "primitiveChar" ).text( String.valueOf( simpleTypes.getPrimitiveChar() ) ).endTag( NAMESPACE, "primitiveChar" );
655        }
656        if ( simpleTypes.getPrimitiveByte() != 12 )
657        {
658            serializer.startTag( NAMESPACE, "primitiveByte" ).text( String.valueOf( simpleTypes.getPrimitiveByte() ) ).endTag( NAMESPACE, "primitiveByte" );
659        }
660        if ( simpleTypes.getPrimitiveShort() != 1212 )
661        {
662            serializer.startTag( NAMESPACE, "primitiveShort" ).text( String.valueOf( simpleTypes.getPrimitiveShort() ) ).endTag( NAMESPACE, "primitiveShort" );
663        }
664        if ( simpleTypes.getPrimitiveInt() != 121212 )
665        {
666            serializer.startTag( NAMESPACE, "primitiveInt" ).text( String.valueOf( simpleTypes.getPrimitiveInt() ) ).endTag( NAMESPACE, "primitiveInt" );
667        }
668        if ( simpleTypes.getPrimitiveLong() != 1234567890123L )
669        {
670            serializer.startTag( NAMESPACE, "primitiveLong" ).text( String.valueOf( simpleTypes.getPrimitiveLong() ) ).endTag( NAMESPACE, "primitiveLong" );
671        }
672        if ( simpleTypes.getPrimitiveFloat() != 12.12f )
673        {
674            serializer.startTag( NAMESPACE, "primitiveFloat" ).text( String.valueOf( simpleTypes.getPrimitiveFloat() ) ).endTag( NAMESPACE, "primitiveFloat" );
675        }
676        if ( simpleTypes.getPrimitiveDouble() != 12.12 )
677        {
678            serializer.startTag( NAMESPACE, "primitiveDouble" ).text( String.valueOf( simpleTypes.getPrimitiveDouble() ) ).endTag( NAMESPACE, "primitiveDouble" );
679        }
680        if ( ( simpleTypes.getObjectString() != null ) && !simpleTypes.getObjectString().equals( "default value" ) )
681        {
682            serializer.startTag( NAMESPACE, "objectString" ).text( simpleTypes.getObjectString() ).endTag( NAMESPACE, "objectString" );
683        }
684        if ( ( simpleTypes.getObjectDate() != null ) && !simpleTypes.getObjectDate().equals( new java.util.Date( 1356383532012L ) ) )
685        {
686            serializer.startTag( NAMESPACE, "objectDate" ).text( new java.text.SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSS", java.util.Locale.US ).format( simpleTypes.getObjectDate() ) ).endTag( NAMESPACE, "objectDate" );
687        }
688        if ( simpleTypes.isPrimitiveBooleanNoDefault() != false )
689        {
690            serializer.startTag( NAMESPACE, "primitiveBooleanNoDefault" ).text( String.valueOf( simpleTypes.isPrimitiveBooleanNoDefault() ) ).endTag( NAMESPACE, "primitiveBooleanNoDefault" );
691        }
692        if ( simpleTypes.getPrimitiveCharNoDefault() != '\0' )
693        {
694            serializer.startTag( NAMESPACE, "primitiveCharNoDefault" ).text( String.valueOf( simpleTypes.getPrimitiveCharNoDefault() ) ).endTag( NAMESPACE, "primitiveCharNoDefault" );
695        }
696        if ( simpleTypes.getPrimitiveByteNoDefault() != 0 )
697        {
698            serializer.startTag( NAMESPACE, "primitiveByteNoDefault" ).text( String.valueOf( simpleTypes.getPrimitiveByteNoDefault() ) ).endTag( NAMESPACE, "primitiveByteNoDefault" );
699        }
700        if ( simpleTypes.getPrimitiveShortNoDefault() != 0 )
701        {
702            serializer.startTag( NAMESPACE, "primitiveShortNoDefault" ).text( String.valueOf( simpleTypes.getPrimitiveShortNoDefault() ) ).endTag( NAMESPACE, "primitiveShortNoDefault" );
703        }
704        if ( simpleTypes.getPrimitiveIntNoDefault() != 0 )
705        {
706            serializer.startTag( NAMESPACE, "primitiveIntNoDefault" ).text( String.valueOf( simpleTypes.getPrimitiveIntNoDefault() ) ).endTag( NAMESPACE, "primitiveIntNoDefault" );
707        }
708        if ( simpleTypes.getPrimitiveLongNoDefault() != 0L )
709        {
710            serializer.startTag( NAMESPACE, "primitiveLongNoDefault" ).text( String.valueOf( simpleTypes.getPrimitiveLongNoDefault() ) ).endTag( NAMESPACE, "primitiveLongNoDefault" );
711        }
712        if ( simpleTypes.getPrimitiveFloatNoDefault() != 0.0f )
713        {
714            serializer.startTag( NAMESPACE, "primitiveFloatNoDefault" ).text( String.valueOf( simpleTypes.getPrimitiveFloatNoDefault() ) ).endTag( NAMESPACE, "primitiveFloatNoDefault" );
715        }
716        if ( simpleTypes.getPrimitiveDoubleNoDefault() != 0.0 )
717        {
718            serializer.startTag( NAMESPACE, "primitiveDoubleNoDefault" ).text( String.valueOf( simpleTypes.getPrimitiveDoubleNoDefault() ) ).endTag( NAMESPACE, "primitiveDoubleNoDefault" );
719        }
720        if ( simpleTypes.getObjectStringNoDefault() != null )
721        {
722            serializer.startTag( NAMESPACE, "objectStringNoDefault" ).text( simpleTypes.getObjectStringNoDefault() ).endTag( NAMESPACE, "objectStringNoDefault" );
723        }
724        if ( simpleTypes.getObjectDateNoDefault() != null )
725        {
726            serializer.startTag( NAMESPACE, "objectDateNoDefault" ).text( new java.text.SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSS", java.util.Locale.US ).format( simpleTypes.getObjectDateNoDefault() ) ).endTag( NAMESPACE, "objectDateNoDefault" );
727        }
728        if ( simpleTypes.getDom() != null )
729        {
730            ((Xpp3Dom) simpleTypes.getDom()).writeToSerializer( NAMESPACE, serializer );
731        }
732        if ( simpleTypes.getContent() != null )
733        {
734            writeContentTest( (ContentTest) simpleTypes.getContent(), "content", serializer );
735        }
736        serializer.endTag( NAMESPACE, tagName );
737    } //-- void writeSimpleTypes( SimpleTypes, String, XmlSerializer )
738
739    /**
740     * Method writeSubClassLevel1.
741     * 
742     * @param subClassLevel1 a subClassLevel1 object.
743     * @param serializer a serializer object.
744     * @param tagName a tagName object.
745     * @throws java.io.IOException java.io.IOException if any.
746     */
747    private void writeSubClassLevel1( SubClassLevel1 subClassLevel1, String tagName, XmlSerializer serializer )
748        throws java.io.IOException
749    {
750        serializer.startTag( NAMESPACE, tagName );
751        if ( subClassLevel1.getSubAttribute1() != 0L )
752        {
753            serializer.attribute( NAMESPACE, "subAttribute1", String.valueOf( subClassLevel1.getSubAttribute1() ) );
754        }
755        if ( subClassLevel1.getBaseAttribute() != 0 )
756        {
757            serializer.attribute( NAMESPACE, "baseAttribute", String.valueOf( subClassLevel1.getBaseAttribute() ) );
758        }
759        if ( subClassLevel1.getSubElement1() != 0L )
760        {
761            serializer.startTag( NAMESPACE, "subElement1" ).text( String.valueOf( subClassLevel1.getSubElement1() ) ).endTag( NAMESPACE, "subElement1" );
762        }
763        if ( subClassLevel1.getBaseElement() != 0 )
764        {
765            serializer.startTag( NAMESPACE, "baseElement" ).text( String.valueOf( subClassLevel1.getBaseElement() ) ).endTag( NAMESPACE, "baseElement" );
766        }
767        serializer.endTag( NAMESPACE, tagName );
768    } //-- void writeSubClassLevel1( SubClassLevel1, String, XmlSerializer )
769
770    /**
771     * Method writeSubClassLevel2.
772     * 
773     * @param subClassLevel2 a subClassLevel2 object.
774     * @param serializer a serializer object.
775     * @param tagName a tagName object.
776     * @throws java.io.IOException java.io.IOException if any.
777     */
778    private void writeSubClassLevel2( SubClassLevel2 subClassLevel2, String tagName, XmlSerializer serializer )
779        throws java.io.IOException
780    {
781        serializer.startTag( NAMESPACE, tagName );
782        if ( subClassLevel2.getSubAttribute2() != 0.0f )
783        {
784            serializer.attribute( NAMESPACE, "subAttribute2", String.valueOf( subClassLevel2.getSubAttribute2() ) );
785        }
786        if ( subClassLevel2.getSubAttribute1() != 0L )
787        {
788            serializer.attribute( NAMESPACE, "subAttribute1", String.valueOf( subClassLevel2.getSubAttribute1() ) );
789        }
790        if ( subClassLevel2.getBaseAttribute() != 0 )
791        {
792            serializer.attribute( NAMESPACE, "baseAttribute", String.valueOf( subClassLevel2.getBaseAttribute() ) );
793        }
794        if ( subClassLevel2.getSubElement2() != 0.0f )
795        {
796            serializer.startTag( NAMESPACE, "subElement2" ).text( String.valueOf( subClassLevel2.getSubElement2() ) ).endTag( NAMESPACE, "subElement2" );
797        }
798        if ( subClassLevel2.getSubElement1() != 0L )
799        {
800            serializer.startTag( NAMESPACE, "subElement1" ).text( String.valueOf( subClassLevel2.getSubElement1() ) ).endTag( NAMESPACE, "subElement1" );
801        }
802        if ( subClassLevel2.getBaseElement() != 0 )
803        {
804            serializer.startTag( NAMESPACE, "baseElement" ).text( String.valueOf( subClassLevel2.getBaseElement() ) ).endTag( NAMESPACE, "baseElement" );
805        }
806        serializer.endTag( NAMESPACE, tagName );
807    } //-- void writeSubClassLevel2( SubClassLevel2, String, XmlSerializer )
808
809    /**
810     * Method writeSubClassLevel3.
811     * 
812     * @param subClassLevel3 a subClassLevel3 object.
813     * @param serializer a serializer object.
814     * @param tagName a tagName object.
815     * @throws java.io.IOException java.io.IOException if any.
816     */
817    private void writeSubClassLevel3( SubClassLevel3 subClassLevel3, String tagName, XmlSerializer serializer )
818        throws java.io.IOException
819    {
820        serializer.startTag( NAMESPACE, tagName );
821        if ( subClassLevel3.getSubAttribute3() != 0.0 )
822        {
823            serializer.attribute( NAMESPACE, "subAttribute3", String.valueOf( subClassLevel3.getSubAttribute3() ) );
824        }
825        if ( subClassLevel3.getSubAttribute2() != 0.0f )
826        {
827            serializer.attribute( NAMESPACE, "subAttribute2", String.valueOf( subClassLevel3.getSubAttribute2() ) );
828        }
829        if ( subClassLevel3.getSubAttribute1() != 0L )
830        {
831            serializer.attribute( NAMESPACE, "subAttribute1", String.valueOf( subClassLevel3.getSubAttribute1() ) );
832        }
833        if ( subClassLevel3.getBaseAttribute() != 0 )
834        {
835            serializer.attribute( NAMESPACE, "baseAttribute", String.valueOf( subClassLevel3.getBaseAttribute() ) );
836        }
837        if ( subClassLevel3.getSubElement3() != 0.0 )
838        {
839            serializer.startTag( NAMESPACE, "subElement3" ).text( String.valueOf( subClassLevel3.getSubElement3() ) ).endTag( NAMESPACE, "subElement3" );
840        }
841        if ( subClassLevel3.getSubElement2() != 0.0f )
842        {
843            serializer.startTag( NAMESPACE, "subElement2" ).text( String.valueOf( subClassLevel3.getSubElement2() ) ).endTag( NAMESPACE, "subElement2" );
844        }
845        if ( subClassLevel3.getSubElement1() != 0L )
846        {
847            serializer.startTag( NAMESPACE, "subElement1" ).text( String.valueOf( subClassLevel3.getSubElement1() ) ).endTag( NAMESPACE, "subElement1" );
848        }
849        if ( subClassLevel3.getBaseElement() != 0 )
850        {
851            serializer.startTag( NAMESPACE, "baseElement" ).text( String.valueOf( subClassLevel3.getBaseElement() ) ).endTag( NAMESPACE, "baseElement" );
852        }
853        serializer.endTag( NAMESPACE, tagName );
854    } //-- void writeSubClassLevel3( SubClassLevel3, String, XmlSerializer )
855
856    /**
857     * Method writeSuperThing.
858     * 
859     * @param superThing a superThing object.
860     * @param serializer a serializer object.
861     * @param tagName a tagName object.
862     * @throws java.io.IOException java.io.IOException if any.
863     */
864    private void writeSuperThing( SuperThing superThing, String tagName, XmlSerializer serializer )
865        throws java.io.IOException
866    {
867        serializer.startTag( NAMESPACE, tagName );
868        serializer.endTag( NAMESPACE, tagName );
869    } //-- void writeSuperThing( SuperThing, String, XmlSerializer )
870
871    /**
872     * Method writeThing.
873     * 
874     * @param thing a thing object.
875     * @param serializer a serializer object.
876     * @param tagName a tagName object.
877     * @throws java.io.IOException java.io.IOException if any.
878     */
879    private void writeThing( Thing thing, String tagName, XmlSerializer serializer )
880        throws java.io.IOException
881    {
882        serializer.startTag( NAMESPACE, tagName );
883        if ( thing.isSomeBoolean() != false )
884        {
885            serializer.startTag( NAMESPACE, "someBoolean" ).text( String.valueOf( thing.isSomeBoolean() ) ).endTag( NAMESPACE, "someBoolean" );
886        }
887        if ( thing.getSomeChar() != '\0' )
888        {
889            serializer.startTag( NAMESPACE, "someChar" ).text( String.valueOf( thing.getSomeChar() ) ).endTag( NAMESPACE, "someChar" );
890        }
891        if ( thing.getSomeByte() != 0 )
892        {
893            serializer.startTag( NAMESPACE, "someByte" ).text( String.valueOf( thing.getSomeByte() ) ).endTag( NAMESPACE, "someByte" );
894        }
895        if ( thing.getSomeShort() != 0 )
896        {
897            serializer.startTag( NAMESPACE, "someShort" ).text( String.valueOf( thing.getSomeShort() ) ).endTag( NAMESPACE, "someShort" );
898        }
899        if ( thing.getSomeInt() != 0 )
900        {
901            serializer.startTag( NAMESPACE, "someInt" ).text( String.valueOf( thing.getSomeInt() ) ).endTag( NAMESPACE, "someInt" );
902        }
903        if ( thing.getSomeLong() != 0L )
904        {
905            serializer.startTag( NAMESPACE, "someLong" ).text( String.valueOf( thing.getSomeLong() ) ).endTag( NAMESPACE, "someLong" );
906        }
907        if ( thing.getSomeFloat() != 0.0f )
908        {
909            serializer.startTag( NAMESPACE, "someFloat" ).text( String.valueOf( thing.getSomeFloat() ) ).endTag( NAMESPACE, "someFloat" );
910        }
911        if ( thing.getSomeDouble() != 0.0 )
912        {
913            serializer.startTag( NAMESPACE, "someDouble" ).text( String.valueOf( thing.getSomeDouble() ) ).endTag( NAMESPACE, "someDouble" );
914        }
915        if ( thing.getSomeString() != null )
916        {
917            serializer.startTag( NAMESPACE, "someString" ).text( thing.getSomeString() ).endTag( NAMESPACE, "someString" );
918        }
919        if ( thing.getSomeDate() != null )
920        {
921            serializer.startTag( NAMESPACE, "someDate" ).text( new java.text.SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSS", java.util.Locale.US ).format( thing.getSomeDate() ) ).endTag( NAMESPACE, "someDate" );
922        }
923        if ( thing.getSomeDom() != null )
924        {
925            ((Xpp3Dom) thing.getSomeDom()).writeToSerializer( NAMESPACE, serializer );
926        }
927        if ( ( thing.getSomeProperties() != null ) && ( thing.getSomeProperties().size() > 0 ) )
928        {
929            serializer.startTag( NAMESPACE, "someProperties" );
930            for ( Iterator iter = thing.getSomeProperties().keySet().iterator(); iter.hasNext(); )
931            {
932                String key = (String) iter.next();
933                String value = (String) thing.getSomeProperties().get( key );
934                serializer.startTag( NAMESPACE, key ).text( value ).endTag( NAMESPACE, key );
935            }
936            serializer.endTag( NAMESPACE, "someProperties" );
937        }
938        if ( ( thing.getSomeStringList() != null ) && ( thing.getSomeStringList().size() > 0 ) )
939        {
940            serializer.startTag( NAMESPACE, "someStringList" );
941            for ( Iterator iter = thing.getSomeStringList().iterator(); iter.hasNext(); )
942            {
943                String someStringList = (String) iter.next();
944                serializer.startTag( NAMESPACE, "someStringList" ).text( someStringList ).endTag( NAMESPACE, "someStringList" );
945            }
946            serializer.endTag( NAMESPACE, "someStringList" );
947        }
948        if ( ( thing.getSomeStringSet() != null ) && ( thing.getSomeStringSet().size() > 0 ) )
949        {
950            serializer.startTag( NAMESPACE, "someStringSet" );
951            for ( Iterator iter = thing.getSomeStringSet().iterator(); iter.hasNext(); )
952            {
953                String someStringSet = (String) iter.next();
954                serializer.startTag( NAMESPACE, "someStringSet" ).text( someStringSet ).endTag( NAMESPACE, "someStringSet" );
955            }
956            serializer.endTag( NAMESPACE, "someStringSet" );
957        }
958        if ( thing.getDeepThingy() != null )
959        {
960            writeThingy( (Thingy) thing.getDeepThingy(), "deepThingy", serializer );
961        }
962        if ( ( thing.getDeepThingyList() != null ) && ( thing.getDeepThingyList().size() > 0 ) )
963        {
964            serializer.startTag( NAMESPACE, "deepThingyList" );
965            for ( Iterator iter = thing.getDeepThingyList().iterator(); iter.hasNext(); )
966            {
967                Thingy o = (Thingy) iter.next();
968                writeThingy( o, "deepThingyList", serializer );
969            }
970            serializer.endTag( NAMESPACE, "deepThingyList" );
971        }
972        if ( ( thing.getDeepThingySet() != null ) && ( thing.getDeepThingySet().size() > 0 ) )
973        {
974            serializer.startTag( NAMESPACE, "deepThingySet" );
975            for ( Iterator iter = thing.getDeepThingySet().iterator(); iter.hasNext(); )
976            {
977                Thingy o = (Thingy) iter.next();
978                writeThingy( o, "deepThingySet", serializer );
979            }
980            serializer.endTag( NAMESPACE, "deepThingySet" );
981        }
982        if ( thing.getShallowThingy() != null )
983        {
984            writeThingy( (Thingy) thing.getShallowThingy(), "shallowThingy", serializer );
985        }
986        if ( ( thing.getShallowThingyList() != null ) && ( thing.getShallowThingyList().size() > 0 ) )
987        {
988            serializer.startTag( NAMESPACE, "shallowThingyList" );
989            for ( Iterator iter = thing.getShallowThingyList().iterator(); iter.hasNext(); )
990            {
991                Thingy o = (Thingy) iter.next();
992                writeThingy( o, "shallowThingyList", serializer );
993            }
994            serializer.endTag( NAMESPACE, "shallowThingyList" );
995        }
996        if ( ( thing.getShallowThingySet() != null ) && ( thing.getShallowThingySet().size() > 0 ) )
997        {
998            serializer.startTag( NAMESPACE, "shallowThingySet" );
999            for ( Iterator iter = thing.getShallowThingySet().iterator(); iter.hasNext(); )
1000            {
1001                Thingy o = (Thingy) iter.next();
1002                writeThingy( o, "shallowThingySet", serializer );
1003            }
1004            serializer.endTag( NAMESPACE, "shallowThingySet" );
1005        }
1006        serializer.endTag( NAMESPACE, tagName );
1007    } //-- void writeThing( Thing, String, XmlSerializer )
1008
1009    /**
1010     * Method writeThingy.
1011     * 
1012     * @param thingy a thingy object.
1013     * @param serializer a serializer object.
1014     * @param tagName a tagName object.
1015     * @throws java.io.IOException java.io.IOException if any.
1016     */
1017    private void writeThingy( Thingy thingy, String tagName, XmlSerializer serializer )
1018        throws java.io.IOException
1019    {
1020        serializer.startTag( NAMESPACE, tagName );
1021        serializer.text( thingy.getSomeContent() );
1022        serializer.endTag( NAMESPACE, tagName );
1023    } //-- void writeThingy( Thingy, String, XmlSerializer )
1024
1025    /**
1026     * Method writeXdocFeatures.
1027     * 
1028     * @param xdocFeatures a xdocFeatures object.
1029     * @param serializer a serializer object.
1030     * @param tagName a tagName object.
1031     * @throws java.io.IOException java.io.IOException if any.
1032     */
1033    private void writeXdocFeatures( XdocFeatures xdocFeatures, String tagName, XmlSerializer serializer )
1034        throws java.io.IOException
1035    {
1036        serializer.startTag( NAMESPACE, tagName );
1037        if ( xdocFeatures.getField() != null )
1038        {
1039            serializer.startTag( NAMESPACE, "field" ).text( xdocFeatures.getField() ).endTag( NAMESPACE, "field" );
1040        }
1041        if ( xdocFeatures.getXdocSeparatorNone() != null )
1042        {
1043            serializer.startTag( NAMESPACE, "xdocSeparatorNone" ).text( xdocFeatures.getXdocSeparatorNone() ).endTag( NAMESPACE, "xdocSeparatorNone" );
1044        }
1045        if ( xdocFeatures.getXdocSeparatorBlank() != null )
1046        {
1047            serializer.startTag( NAMESPACE, "xdocSeparatorBlank" ).text( xdocFeatures.getXdocSeparatorBlank() ).endTag( NAMESPACE, "xdocSeparatorBlank" );
1048        }
1049        serializer.endTag( NAMESPACE, tagName );
1050    } //-- void writeXdocFeatures( XdocFeatures, String, XmlSerializer )
1051
1052    /**
1053     * Method writeXmlAttributes.
1054     * 
1055     * @param xmlAttributes a xmlAttributes object.
1056     * @param serializer a serializer object.
1057     * @param tagName a tagName object.
1058     * @throws java.io.IOException java.io.IOException if any.
1059     */
1060    private void writeXmlAttributes( XmlAttributes xmlAttributes, String tagName, XmlSerializer serializer )
1061        throws java.io.IOException
1062    {
1063        serializer.startTag( NAMESPACE, tagName );
1064        if ( xmlAttributes.isPrimitiveBoolean() != true )
1065        {
1066            serializer.attribute( NAMESPACE, "primitiveBoolean", String.valueOf( xmlAttributes.isPrimitiveBoolean() ) );
1067        }
1068        if ( xmlAttributes.getPrimitiveChar() != 'H' )
1069        {
1070            serializer.attribute( NAMESPACE, "primitiveChar", String.valueOf( xmlAttributes.getPrimitiveChar() ) );
1071        }
1072        if ( xmlAttributes.getPrimitiveByte() != 12 )
1073        {
1074            serializer.attribute( NAMESPACE, "primitiveByte", String.valueOf( xmlAttributes.getPrimitiveByte() ) );
1075        }
1076        if ( xmlAttributes.getPrimitiveShort() != 1212 )
1077        {
1078            serializer.attribute( NAMESPACE, "primitiveShort", String.valueOf( xmlAttributes.getPrimitiveShort() ) );
1079        }
1080        if ( xmlAttributes.getPrimitiveInt() != 121212 )
1081        {
1082            serializer.attribute( NAMESPACE, "primitiveInt", String.valueOf( xmlAttributes.getPrimitiveInt() ) );
1083        }
1084        if ( xmlAttributes.getPrimitiveLong() != 1234567890123L )
1085        {
1086            serializer.attribute( NAMESPACE, "primitiveLong", String.valueOf( xmlAttributes.getPrimitiveLong() ) );
1087        }
1088        if ( xmlAttributes.getPrimitiveFloat() != 12.12f )
1089        {
1090            serializer.attribute( NAMESPACE, "primitiveFloat", String.valueOf( xmlAttributes.getPrimitiveFloat() ) );
1091        }
1092        if ( xmlAttributes.getPrimitiveDouble() != 12.12 )
1093        {
1094            serializer.attribute( NAMESPACE, "primitiveDouble", String.valueOf( xmlAttributes.getPrimitiveDouble() ) );
1095        }
1096        if ( ( xmlAttributes.getObjectString() != null ) && !xmlAttributes.getObjectString().equals( "default value" ) )
1097        {
1098            serializer.attribute( NAMESPACE, "objectString", xmlAttributes.getObjectString() );
1099        }
1100        if ( xmlAttributes.getObjectDate() != null )
1101        {
1102            serializer.attribute( NAMESPACE, "objectDate", new java.text.SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSS", java.util.Locale.US ).format( xmlAttributes.getObjectDate() ) );
1103        }
1104        if ( ( xmlAttributes.getAttribute() != null ) && !xmlAttributes.getAttribute().equals( "default" ) )
1105        {
1106            serializer.attribute( NAMESPACE, "tag-name", xmlAttributes.getAttribute() );
1107        }
1108        serializer.endTag( NAMESPACE, tagName );
1109    } //-- void writeXmlAttributes( XmlAttributes, String, XmlSerializer )
1110
1111    /**
1112     * Method writeXmlContent.
1113     * 
1114     * @param xmlContent a xmlContent object.
1115     * @param serializer a serializer object.
1116     * @param tagName a tagName object.
1117     * @throws java.io.IOException java.io.IOException if any.
1118     */
1119    private void writeXmlContent( XmlContent xmlContent, String tagName, XmlSerializer serializer )
1120        throws java.io.IOException
1121    {
1122        serializer.startTag( NAMESPACE, tagName );
1123        if ( xmlContent.getLongContent() != null )
1124        {
1125            writeXmlContentLong( (XmlContentLong) xmlContent.getLongContent(), "content.long", serializer );
1126        }
1127        if ( xmlContent.getLongContentWithAttributes() != null )
1128        {
1129            writeXmlContentLongWithAttributes( (XmlContentLongWithAttributes) xmlContent.getLongContentWithAttributes(), "content.long-with-attributes", serializer );
1130        }
1131        serializer.endTag( NAMESPACE, tagName );
1132    } //-- void writeXmlContent( XmlContent, String, XmlSerializer )
1133
1134    /**
1135     * Method writeXmlContentLong.
1136     * 
1137     * @param xmlContentLong a xmlContentLong object.
1138     * @param serializer a serializer object.
1139     * @param tagName a tagName object.
1140     * @throws java.io.IOException java.io.IOException if any.
1141     */
1142    private void writeXmlContentLong( XmlContentLong xmlContentLong, String tagName, XmlSerializer serializer )
1143        throws java.io.IOException
1144    {
1145        serializer.startTag( NAMESPACE, tagName );
1146        serializer.text( String.valueOf( xmlContentLong.getContent() ) );
1147        serializer.endTag( NAMESPACE, tagName );
1148    } //-- void writeXmlContentLong( XmlContentLong, String, XmlSerializer )
1149
1150    /**
1151     * Method writeXmlContentLongWithAttributes.
1152     * 
1153     * @param xmlContentLongWithAttributes a
1154     * xmlContentLongWithAttributes object.
1155     * @param serializer a serializer object.
1156     * @param tagName a tagName object.
1157     * @throws java.io.IOException java.io.IOException if any.
1158     */
1159    private void writeXmlContentLongWithAttributes( XmlContentLongWithAttributes xmlContentLongWithAttributes, String tagName, XmlSerializer serializer )
1160        throws java.io.IOException
1161    {
1162        serializer.startTag( NAMESPACE, tagName );
1163        if ( xmlContentLongWithAttributes.getAttr() != null )
1164        {
1165            serializer.attribute( NAMESPACE, "attr", xmlContentLongWithAttributes.getAttr() );
1166        }
1167        if ( xmlContentLongWithAttributes.getAttr2() != 0 )
1168        {
1169            serializer.attribute( NAMESPACE, "attr2", String.valueOf( xmlContentLongWithAttributes.getAttr2() ) );
1170        }
1171        serializer.text( String.valueOf( xmlContentLongWithAttributes.getContent() ) );
1172        serializer.endTag( NAMESPACE, tagName );
1173    } //-- void writeXmlContentLongWithAttributes( XmlContentLongWithAttributes, String, XmlSerializer )
1174
1175    /**
1176     * Method writeXmlFeatures.
1177     * 
1178     * @param xmlFeatures a xmlFeatures object.
1179     * @param serializer a serializer object.
1180     * @param tagName a tagName object.
1181     * @throws java.io.IOException java.io.IOException if any.
1182     */
1183    private void writeXmlFeatures( XmlFeatures xmlFeatures, String tagName, XmlSerializer serializer )
1184        throws java.io.IOException
1185    {
1186        serializer.startTag( NAMESPACE, tagName );
1187        if ( xmlFeatures.getFieldNameAttribute() != null )
1188        {
1189            serializer.attribute( NAMESPACE, "tag-name.attribute", xmlFeatures.getFieldNameAttribute() );
1190        }
1191        if ( xmlFeatures.getAttributes() != null )
1192        {
1193            writeXmlAttributes( (XmlAttributes) xmlFeatures.getAttributes(), "attributes", serializer );
1194        }
1195        if ( xmlFeatures.getAttributesDefault() != null )
1196        {
1197            writeXmlAttributes( (XmlAttributes) xmlFeatures.getAttributesDefault(), "attributesDefault", serializer );
1198        }
1199        if ( xmlFeatures.getContent() != null )
1200        {
1201            writeXmlContent( (XmlContent) xmlFeatures.getContent(), "content", serializer );
1202        }
1203        if ( xmlFeatures.getFieldTrim() != null )
1204        {
1205            serializer.startTag( NAMESPACE, "fieldTrim" ).text( xmlFeatures.getFieldTrim() ).endTag( NAMESPACE, "fieldTrim" );
1206        }
1207        if ( xmlFeatures.getFieldNoTrim() != null )
1208        {
1209            serializer.startTag( NAMESPACE, "fieldNoTrim" ).text( xmlFeatures.getFieldNoTrim() ).endTag( NAMESPACE, "fieldNoTrim" );
1210        }
1211        if ( xmlFeatures.getDom() != null )
1212        {
1213            ((Xpp3Dom) xmlFeatures.getDom()).writeToSerializer( NAMESPACE, serializer );
1214        }
1215        if ( xmlFeatures.getDomNoTrim() != null )
1216        {
1217            ((Xpp3Dom) xmlFeatures.getDomNoTrim()).writeToSerializer( NAMESPACE, serializer );
1218        }
1219        if ( xmlFeatures.getFieldName() != null )
1220        {
1221            serializer.startTag( NAMESPACE, "tag-name" ).text( xmlFeatures.getFieldName() ).endTag( NAMESPACE, "tag-name" );
1222        }
1223        if ( xmlFeatures.getDateXmlFormat() != null )
1224        {
1225            serializer.startTag( NAMESPACE, "dateXmlFormat" ).text( new java.text.SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss", java.util.Locale.US ).format( xmlFeatures.getDateXmlFormat() ) ).endTag( NAMESPACE, "dateXmlFormat" );
1226        }
1227        if ( xmlFeatures.getDateLong() != null )
1228        {
1229            serializer.startTag( NAMESPACE, "dateLong" ).text( String.valueOf( xmlFeatures.getDateLong().getTime() ) ).endTag( NAMESPACE, "dateLong" );
1230        }
1231        if ( ( xmlFeatures.getXmlItemsStyleFlats() != null ) && ( xmlFeatures.getXmlItemsStyleFlats().size() > 0 ) )
1232        {
1233            for ( Iterator iter = xmlFeatures.getXmlItemsStyleFlats().iterator(); iter.hasNext(); )
1234            {
1235                Reference o = (Reference) iter.next();
1236                writeReference( o, "xmlItemsStyleFlat", serializer );
1237            }
1238        }
1239        if ( ( xmlFeatures.getXmlAssociationTagNames() != null ) && ( xmlFeatures.getXmlAssociationTagNames().size() > 0 ) )
1240        {
1241            serializer.startTag( NAMESPACE, "xmlAssociationTagNames" );
1242            for ( Iterator iter = xmlFeatures.getXmlAssociationTagNames().iterator(); iter.hasNext(); )
1243            {
1244                Reference o = (Reference) iter.next();
1245                writeReference( o, "association.tag-name", serializer );
1246            }
1247            serializer.endTag( NAMESPACE, "xmlAssociationTagNames" );
1248        }
1249        if ( ( xmlFeatures.getXmlTagNameAssociation() != null ) && ( xmlFeatures.getXmlTagNameAssociation().size() > 0 ) )
1250        {
1251            serializer.startTag( NAMESPACE, "field.tag-names" );
1252            for ( Iterator iter = xmlFeatures.getXmlTagNameAssociation().iterator(); iter.hasNext(); )
1253            {
1254                Reference o = (Reference) iter.next();
1255                writeReference( o, "field.tag-name", serializer );
1256            }
1257            serializer.endTag( NAMESPACE, "field.tag-names" );
1258        }
1259        if ( ( xmlFeatures.getXmlTagNameAssociationTagNames() != null ) && ( xmlFeatures.getXmlTagNameAssociationTagNames().size() > 0 ) )
1260        {
1261            serializer.startTag( NAMESPACE, "field.tag-name" );
1262            for ( Iterator iter = xmlFeatures.getXmlTagNameAssociationTagNames().iterator(); iter.hasNext(); )
1263            {
1264                Reference o = (Reference) iter.next();
1265                writeReference( o, "association.tag-name", serializer );
1266            }
1267            serializer.endTag( NAMESPACE, "field.tag-name" );
1268        }
1269        if ( ( xmlFeatures.getXmlFlatAssociationTagNames() != null ) && ( xmlFeatures.getXmlFlatAssociationTagNames().size() > 0 ) )
1270        {
1271            for ( Iterator iter = xmlFeatures.getXmlFlatAssociationTagNames().iterator(); iter.hasNext(); )
1272            {
1273                Reference o = (Reference) iter.next();
1274                writeReference( o, "association.tag-name", serializer );
1275            }
1276        }
1277        if ( ( xmlFeatures.getExplodeProperties() != null ) && ( xmlFeatures.getExplodeProperties().size() > 0 ) )
1278        {
1279            serializer.startTag( NAMESPACE, "explodeProperties" );
1280            for ( Iterator iter = xmlFeatures.getExplodeProperties().keySet().iterator(); iter.hasNext(); )
1281            {
1282                String key = (String) iter.next();
1283                String value = (String) xmlFeatures.getExplodeProperties().get( key );
1284                serializer.startTag( NAMESPACE, "explodeProperty" );
1285                serializer.startTag( NAMESPACE, "key" ).text( key ).endTag( NAMESPACE, "key" );
1286                serializer.startTag( NAMESPACE, "value" ).text( value ).endTag( NAMESPACE, "value" );
1287                serializer.endTag( NAMESPACE, "explodeProperty" );
1288            }
1289            serializer.endTag( NAMESPACE, "explodeProperties" );
1290        }
1291        if ( ( xmlFeatures.getInlineProperties() != null ) && ( xmlFeatures.getInlineProperties().size() > 0 ) )
1292        {
1293            serializer.startTag( NAMESPACE, "inlineProperties" );
1294            for ( Iterator iter = xmlFeatures.getInlineProperties().keySet().iterator(); iter.hasNext(); )
1295            {
1296                String key = (String) iter.next();
1297                String value = (String) xmlFeatures.getInlineProperties().get( key );
1298                serializer.startTag( NAMESPACE, key ).text( value ).endTag( NAMESPACE, key );
1299            }
1300            serializer.endTag( NAMESPACE, "inlineProperties" );
1301        }
1302        if ( xmlFeatures.getXmlTransientFields() != null )
1303        {
1304            writeXmlTransientFields( (XmlTransientFields) xmlFeatures.getXmlTransientFields(), "xmlTransientFields", serializer );
1305        }
1306        if ( xmlFeatures.getXmlFieldsOrder() != null )
1307        {
1308            writeXmlFieldsOrder( (XmlFieldsOrder) xmlFeatures.getXmlFieldsOrder(), "xmlFieldsOrder", serializer );
1309        }
1310        if ( xmlFeatures.getXsdFeatures() != null )
1311        {
1312            writeXsdFeatures( (XsdFeatures) xmlFeatures.getXsdFeatures(), "xsdFeatures", serializer );
1313        }
1314        serializer.endTag( NAMESPACE, tagName );
1315    } //-- void writeXmlFeatures( XmlFeatures, String, XmlSerializer )
1316
1317    /**
1318     * Method writeXmlFieldsOrder.
1319     * 
1320     * @param xmlFieldsOrder a xmlFieldsOrder object.
1321     * @param serializer a serializer object.
1322     * @param tagName a tagName object.
1323     * @throws java.io.IOException java.io.IOException if any.
1324     */
1325    private void writeXmlFieldsOrder( XmlFieldsOrder xmlFieldsOrder, String tagName, XmlSerializer serializer )
1326        throws java.io.IOException
1327    {
1328        serializer.startTag( NAMESPACE, tagName );
1329        if ( xmlFieldsOrder.getField1() != null )
1330        {
1331            serializer.startTag( NAMESPACE, "field1" ).text( xmlFieldsOrder.getField1() ).endTag( NAMESPACE, "field1" );
1332        }
1333        if ( xmlFieldsOrder.getField() != null )
1334        {
1335            serializer.startTag( NAMESPACE, "field-2" ).text( xmlFieldsOrder.getField() ).endTag( NAMESPACE, "field-2" );
1336        }
1337        if ( xmlFieldsOrder.getField3() != null )
1338        {
1339            serializer.startTag( NAMESPACE, "field3" ).text( xmlFieldsOrder.getField3() ).endTag( NAMESPACE, "field3" );
1340        }
1341        if ( xmlFieldsOrder.getField4() != null )
1342        {
1343            serializer.startTag( NAMESPACE, "field4" ).text( xmlFieldsOrder.getField4() ).endTag( NAMESPACE, "field4" );
1344        }
1345        if ( xmlFieldsOrder.getField5() != null )
1346        {
1347            serializer.startTag( NAMESPACE, "field5" ).text( xmlFieldsOrder.getField5() ).endTag( NAMESPACE, "field5" );
1348        }
1349        if ( xmlFieldsOrder.getField6() != null )
1350        {
1351            serializer.startTag( NAMESPACE, "field6" ).text( xmlFieldsOrder.getField6() ).endTag( NAMESPACE, "field6" );
1352        }
1353        if ( xmlFieldsOrder.getField7() != null )
1354        {
1355            serializer.startTag( NAMESPACE, "field7" ).text( xmlFieldsOrder.getField7() ).endTag( NAMESPACE, "field7" );
1356        }
1357        serializer.endTag( NAMESPACE, tagName );
1358    } //-- void writeXmlFieldsOrder( XmlFieldsOrder, String, XmlSerializer )
1359
1360    /**
1361     * Method writeXmlFieldsOrderParent.
1362     * 
1363     * @param xmlFieldsOrderParent a xmlFieldsOrderParent object.
1364     * @param serializer a serializer object.
1365     * @param tagName a tagName object.
1366     * @throws java.io.IOException java.io.IOException if any.
1367     */
1368    private void writeXmlFieldsOrderParent( XmlFieldsOrderParent xmlFieldsOrderParent, String tagName, XmlSerializer serializer )
1369        throws java.io.IOException
1370    {
1371        serializer.startTag( NAMESPACE, tagName );
1372        if ( xmlFieldsOrderParent.getField() != null )
1373        {
1374            serializer.startTag( NAMESPACE, "field-2" ).text( xmlFieldsOrderParent.getField() ).endTag( NAMESPACE, "field-2" );
1375        }
1376        if ( xmlFieldsOrderParent.getField4() != null )
1377        {
1378            serializer.startTag( NAMESPACE, "field4" ).text( xmlFieldsOrderParent.getField4() ).endTag( NAMESPACE, "field4" );
1379        }
1380        if ( xmlFieldsOrderParent.getField5() != null )
1381        {
1382            serializer.startTag( NAMESPACE, "field5" ).text( xmlFieldsOrderParent.getField5() ).endTag( NAMESPACE, "field5" );
1383        }
1384        if ( xmlFieldsOrderParent.getField7() != null )
1385        {
1386            serializer.startTag( NAMESPACE, "field7" ).text( xmlFieldsOrderParent.getField7() ).endTag( NAMESPACE, "field7" );
1387        }
1388        serializer.endTag( NAMESPACE, tagName );
1389    } //-- void writeXmlFieldsOrderParent( XmlFieldsOrderParent, String, XmlSerializer )
1390
1391    /**
1392     * Method writeXmlFieldsOrderParent2.
1393     * 
1394     * @param xmlFieldsOrderParent2 a xmlFieldsOrderParent2 object.
1395     * @param serializer a serializer object.
1396     * @param tagName a tagName object.
1397     * @throws java.io.IOException java.io.IOException if any.
1398     */
1399    private void writeXmlFieldsOrderParent2( XmlFieldsOrderParent2 xmlFieldsOrderParent2, String tagName, XmlSerializer serializer )
1400        throws java.io.IOException
1401    {
1402        serializer.startTag( NAMESPACE, tagName );
1403        if ( xmlFieldsOrderParent2.getField() != null )
1404        {
1405            serializer.startTag( NAMESPACE, "field-2" ).text( xmlFieldsOrderParent2.getField() ).endTag( NAMESPACE, "field-2" );
1406        }
1407        serializer.endTag( NAMESPACE, tagName );
1408    } //-- void writeXmlFieldsOrderParent2( XmlFieldsOrderParent2, String, XmlSerializer )
1409
1410    /**
1411     * Method writeXmlTransientFields.
1412     * 
1413     * @param xmlTransientFields a xmlTransientFields object.
1414     * @param serializer a serializer object.
1415     * @param tagName a tagName object.
1416     * @throws java.io.IOException java.io.IOException if any.
1417     */
1418    private void writeXmlTransientFields( XmlTransientFields xmlTransientFields, String tagName, XmlSerializer serializer )
1419        throws java.io.IOException
1420    {
1421        serializer.startTag( NAMESPACE, tagName );
1422        if ( xmlTransientFields.getPersistentField() != null )
1423        {
1424            serializer.startTag( NAMESPACE, "persistentField" ).text( xmlTransientFields.getPersistentField() ).endTag( NAMESPACE, "persistentField" );
1425        }
1426        serializer.endTag( NAMESPACE, tagName );
1427    } //-- void writeXmlTransientFields( XmlTransientFields, String, XmlSerializer )
1428
1429    /**
1430     * Method writeXsdFeatures.
1431     * 
1432     * @param xsdFeatures a xsdFeatures object.
1433     * @param serializer a serializer object.
1434     * @param tagName a tagName object.
1435     * @throws java.io.IOException java.io.IOException if any.
1436     */
1437    private void writeXsdFeatures( XsdFeatures xsdFeatures, String tagName, XmlSerializer serializer )
1438        throws java.io.IOException
1439    {
1440        serializer.startTag( NAMESPACE, tagName );
1441        if ( xsdFeatures.getAttribute() != null )
1442        {
1443            serializer.attribute( NAMESPACE, "attribute", xsdFeatures.getAttribute() );
1444        }
1445        serializer.endTag( NAMESPACE, tagName );
1446    } //-- void writeXsdFeatures( XsdFeatures, String, XmlSerializer )
1447
1448}