Coverage Report - com.javaforge.bobber.archetype.model.io.xpp3.BobberArchetypeXpp3Writer
 
Classes in this File Line Coverage Branch Coverage Complexity
BobberArchetypeXpp3Writer
0%
0/58
0%
0/40
5.25
 
 1  
 /*
 2  
  * $Id$
 3  
  */
 4  
 
 5  
 package com.javaforge.bobber.archetype.model.io.xpp3;
 6  
 
 7  
   //---------------------------------/
 8  
  //- Imported classes and packages -/
 9  
 //---------------------------------/
 10  
 
 11  
 import com.javaforge.bobber.archetype.model.BobberArchetype;
 12  
 import com.javaforge.bobber.archetype.model.Template;
 13  
 import com.javaforge.bobber.archetype.model.Variable;
 14  
 import java.io.Writer;
 15  
 import java.text.DateFormat;
 16  
 import java.util.Iterator;
 17  
 import java.util.Locale;
 18  
 import org.codehaus.plexus.util.xml.pull.MXSerializer;
 19  
 import org.codehaus.plexus.util.xml.pull.XmlSerializer;
 20  
 
 21  
 /**
 22  
  * Class BobberArchetypeXpp3Writer.
 23  
  * 
 24  
  * @version $Revision$ $Date$
 25  
  */
 26  0
 public class BobberArchetypeXpp3Writer {
 27  
 
 28  
 
 29  
       //--------------------------/
 30  
      //- Class/Member Variables -/
 31  
     //--------------------------/
 32  
 
 33  
     /**
 34  
      * Field NAMESPACE.
 35  
      */
 36  
     private String NAMESPACE;
 37  
 
 38  
 
 39  
       //-----------/
 40  
      //- Methods -/
 41  
     //-----------/
 42  
 
 43  
     /**
 44  
      * Method write.
 45  
      * 
 46  
      * @param writer
 47  
      * @param bobberArchetype
 48  
      * @throws java.io.IOException
 49  
      */
 50  
     public void write(Writer writer, BobberArchetype bobberArchetype)
 51  
         throws java.io.IOException
 52  
     {
 53  0
         XmlSerializer serializer = new MXSerializer();
 54  0
         serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
 55  0
         serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
 56  0
         serializer.setOutput( writer );
 57  0
         serializer.startDocument( bobberArchetype.getModelEncoding(), null );
 58  0
         writeBobberArchetype( bobberArchetype, "archetype", serializer );
 59  0
         serializer.endDocument();
 60  0
     } //-- void write(Writer, BobberArchetype) 
 61  
 
 62  
     /**
 63  
      * Method writeBobberArchetype.
 64  
      * 
 65  
      * @param bobberArchetype
 66  
      * @param serializer
 67  
      * @param tagName
 68  
      * @throws java.io.IOException
 69  
      */
 70  
     private void writeBobberArchetype(BobberArchetype bobberArchetype, String tagName, XmlSerializer serializer)
 71  
         throws java.io.IOException
 72  
     {
 73  0
         if ( bobberArchetype != null )
 74  
         {
 75  0
             serializer.startTag( NAMESPACE, tagName );
 76  0
             if ( bobberArchetype.getId() != null )
 77  
             {
 78  0
                 serializer.startTag( NAMESPACE, "id" ).text( bobberArchetype.getId() ).endTag( NAMESPACE, "id" );
 79  
             }
 80  0
             if ( bobberArchetype.isAllowPartial() != false )
 81  
             {
 82  0
                 serializer.startTag( NAMESPACE, "allowPartial" ).text( String.valueOf( bobberArchetype.isAllowPartial() ) ).endTag( NAMESPACE, "allowPartial" );
 83  
             }
 84  0
             if ( bobberArchetype.getVariables() != null && bobberArchetype.getVariables().size() > 0 )
 85  
             {
 86  0
                 serializer.startTag( NAMESPACE, "variables" );
 87  0
                 for ( Iterator iter = bobberArchetype.getVariables().iterator(); iter.hasNext(); )
 88  
                 {
 89  0
                     Variable o = (Variable) iter.next();
 90  0
                     writeVariable( o, "variable", serializer );
 91  0
                 }
 92  0
                 serializer.endTag( NAMESPACE, "variables" );
 93  
             }
 94  0
             if ( bobberArchetype.getTemplates() != null && bobberArchetype.getTemplates().size() > 0 )
 95  
             {
 96  0
                 serializer.startTag( NAMESPACE, "templates" );
 97  0
                 for ( Iterator iter = bobberArchetype.getTemplates().iterator(); iter.hasNext(); )
 98  
                 {
 99  0
                     Template o = (Template) iter.next();
 100  0
                     writeTemplate( o, "template", serializer );
 101  0
                 }
 102  0
                 serializer.endTag( NAMESPACE, "templates" );
 103  
             }
 104  0
             serializer.endTag( NAMESPACE, tagName );
 105  
         }
 106  0
     } //-- void writeBobberArchetype(BobberArchetype, String, XmlSerializer) 
 107  
 
 108  
     /**
 109  
      * Method writeTemplate.
 110  
      * 
 111  
      * @param template
 112  
      * @param serializer
 113  
      * @param tagName
 114  
      * @throws java.io.IOException
 115  
      */
 116  
     private void writeTemplate(Template template, String tagName, XmlSerializer serializer)
 117  
         throws java.io.IOException
 118  
     {
 119  0
         if ( template != null )
 120  
         {
 121  0
             serializer.startTag( NAMESPACE, tagName );
 122  0
             if ( template.getFile() != null )
 123  
             {
 124  0
                 serializer.startTag( NAMESPACE, "file" ).text( template.getFile() ).endTag( NAMESPACE, "file" );
 125  
             }
 126  0
             if ( template.getOutput() != null )
 127  
             {
 128  0
                 serializer.startTag( NAMESPACE, "output" ).text( template.getOutput() ).endTag( NAMESPACE, "output" );
 129  
             }
 130  0
             if ( template.getDependsOnVar() != null )
 131  
             {
 132  0
                 serializer.startTag( NAMESPACE, "dependsOnVar" ).text( template.getDependsOnVar() ).endTag( NAMESPACE, "dependsOnVar" );
 133  
             }
 134  0
             serializer.endTag( NAMESPACE, tagName );
 135  
         }
 136  0
     } //-- void writeTemplate(Template, String, XmlSerializer) 
 137  
 
 138  
     /**
 139  
      * Method writeVariable.
 140  
      * 
 141  
      * @param variable
 142  
      * @param serializer
 143  
      * @param tagName
 144  
      * @throws java.io.IOException
 145  
      */
 146  
     private void writeVariable(Variable variable, String tagName, XmlSerializer serializer)
 147  
         throws java.io.IOException
 148  
     {
 149  0
         if ( variable != null )
 150  
         {
 151  0
             serializer.startTag( NAMESPACE, tagName );
 152  0
             if ( variable.getName() != null )
 153  
             {
 154  0
                 serializer.startTag( NAMESPACE, "name" ).text( variable.getName() ).endTag( NAMESPACE, "name" );
 155  
             }
 156  0
             if ( variable.getDescription() != null )
 157  
             {
 158  0
                 serializer.startTag( NAMESPACE, "description" ).text( variable.getDescription() ).endTag( NAMESPACE, "description" );
 159  
             }
 160  0
             if ( variable.getDefvalue() != null )
 161  
             {
 162  0
                 serializer.startTag( NAMESPACE, "defvalue" ).text( variable.getDefvalue() ).endTag( NAMESPACE, "defvalue" );
 163  
             }
 164  0
             if ( variable.getVariables() != null && variable.getVariables().size() > 0 )
 165  
             {
 166  0
                 serializer.startTag( NAMESPACE, "variables" );
 167  0
                 for ( Iterator iter = variable.getVariables().iterator(); iter.hasNext(); )
 168  
                 {
 169  0
                     Variable o = (Variable) iter.next();
 170  0
                     writeVariable( o, "variable", serializer );
 171  0
                 }
 172  0
                 serializer.endTag( NAMESPACE, "variables" );
 173  
             }
 174  0
             serializer.endTag( NAMESPACE, tagName );
 175  
         }
 176  0
     } //-- void writeVariable(Variable, String, XmlSerializer) 
 177  
 
 178  
 
 179  
 }