001    /*
002     =================== DO NOT EDIT THIS FILE ====================
003     Generated by Modello 1.4.1 on 2013-02-24 03:31:03,
004     any modifications will be overwritten.
005     ==============================================================
006     */
007    
008    package org.apache.maven.artifact.repository.metadata.io.xpp3;
009    
010      //---------------------------------/
011     //- Imported classes and packages -/
012    //---------------------------------/
013    
014    import java.io.OutputStream;
015    import java.io.Writer;
016    import java.text.DateFormat;
017    import java.util.Iterator;
018    import java.util.Locale;
019    import org.apache.maven.artifact.repository.metadata.Metadata;
020    import org.apache.maven.artifact.repository.metadata.Plugin;
021    import org.apache.maven.artifact.repository.metadata.Snapshot;
022    import org.apache.maven.artifact.repository.metadata.SnapshotVersion;
023    import org.apache.maven.artifact.repository.metadata.Versioning;
024    import org.codehaus.plexus.util.xml.pull.MXSerializer;
025    import org.codehaus.plexus.util.xml.pull.XmlSerializer;
026    
027    /**
028     * Class MetadataXpp3Writer.
029     * 
030     * @version $Revision$ $Date$
031     */
032    @SuppressWarnings( "all" )
033    public class MetadataXpp3Writer
034    {
035    
036          //--------------------------/
037         //- Class/Member Variables -/
038        //--------------------------/
039    
040        /**
041         * Field NAMESPACE.
042         */
043        private static final String NAMESPACE = null;
044    
045    
046          //-----------/
047         //- Methods -/
048        //-----------/
049    
050        /**
051         * Method write.
052         * 
053         * @param writer
054         * @param metadata
055         * @throws java.io.IOException
056         */
057        public void write( Writer writer, Metadata metadata )
058            throws java.io.IOException
059        {
060            XmlSerializer serializer = new MXSerializer();
061            serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
062            serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
063            serializer.setOutput( writer );
064            serializer.startDocument( metadata.getModelEncoding(), null );
065            writeMetadata( metadata, "metadata", serializer );
066            serializer.endDocument();
067        } //-- void write( Writer, Metadata )
068    
069        /**
070         * Method write.
071         * 
072         * @param stream
073         * @param metadata
074         * @throws java.io.IOException
075         */
076        public void write( OutputStream stream, Metadata metadata )
077            throws java.io.IOException
078        {
079            XmlSerializer serializer = new MXSerializer();
080            serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
081            serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
082            serializer.setOutput( stream, metadata.getModelEncoding() );
083            serializer.startDocument( metadata.getModelEncoding(), null );
084            writeMetadata( metadata, "metadata", serializer );
085            serializer.endDocument();
086        } //-- void write( OutputStream, Metadata )
087    
088        /**
089         * Method writeMetadata.
090         * 
091         * @param metadata
092         * @param serializer
093         * @param tagName
094         * @throws java.io.IOException
095         */
096        private void writeMetadata( Metadata metadata, String tagName, XmlSerializer serializer )
097            throws java.io.IOException
098        {
099            serializer.startTag( NAMESPACE, tagName );
100            if ( metadata.getModelVersion() != null )
101            {
102                serializer.attribute( NAMESPACE, "modelVersion", metadata.getModelVersion() );
103            }
104            if ( metadata.getGroupId() != null )
105            {
106                serializer.startTag( NAMESPACE, "groupId" ).text( metadata.getGroupId() ).endTag( NAMESPACE, "groupId" );
107            }
108            if ( metadata.getArtifactId() != null )
109            {
110                serializer.startTag( NAMESPACE, "artifactId" ).text( metadata.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
111            }
112            if ( metadata.getVersion() != null )
113            {
114                serializer.startTag( NAMESPACE, "version" ).text( metadata.getVersion() ).endTag( NAMESPACE, "version" );
115            }
116            if ( metadata.getVersioning() != null )
117            {
118                writeVersioning( (Versioning) metadata.getVersioning(), "versioning", serializer );
119            }
120            if ( ( metadata.getPlugins() != null ) && ( metadata.getPlugins().size() > 0 ) )
121            {
122                serializer.startTag( NAMESPACE, "plugins" );
123                for ( Iterator iter = metadata.getPlugins().iterator(); iter.hasNext(); )
124                {
125                    Plugin o = (Plugin) iter.next();
126                    writePlugin( o, "plugin", serializer );
127                }
128                serializer.endTag( NAMESPACE, "plugins" );
129            }
130            serializer.endTag( NAMESPACE, tagName );
131        } //-- void writeMetadata( Metadata, String, XmlSerializer )
132    
133        /**
134         * Method writePlugin.
135         * 
136         * @param plugin
137         * @param serializer
138         * @param tagName
139         * @throws java.io.IOException
140         */
141        private void writePlugin( Plugin plugin, String tagName, XmlSerializer serializer )
142            throws java.io.IOException
143        {
144            serializer.startTag( NAMESPACE, tagName );
145            if ( plugin.getName() != null )
146            {
147                serializer.startTag( NAMESPACE, "name" ).text( plugin.getName() ).endTag( NAMESPACE, "name" );
148            }
149            if ( plugin.getPrefix() != null )
150            {
151                serializer.startTag( NAMESPACE, "prefix" ).text( plugin.getPrefix() ).endTag( NAMESPACE, "prefix" );
152            }
153            if ( plugin.getArtifactId() != null )
154            {
155                serializer.startTag( NAMESPACE, "artifactId" ).text( plugin.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
156            }
157            serializer.endTag( NAMESPACE, tagName );
158        } //-- void writePlugin( Plugin, String, XmlSerializer )
159    
160        /**
161         * Method writeSnapshot.
162         * 
163         * @param snapshot
164         * @param serializer
165         * @param tagName
166         * @throws java.io.IOException
167         */
168        private void writeSnapshot( Snapshot snapshot, String tagName, XmlSerializer serializer )
169            throws java.io.IOException
170        {
171            serializer.startTag( NAMESPACE, tagName );
172            if ( snapshot.getTimestamp() != null )
173            {
174                serializer.startTag( NAMESPACE, "timestamp" ).text( snapshot.getTimestamp() ).endTag( NAMESPACE, "timestamp" );
175            }
176            if ( snapshot.getBuildNumber() != 0 )
177            {
178                serializer.startTag( NAMESPACE, "buildNumber" ).text( String.valueOf( snapshot.getBuildNumber() ) ).endTag( NAMESPACE, "buildNumber" );
179            }
180            if ( snapshot.isLocalCopy() != false )
181            {
182                serializer.startTag( NAMESPACE, "localCopy" ).text( String.valueOf( snapshot.isLocalCopy() ) ).endTag( NAMESPACE, "localCopy" );
183            }
184            serializer.endTag( NAMESPACE, tagName );
185        } //-- void writeSnapshot( Snapshot, String, XmlSerializer )
186    
187        /**
188         * Method writeSnapshotVersion.
189         * 
190         * @param snapshotVersion
191         * @param serializer
192         * @param tagName
193         * @throws java.io.IOException
194         */
195        private void writeSnapshotVersion( SnapshotVersion snapshotVersion, String tagName, XmlSerializer serializer )
196            throws java.io.IOException
197        {
198            serializer.startTag( NAMESPACE, tagName );
199            if ( ( snapshotVersion.getClassifier() != null ) && !snapshotVersion.getClassifier().equals( "" ) )
200            {
201                serializer.startTag( NAMESPACE, "classifier" ).text( snapshotVersion.getClassifier() ).endTag( NAMESPACE, "classifier" );
202            }
203            if ( snapshotVersion.getExtension() != null )
204            {
205                serializer.startTag( NAMESPACE, "extension" ).text( snapshotVersion.getExtension() ).endTag( NAMESPACE, "extension" );
206            }
207            if ( snapshotVersion.getVersion() != null )
208            {
209                serializer.startTag( NAMESPACE, "value" ).text( snapshotVersion.getVersion() ).endTag( NAMESPACE, "value" );
210            }
211            if ( snapshotVersion.getUpdated() != null )
212            {
213                serializer.startTag( NAMESPACE, "updated" ).text( snapshotVersion.getUpdated() ).endTag( NAMESPACE, "updated" );
214            }
215            serializer.endTag( NAMESPACE, tagName );
216        } //-- void writeSnapshotVersion( SnapshotVersion, String, XmlSerializer )
217    
218        /**
219         * Method writeVersioning.
220         * 
221         * @param versioning
222         * @param serializer
223         * @param tagName
224         * @throws java.io.IOException
225         */
226        private void writeVersioning( Versioning versioning, String tagName, XmlSerializer serializer )
227            throws java.io.IOException
228        {
229            serializer.startTag( NAMESPACE, tagName );
230            if ( versioning.getLatest() != null )
231            {
232                serializer.startTag( NAMESPACE, "latest" ).text( versioning.getLatest() ).endTag( NAMESPACE, "latest" );
233            }
234            if ( versioning.getRelease() != null )
235            {
236                serializer.startTag( NAMESPACE, "release" ).text( versioning.getRelease() ).endTag( NAMESPACE, "release" );
237            }
238            if ( versioning.getSnapshot() != null )
239            {
240                writeSnapshot( (Snapshot) versioning.getSnapshot(), "snapshot", serializer );
241            }
242            if ( ( versioning.getVersions() != null ) && ( versioning.getVersions().size() > 0 ) )
243            {
244                serializer.startTag( NAMESPACE, "versions" );
245                for ( Iterator iter = versioning.getVersions().iterator(); iter.hasNext(); )
246                {
247                    String version = (String) iter.next();
248                    serializer.startTag( NAMESPACE, "version" ).text( version ).endTag( NAMESPACE, "version" );
249                }
250                serializer.endTag( NAMESPACE, "versions" );
251            }
252            if ( versioning.getLastUpdated() != null )
253            {
254                serializer.startTag( NAMESPACE, "lastUpdated" ).text( versioning.getLastUpdated() ).endTag( NAMESPACE, "lastUpdated" );
255            }
256            if ( ( versioning.getSnapshotVersions() != null ) && ( versioning.getSnapshotVersions().size() > 0 ) )
257            {
258                serializer.startTag( NAMESPACE, "snapshotVersions" );
259                for ( Iterator iter = versioning.getSnapshotVersions().iterator(); iter.hasNext(); )
260                {
261                    SnapshotVersion o = (SnapshotVersion) iter.next();
262                    writeSnapshotVersion( o, "snapshotVersion", serializer );
263                }
264                serializer.endTag( NAMESPACE, "snapshotVersions" );
265            }
266            serializer.endTag( NAMESPACE, tagName );
267        } //-- void writeVersioning( Versioning, String, XmlSerializer )
268    
269    }