001    // =================== DO NOT EDIT THIS FILE ====================
002    // Generated by Modello 1.7,
003    // any modifications will be overwritten.
004    // ==============================================================
005    
006    package org.apache.maven.artifact.repository.metadata.io.xpp3;
007    
008      //---------------------------------/
009     //- Imported classes and packages -/
010    //---------------------------------/
011    
012    import java.io.OutputStream;
013    import java.io.Writer;
014    import java.util.Iterator;
015    import org.apache.maven.artifact.repository.metadata.Metadata;
016    import org.apache.maven.artifact.repository.metadata.Plugin;
017    import org.apache.maven.artifact.repository.metadata.Snapshot;
018    import org.apache.maven.artifact.repository.metadata.SnapshotVersion;
019    import org.apache.maven.artifact.repository.metadata.Versioning;
020    import org.codehaus.plexus.util.xml.pull.MXSerializer;
021    import org.codehaus.plexus.util.xml.pull.XmlSerializer;
022    
023    /**
024     * Class MetadataXpp3Writer.
025     * 
026     * @version $Revision$ $Date$
027     */
028    @SuppressWarnings( "all" )
029    public 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    }