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.toolchain.model.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.toolchain.model.PersistedToolchains;
016 import org.apache.maven.toolchain.model.ToolchainModel;
017 import org.codehaus.plexus.util.xml.Xpp3Dom;
018 import org.codehaus.plexus.util.xml.pull.MXSerializer;
019 import org.codehaus.plexus.util.xml.pull.XmlSerializer;
020
021 /**
022 * Class MavenToolchainsXpp3Writer.
023 *
024 * @version $Revision$ $Date$
025 */
026 @SuppressWarnings( "all" )
027 public 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 }