View Javadoc

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