001// =================== DO NOT EDIT THIS FILE ====================
002// Generated by Modello 1.8.1,
003// any modifications will be overwritten.
004// ==============================================================
005
006package org.apache.maven.artifact.repository.metadata.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.apache.maven.artifact.repository.metadata.Metadata;
016import org.apache.maven.artifact.repository.metadata.Plugin;
017import org.apache.maven.artifact.repository.metadata.Snapshot;
018import org.apache.maven.artifact.repository.metadata.SnapshotVersion;
019import org.apache.maven.artifact.repository.metadata.Versioning;
020import org.codehaus.plexus.util.xml.pull.MXSerializer;
021import org.codehaus.plexus.util.xml.pull.XmlSerializer;
022
023/**
024 * Class MetadataXpp3Writer.
025 * 
026 * @version $Revision$ $Date$
027 */
028@SuppressWarnings( "all" )
029public class MetadataXpp3Writer
030{
031
032      //--------------------------/
033     //- Class/Member Variables -/
034    //--------------------------/
035
036    /**
037     * Field NAMESPACE.
038     */
039    private static final String NAMESPACE = null;
040
041
042      //-----------/
043     //- Methods -/
044    //-----------/
045
046    /**
047     * Method write.
048     * 
049     * @param writer
050     * @param metadata
051     * @throws java.io.IOException
052     */
053    public void write( Writer writer, Metadata metadata )
054        throws java.io.IOException
055    {
056        XmlSerializer serializer = new MXSerializer();
057        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
058        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
059        serializer.setOutput( writer );
060        serializer.startDocument( metadata.getModelEncoding(), null );
061        writeMetadata( metadata, "metadata", serializer );
062        serializer.endDocument();
063    } //-- void write( Writer, Metadata )
064
065    /**
066     * Method write.
067     * 
068     * @param stream
069     * @param metadata
070     * @throws java.io.IOException
071     */
072    public void write( OutputStream stream, Metadata metadata )
073        throws java.io.IOException
074    {
075        XmlSerializer serializer = new MXSerializer();
076        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
077        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
078        serializer.setOutput( stream, metadata.getModelEncoding() );
079        serializer.startDocument( metadata.getModelEncoding(), null );
080        writeMetadata( metadata, "metadata", serializer );
081        serializer.endDocument();
082    } //-- void write( OutputStream, Metadata )
083
084    /**
085     * Method writeMetadata.
086     * 
087     * @param metadata
088     * @param serializer
089     * @param tagName
090     * @throws java.io.IOException
091     */
092    private void writeMetadata( Metadata metadata, String tagName, XmlSerializer serializer )
093        throws java.io.IOException
094    {
095        serializer.startTag( NAMESPACE, tagName );
096        if ( metadata.getModelVersion() != null )
097        {
098            serializer.attribute( NAMESPACE, "modelVersion", metadata.getModelVersion() );
099        }
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}