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.toolchain.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.toolchain.model.PersistedToolchains;
016import org.apache.maven.toolchain.model.ToolchainModel;
017import org.codehaus.plexus.util.xml.Xpp3Dom;
018import org.codehaus.plexus.util.xml.pull.MXSerializer;
019import org.codehaus.plexus.util.xml.pull.XmlSerializer;
020
021/**
022 * Class MavenToolchainsXpp3Writer.
023 * 
024 * @version $Revision$ $Date$
025 */
026@SuppressWarnings( "all" )
027public class MavenToolchainsXpp3Writer
028{
029
030      //--------------------------/
031     //- Class/Member Variables -/
032    //--------------------------/
033
034    /**
035     * Field NAMESPACE.
036     */
037    private static final String NAMESPACE = null;
038
039
040      //-----------/
041     //- Methods -/
042    //-----------/
043
044    /**
045     * Method write.
046     * 
047     * @param writer
048     * @param persistedToolchains
049     * @throws java.io.IOException
050     */
051    public void write( Writer writer, PersistedToolchains persistedToolchains )
052        throws java.io.IOException
053    {
054        XmlSerializer serializer = new MXSerializer();
055        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
056        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
057        serializer.setOutput( writer );
058        serializer.startDocument( persistedToolchains.getModelEncoding(), null );
059        writePersistedToolchains( persistedToolchains, "toolchains", serializer );
060        serializer.endDocument();
061    } //-- void write( Writer, PersistedToolchains )
062
063    /**
064     * Method write.
065     * 
066     * @param stream
067     * @param persistedToolchains
068     * @throws java.io.IOException
069     */
070    public void write( OutputStream stream, PersistedToolchains persistedToolchains )
071        throws java.io.IOException
072    {
073        XmlSerializer serializer = new MXSerializer();
074        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
075        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
076        serializer.setOutput( stream, persistedToolchains.getModelEncoding() );
077        serializer.startDocument( persistedToolchains.getModelEncoding(), null );
078        writePersistedToolchains( persistedToolchains, "toolchains", serializer );
079        serializer.endDocument();
080    } //-- void write( OutputStream, PersistedToolchains )
081
082    /**
083     * Method writePersistedToolchains.
084     * 
085     * @param persistedToolchains
086     * @param serializer
087     * @param tagName
088     * @throws java.io.IOException
089     */
090    private void writePersistedToolchains( PersistedToolchains persistedToolchains, String tagName, XmlSerializer serializer )
091        throws java.io.IOException
092    {
093        serializer.setPrefix( "", "http://maven.apache.org/TOOLCHAINS/1.0.0" );
094        serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
095        serializer.startTag( NAMESPACE, tagName );
096        serializer.attribute( "", "xsi:schemaLocation", "http://maven.apache.org/TOOLCHAINS/1.0.0 http://maven.apache.org/xsd/toolchains-1.0.0.xsd" );
097        if ( ( persistedToolchains.getToolchains() != null ) && ( persistedToolchains.getToolchains().size() > 0 ) )
098        {
099            for ( Iterator iter = persistedToolchains.getToolchains().iterator(); iter.hasNext(); )
100            {
101                ToolchainModel o = (ToolchainModel) iter.next();
102                writeToolchainModel( o, "toolchain", serializer );
103            }
104        }
105        serializer.endTag( NAMESPACE, tagName );
106    } //-- void writePersistedToolchains( PersistedToolchains, String, XmlSerializer )
107
108    /**
109     * Method writeToolchainModel.
110     * 
111     * @param toolchainModel
112     * @param serializer
113     * @param tagName
114     * @throws java.io.IOException
115     */
116    private void writeToolchainModel( ToolchainModel toolchainModel, String tagName, XmlSerializer serializer )
117        throws java.io.IOException
118    {
119        serializer.startTag( NAMESPACE, tagName );
120        if ( toolchainModel.getType() != null )
121        {
122            serializer.startTag( NAMESPACE, "type" ).text( toolchainModel.getType() ).endTag( NAMESPACE, "type" );
123        }
124        if ( toolchainModel.getProvides() != null )
125        {
126            ((Xpp3Dom) toolchainModel.getProvides()).writeToSerializer( NAMESPACE, serializer );
127        }
128        if ( toolchainModel.getConfiguration() != null )
129        {
130            ((Xpp3Dom) toolchainModel.getConfiguration()).writeToSerializer( NAMESPACE, serializer );
131        }
132        serializer.endTag( NAMESPACE, tagName );
133    } //-- void writeToolchainModel( ToolchainModel, String, XmlSerializer )
134
135}