Coverage Report - org.apache.maven.artifact.repository.metadata.io.xpp3.MetadataXpp3Writer
 
Classes in this File Line Coverage Branch Coverage Complexity
MetadataXpp3Writer
0%
0/67
0%
0/48
5.4
 
 1  
 /*
 2  
  * $Id$
 3  
  */
 4  
 
 5  
 package org.apache.maven.artifact.repository.metadata.io.xpp3;
 6  
 
 7  
   //---------------------------------/
 8  
  //- Imported classes and packages -/
 9  
 //---------------------------------/
 10  
 
 11  
 import java.io.Writer;
 12  
 import java.text.DateFormat;
 13  
 import java.util.Iterator;
 14  
 import java.util.Locale;
 15  
 import org.apache.maven.artifact.repository.metadata.Metadata;
 16  
 import org.apache.maven.artifact.repository.metadata.Plugin;
 17  
 import org.apache.maven.artifact.repository.metadata.Snapshot;
 18  
 import org.apache.maven.artifact.repository.metadata.Versioning;
 19  
 import org.codehaus.plexus.util.xml.pull.MXSerializer;
 20  
 import org.codehaus.plexus.util.xml.pull.XmlSerializer;
 21  
 
 22  
 /**
 23  
  * Class MetadataXpp3Writer.
 24  
  * 
 25  
  * @version $Revision$ $Date$
 26  
  */
 27  0
 public class MetadataXpp3Writer {
 28  
 
 29  
 
 30  
       //--------------------------/
 31  
      //- Class/Member Variables -/
 32  
     //--------------------------/
 33  
 
 34  
     /**
 35  
      * Field NAMESPACE.
 36  
      */
 37  
     private String NAMESPACE;
 38  
 
 39  
 
 40  
       //-----------/
 41  
      //- Methods -/
 42  
     //-----------/
 43  
 
 44  
     /**
 45  
      * Method write.
 46  
      * 
 47  
      * @param writer
 48  
      * @param metadata
 49  
      * @throws java.io.IOException
 50  
      */
 51  
     public void write( Writer writer, Metadata metadata )
 52  
         throws java.io.IOException
 53  
     {
 54  0
         XmlSerializer serializer = new MXSerializer();
 55  0
         serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
 56  0
         serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
 57  0
         serializer.setOutput( writer );
 58  0
         serializer.startDocument( metadata.getModelEncoding(), null );
 59  0
         writeMetadata( metadata, "metadata", serializer );
 60  0
         serializer.endDocument();
 61  0
     } //-- void write( Writer, Metadata ) 
 62  
 
 63  
     /**
 64  
      * Method writeMetadata.
 65  
      * 
 66  
      * @param metadata
 67  
      * @param serializer
 68  
      * @param tagName
 69  
      * @throws java.io.IOException
 70  
      */
 71  
     private void writeMetadata( Metadata metadata, String tagName, XmlSerializer serializer )
 72  
         throws java.io.IOException
 73  
     {
 74  0
         if ( metadata != null )
 75  
         {
 76  0
             serializer.startTag( NAMESPACE, tagName );
 77  0
             if ( metadata.getGroupId() != null )
 78  
             {
 79  0
                 serializer.startTag( NAMESPACE, "groupId" ).text( metadata.getGroupId() ).endTag( NAMESPACE, "groupId" );
 80  
             }
 81  0
             if ( metadata.getArtifactId() != null )
 82  
             {
 83  0
                 serializer.startTag( NAMESPACE, "artifactId" ).text( metadata.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
 84  
             }
 85  0
             if ( metadata.getVersion() != null )
 86  
             {
 87  0
                 serializer.startTag( NAMESPACE, "version" ).text( metadata.getVersion() ).endTag( NAMESPACE, "version" );
 88  
             }
 89  0
             if ( metadata.getVersioning() != null )
 90  
             {
 91  0
                 writeVersioning( (Versioning) metadata.getVersioning(), "versioning", serializer );
 92  
             }
 93  0
             if ( metadata.getPlugins() != null && metadata.getPlugins().size() > 0 )
 94  
             {
 95  0
                 serializer.startTag( NAMESPACE, "plugins" );
 96  0
                 for ( Iterator iter = metadata.getPlugins().iterator(); iter.hasNext(); )
 97  
                 {
 98  0
                     Plugin o = (Plugin) iter.next();
 99  0
                     writePlugin( o, "plugin", serializer );
 100  0
                 }
 101  0
                 serializer.endTag( NAMESPACE, "plugins" );
 102  
             }
 103  0
             serializer.endTag( NAMESPACE, tagName );
 104  
         }
 105  0
     } //-- void writeMetadata( Metadata, String, XmlSerializer ) 
 106  
 
 107  
     /**
 108  
      * Method writePlugin.
 109  
      * 
 110  
      * @param plugin
 111  
      * @param serializer
 112  
      * @param tagName
 113  
      * @throws java.io.IOException
 114  
      */
 115  
     private void writePlugin( Plugin plugin, String tagName, XmlSerializer serializer )
 116  
         throws java.io.IOException
 117  
     {
 118  0
         if ( plugin != null )
 119  
         {
 120  0
             serializer.startTag( NAMESPACE, tagName );
 121  0
             if ( plugin.getName() != null )
 122  
             {
 123  0
                 serializer.startTag( NAMESPACE, "name" ).text( plugin.getName() ).endTag( NAMESPACE, "name" );
 124  
             }
 125  0
             if ( plugin.getPrefix() != null )
 126  
             {
 127  0
                 serializer.startTag( NAMESPACE, "prefix" ).text( plugin.getPrefix() ).endTag( NAMESPACE, "prefix" );
 128  
             }
 129  0
             if ( plugin.getArtifactId() != null )
 130  
             {
 131  0
                 serializer.startTag( NAMESPACE, "artifactId" ).text( plugin.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
 132  
             }
 133  0
             serializer.endTag( NAMESPACE, tagName );
 134  
         }
 135  0
     } //-- void writePlugin( Plugin, String, XmlSerializer ) 
 136  
 
 137  
     /**
 138  
      * Method writeSnapshot.
 139  
      * 
 140  
      * @param snapshot
 141  
      * @param serializer
 142  
      * @param tagName
 143  
      * @throws java.io.IOException
 144  
      */
 145  
     private void writeSnapshot( Snapshot snapshot, String tagName, XmlSerializer serializer )
 146  
         throws java.io.IOException
 147  
     {
 148  0
         if ( snapshot != null )
 149  
         {
 150  0
             serializer.startTag( NAMESPACE, tagName );
 151  0
             if ( snapshot.getTimestamp() != null )
 152  
             {
 153  0
                 serializer.startTag( NAMESPACE, "timestamp" ).text( snapshot.getTimestamp() ).endTag( NAMESPACE, "timestamp" );
 154  
             }
 155  0
             if ( snapshot.getBuildNumber() != 0 )
 156  
             {
 157  0
                 serializer.startTag( NAMESPACE, "buildNumber" ).text( String.valueOf( snapshot.getBuildNumber() ) ).endTag( NAMESPACE, "buildNumber" );
 158  
             }
 159  0
             if ( snapshot.isLocalCopy() != false )
 160  
             {
 161  0
                 serializer.startTag( NAMESPACE, "localCopy" ).text( String.valueOf( snapshot.isLocalCopy() ) ).endTag( NAMESPACE, "localCopy" );
 162  
             }
 163  0
             serializer.endTag( NAMESPACE, tagName );
 164  
         }
 165  0
     } //-- void writeSnapshot( Snapshot, String, XmlSerializer ) 
 166  
 
 167  
     /**
 168  
      * Method writeVersioning.
 169  
      * 
 170  
      * @param versioning
 171  
      * @param serializer
 172  
      * @param tagName
 173  
      * @throws java.io.IOException
 174  
      */
 175  
     private void writeVersioning( Versioning versioning, String tagName, XmlSerializer serializer )
 176  
         throws java.io.IOException
 177  
     {
 178  0
         if ( versioning != null )
 179  
         {
 180  0
             serializer.startTag( NAMESPACE, tagName );
 181  0
             if ( versioning.getLatest() != null )
 182  
             {
 183  0
                 serializer.startTag( NAMESPACE, "latest" ).text( versioning.getLatest() ).endTag( NAMESPACE, "latest" );
 184  
             }
 185  0
             if ( versioning.getRelease() != null )
 186  
             {
 187  0
                 serializer.startTag( NAMESPACE, "release" ).text( versioning.getRelease() ).endTag( NAMESPACE, "release" );
 188  
             }
 189  0
             if ( versioning.getSnapshot() != null )
 190  
             {
 191  0
                 writeSnapshot( (Snapshot) versioning.getSnapshot(), "snapshot", serializer );
 192  
             }
 193  0
             if ( versioning.getVersions() != null && versioning.getVersions().size() > 0 )
 194  
             {
 195  0
                 serializer.startTag( NAMESPACE, "versions" );
 196  0
                 for ( Iterator iter = versioning.getVersions().iterator(); iter.hasNext(); )
 197  
                 {
 198  0
                     String version = (String) iter.next();
 199  0
                     serializer.startTag( NAMESPACE, "version" ).text( version ).endTag( NAMESPACE, "version" );
 200  0
                 }
 201  0
                 serializer.endTag( NAMESPACE, "versions" );
 202  
             }
 203  0
             if ( versioning.getLastUpdated() != null )
 204  
             {
 205  0
                 serializer.startTag( NAMESPACE, "lastUpdated" ).text( versioning.getLastUpdated() ).endTag( NAMESPACE, "lastUpdated" );
 206  
             }
 207  0
             serializer.endTag( NAMESPACE, tagName );
 208  
         }
 209  0
     } //-- void writeVersioning( Versioning, String, XmlSerializer ) 
 210  
 
 211  
 
 212  
 }