View Javadoc
1   // =================== DO NOT EDIT THIS FILE ====================
2   // Generated by Modello 1.8.1,
3   // any modifications will be overwritten.
4   // ==============================================================
5   
6   package org.apache.maven.artifact.repository.metadata.io.xpp3;
7   
8     //---------------------------------/
9    //- Imported classes and packages -/
10  //---------------------------------/
11  
12  import java.io.OutputStream;
13  import java.io.Writer;
14  import java.util.Iterator;
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.SnapshotVersion;
19  import org.apache.maven.artifact.repository.metadata.Versioning;
20  import org.codehaus.plexus.util.xml.pull.MXSerializer;
21  import org.codehaus.plexus.util.xml.pull.XmlSerializer;
22  
23  /**
24   * Class MetadataXpp3Writer.
25   * 
26   * @version $Revision$ $Date$
27   */
28  @SuppressWarnings( "all" )
29  public class MetadataXpp3Writer
30  {
31  
32        //--------------------------/
33       //- Class/Member Variables -/
34      //--------------------------/
35  
36      /**
37       * Field NAMESPACE.
38       */
39      private static final String NAMESPACE = null;
40  
41  
42        //-----------/
43       //- Methods -/
44      //-----------/
45  
46      /**
47       * Method write.
48       * 
49       * @param writer
50       * @param metadata
51       * @throws java.io.IOException
52       */
53      public void write( Writer writer, Metadata metadata )
54          throws java.io.IOException
55      {
56          XmlSerializer serializer = new MXSerializer();
57          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
58          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
59          serializer.setOutput( writer );
60          serializer.startDocument( metadata.getModelEncoding(), null );
61          writeMetadata( metadata, "metadata", serializer );
62          serializer.endDocument();
63      } //-- void write( Writer, Metadata )
64  
65      /**
66       * Method write.
67       * 
68       * @param stream
69       * @param metadata
70       * @throws java.io.IOException
71       */
72      public void write( OutputStream stream, Metadata metadata )
73          throws java.io.IOException
74      {
75          XmlSerializer serializer = new MXSerializer();
76          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
77          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
78          serializer.setOutput( stream, metadata.getModelEncoding() );
79          serializer.startDocument( metadata.getModelEncoding(), null );
80          writeMetadata( metadata, "metadata", serializer );
81          serializer.endDocument();
82      } //-- void write( OutputStream, Metadata )
83  
84      /**
85       * Method writeMetadata.
86       * 
87       * @param metadata
88       * @param serializer
89       * @param tagName
90       * @throws java.io.IOException
91       */
92      private void writeMetadata( Metadata metadata, String tagName, XmlSerializer serializer )
93          throws java.io.IOException
94      {
95          serializer.startTag( NAMESPACE, tagName );
96          if ( metadata.getModelVersion() != null )
97          {
98              serializer.attribute( NAMESPACE, "modelVersion", metadata.getModelVersion() );
99          }
100         if ( metadata.getGroupId() != null )
101         {
102             serializer.startTag( NAMESPACE, "groupId" ).text( metadata.getGroupId() ).endTag( NAMESPACE, "groupId" );
103         }
104         if ( metadata.getArtifactId() != null )
105         {
106             serializer.startTag( NAMESPACE, "artifactId" ).text( metadata.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
107         }
108         if ( metadata.getVersion() != null )
109         {
110             serializer.startTag( NAMESPACE, "version" ).text( metadata.getVersion() ).endTag( NAMESPACE, "version" );
111         }
112         if ( metadata.getVersioning() != null )
113         {
114             writeVersioning( (Versioning) metadata.getVersioning(), "versioning", serializer );
115         }
116         if ( ( metadata.getPlugins() != null ) && ( metadata.getPlugins().size() > 0 ) )
117         {
118             serializer.startTag( NAMESPACE, "plugins" );
119             for ( Iterator iter = metadata.getPlugins().iterator(); iter.hasNext(); )
120             {
121                 Plugin o = (Plugin) iter.next();
122                 writePlugin( o, "plugin", serializer );
123             }
124             serializer.endTag( NAMESPACE, "plugins" );
125         }
126         serializer.endTag( NAMESPACE, tagName );
127     } //-- void writeMetadata( Metadata, String, XmlSerializer )
128 
129     /**
130      * Method writePlugin.
131      * 
132      * @param plugin
133      * @param serializer
134      * @param tagName
135      * @throws java.io.IOException
136      */
137     private void writePlugin( Plugin plugin, String tagName, XmlSerializer serializer )
138         throws java.io.IOException
139     {
140         serializer.startTag( NAMESPACE, tagName );
141         if ( plugin.getName() != null )
142         {
143             serializer.startTag( NAMESPACE, "name" ).text( plugin.getName() ).endTag( NAMESPACE, "name" );
144         }
145         if ( plugin.getPrefix() != null )
146         {
147             serializer.startTag( NAMESPACE, "prefix" ).text( plugin.getPrefix() ).endTag( NAMESPACE, "prefix" );
148         }
149         if ( plugin.getArtifactId() != null )
150         {
151             serializer.startTag( NAMESPACE, "artifactId" ).text( plugin.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
152         }
153         serializer.endTag( NAMESPACE, tagName );
154     } //-- void writePlugin( Plugin, String, XmlSerializer )
155 
156     /**
157      * Method writeSnapshot.
158      * 
159      * @param snapshot
160      * @param serializer
161      * @param tagName
162      * @throws java.io.IOException
163      */
164     private void writeSnapshot( Snapshot snapshot, String tagName, XmlSerializer serializer )
165         throws java.io.IOException
166     {
167         serializer.startTag( NAMESPACE, tagName );
168         if ( snapshot.getTimestamp() != null )
169         {
170             serializer.startTag( NAMESPACE, "timestamp" ).text( snapshot.getTimestamp() ).endTag( NAMESPACE, "timestamp" );
171         }
172         if ( snapshot.getBuildNumber() != 0 )
173         {
174             serializer.startTag( NAMESPACE, "buildNumber" ).text( String.valueOf( snapshot.getBuildNumber() ) ).endTag( NAMESPACE, "buildNumber" );
175         }
176         if ( snapshot.isLocalCopy() != false )
177         {
178             serializer.startTag( NAMESPACE, "localCopy" ).text( String.valueOf( snapshot.isLocalCopy() ) ).endTag( NAMESPACE, "localCopy" );
179         }
180         serializer.endTag( NAMESPACE, tagName );
181     } //-- void writeSnapshot( Snapshot, String, XmlSerializer )
182 
183     /**
184      * Method writeSnapshotVersion.
185      * 
186      * @param snapshotVersion
187      * @param serializer
188      * @param tagName
189      * @throws java.io.IOException
190      */
191     private void writeSnapshotVersion( SnapshotVersion snapshotVersion, String tagName, XmlSerializer serializer )
192         throws java.io.IOException
193     {
194         serializer.startTag( NAMESPACE, tagName );
195         if ( ( snapshotVersion.getClassifier() != null ) && !snapshotVersion.getClassifier().equals( "" ) )
196         {
197             serializer.startTag( NAMESPACE, "classifier" ).text( snapshotVersion.getClassifier() ).endTag( NAMESPACE, "classifier" );
198         }
199         if ( snapshotVersion.getExtension() != null )
200         {
201             serializer.startTag( NAMESPACE, "extension" ).text( snapshotVersion.getExtension() ).endTag( NAMESPACE, "extension" );
202         }
203         if ( snapshotVersion.getVersion() != null )
204         {
205             serializer.startTag( NAMESPACE, "value" ).text( snapshotVersion.getVersion() ).endTag( NAMESPACE, "value" );
206         }
207         if ( snapshotVersion.getUpdated() != null )
208         {
209             serializer.startTag( NAMESPACE, "updated" ).text( snapshotVersion.getUpdated() ).endTag( NAMESPACE, "updated" );
210         }
211         serializer.endTag( NAMESPACE, tagName );
212     } //-- void writeSnapshotVersion( SnapshotVersion, String, XmlSerializer )
213 
214     /**
215      * Method writeVersioning.
216      * 
217      * @param versioning
218      * @param serializer
219      * @param tagName
220      * @throws java.io.IOException
221      */
222     private void writeVersioning( Versioning versioning, String tagName, XmlSerializer serializer )
223         throws java.io.IOException
224     {
225         serializer.startTag( NAMESPACE, tagName );
226         if ( versioning.getLatest() != null )
227         {
228             serializer.startTag( NAMESPACE, "latest" ).text( versioning.getLatest() ).endTag( NAMESPACE, "latest" );
229         }
230         if ( versioning.getRelease() != null )
231         {
232             serializer.startTag( NAMESPACE, "release" ).text( versioning.getRelease() ).endTag( NAMESPACE, "release" );
233         }
234         if ( versioning.getSnapshot() != null )
235         {
236             writeSnapshot( (Snapshot) versioning.getSnapshot(), "snapshot", serializer );
237         }
238         if ( ( versioning.getVersions() != null ) && ( versioning.getVersions().size() > 0 ) )
239         {
240             serializer.startTag( NAMESPACE, "versions" );
241             for ( Iterator iter = versioning.getVersions().iterator(); iter.hasNext(); )
242             {
243                 String version = (String) iter.next();
244                 serializer.startTag( NAMESPACE, "version" ).text( version ).endTag( NAMESPACE, "version" );
245             }
246             serializer.endTag( NAMESPACE, "versions" );
247         }
248         if ( versioning.getLastUpdated() != null )
249         {
250             serializer.startTag( NAMESPACE, "lastUpdated" ).text( versioning.getLastUpdated() ).endTag( NAMESPACE, "lastUpdated" );
251         }
252         if ( ( versioning.getSnapshotVersions() != null ) && ( versioning.getSnapshotVersions().size() > 0 ) )
253         {
254             serializer.startTag( NAMESPACE, "snapshotVersions" );
255             for ( Iterator iter = versioning.getSnapshotVersions().iterator(); iter.hasNext(); )
256             {
257                 SnapshotVersion o = (SnapshotVersion) iter.next();
258                 writeSnapshotVersion( o, "snapshotVersion", serializer );
259             }
260             serializer.endTag( NAMESPACE, "snapshotVersions" );
261         }
262         serializer.endTag( NAMESPACE, tagName );
263     } //-- void writeVersioning( Versioning, String, XmlSerializer )
264 
265 }