001// =================== DO NOT EDIT THIS FILE ====================
002// Generated by Modello 1.8.3,
003// any modifications will be overwritten.
004// ==============================================================
005
006package org.apache.maven.cli.internal.extension.model.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.cli.internal.extension.model.CoreExtension;
016import org.apache.maven.cli.internal.extension.model.CoreExtensions;
017import org.codehaus.plexus.util.xml.pull.MXSerializer;
018import org.codehaus.plexus.util.xml.pull.XmlSerializer;
019
020/**
021 * Class CoreExtensionsXpp3Writer.
022 * 
023 * @version $Revision: 965443 $ $Date: 2015-09-14 22:18:52 +0000 (Mon, 14 Sep 2015) $
024 */
025@SuppressWarnings( "all" )
026public class CoreExtensionsXpp3Writer
027{
028
029      //--------------------------/
030     //- Class/Member Variables -/
031    //--------------------------/
032
033    /**
034     * Field NAMESPACE.
035     */
036    private static final String NAMESPACE = null;
037
038
039      //-----------/
040     //- Methods -/
041    //-----------/
042
043    /**
044     * Method write.
045     * 
046     * @param writer
047     * @param coreExtensions
048     * @throws java.io.IOException
049     */
050    public void write( Writer writer, CoreExtensions coreExtensions )
051        throws java.io.IOException
052    {
053        XmlSerializer serializer = new MXSerializer();
054        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
055        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
056        serializer.setOutput( writer );
057        serializer.startDocument( coreExtensions.getModelEncoding(), null );
058        writeCoreExtensions( coreExtensions, "extensions", serializer );
059        serializer.endDocument();
060    } //-- void write( Writer, CoreExtensions )
061
062    /**
063     * Method write.
064     * 
065     * @param stream
066     * @param coreExtensions
067     * @throws java.io.IOException
068     */
069    public void write( OutputStream stream, CoreExtensions coreExtensions )
070        throws java.io.IOException
071    {
072        XmlSerializer serializer = new MXSerializer();
073        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
074        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
075        serializer.setOutput( stream, coreExtensions.getModelEncoding() );
076        serializer.startDocument( coreExtensions.getModelEncoding(), null );
077        writeCoreExtensions( coreExtensions, "extensions", serializer );
078        serializer.endDocument();
079    } //-- void write( OutputStream, CoreExtensions )
080
081    /**
082     * Method writeCoreExtension.
083     * 
084     * @param coreExtension
085     * @param serializer
086     * @param tagName
087     * @throws java.io.IOException
088     */
089    private void writeCoreExtension( CoreExtension coreExtension, String tagName, XmlSerializer serializer )
090        throws java.io.IOException
091    {
092        serializer.startTag( NAMESPACE, tagName );
093        if ( coreExtension.getGroupId() != null )
094        {
095            serializer.startTag( NAMESPACE, "groupId" ).text( coreExtension.getGroupId() ).endTag( NAMESPACE, "groupId" );
096        }
097        if ( coreExtension.getArtifactId() != null )
098        {
099            serializer.startTag( NAMESPACE, "artifactId" ).text( coreExtension.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
100        }
101        if ( coreExtension.getVersion() != null )
102        {
103            serializer.startTag( NAMESPACE, "version" ).text( coreExtension.getVersion() ).endTag( NAMESPACE, "version" );
104        }
105        serializer.endTag( NAMESPACE, tagName );
106    } //-- void writeCoreExtension( CoreExtension, String, XmlSerializer )
107
108    /**
109     * Method writeCoreExtensions.
110     * 
111     * @param coreExtensions
112     * @param serializer
113     * @param tagName
114     * @throws java.io.IOException
115     */
116    private void writeCoreExtensions( CoreExtensions coreExtensions, String tagName, XmlSerializer serializer )
117        throws java.io.IOException
118    {
119        serializer.setPrefix( "", "http://maven.apache.org/EXTENSIONS/1.0.0" );
120        serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
121        serializer.startTag( NAMESPACE, tagName );
122        serializer.attribute( "", "xsi:schemaLocation", "http://maven.apache.org/EXTENSIONS/1.0.0 http://maven.apache.org/xsd/core-extensions-1.0.0.xsd" );
123        if ( ( coreExtensions.getExtensions() != null ) && ( coreExtensions.getExtensions().size() > 0 ) )
124        {
125            for ( Iterator iter = coreExtensions.getExtensions().iterator(); iter.hasNext(); )
126            {
127                CoreExtension o = (CoreExtension) iter.next();
128                writeCoreExtension( o, "extension", serializer );
129            }
130        }
131        serializer.endTag( NAMESPACE, tagName );
132    } //-- void writeCoreExtensions( CoreExtensions, String, XmlSerializer )
133
134}