View Javadoc
1   /*
2    Licensed to the Apache Software Foundation (ASF) under one
3    or more contributor license agreements.  See the NOTICE file
4    distributed with this work for additional information
5    regarding copyright ownership.  The ASF licenses this file
6    to you under the Apache License, Version 2.0 (the
7    "License"); you may not use this file except in compliance
8    with the License.  You may obtain a copy of the License at
9    
10       http://www.apache.org/licenses/LICENSE-2.0
11   
12   Unless required by applicable law or agreed to in writing,
13   software distributed under the License is distributed on an
14   "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   KIND, either express or implied.  See the License for the
16   specific language governing permissions and limitations
17   under the License.
18   =================== DO NOT EDIT THIS FILE ====================
19   Generated by Modello 2.5.1,
20   any modifications will be overwritten.
21   ==============================================================
22   */
23  
24  package org.apache.maven.toolchain.model.io.xpp3;
25  
26    //---------------------------------/
27   //- Imported classes and packages -/
28  //---------------------------------/
29  
30  import java.io.OutputStream;
31  import java.io.Writer;
32  import java.util.Iterator;
33  import org.apache.maven.toolchain.model.PersistedToolchains;
34  import org.apache.maven.toolchain.model.ToolchainModel;
35  import org.apache.maven.toolchain.model.TrackableBase;
36  import org.codehaus.plexus.util.xml.Xpp3Dom;
37  import org.codehaus.plexus.util.xml.pull.MXSerializer;
38  import org.codehaus.plexus.util.xml.pull.XmlSerializer;
39  
40  /**
41   * Class MavenToolchainsXpp3Writer.
42   * 
43   * @version $Revision$ $Date$
44   */
45  @SuppressWarnings( "all" )
46  public class MavenToolchainsXpp3Writer
47  {
48  
49        //--------------------------/
50       //- Class/Member Variables -/
51      //--------------------------/
52  
53      /**
54       * Field NAMESPACE.
55       */
56      private static final String NAMESPACE = null;
57  
58      /**
59       * Field fileComment.
60       */
61      private String fileComment = null;
62  
63  
64        //-----------/
65       //- Methods -/
66      //-----------/
67  
68      /**
69       * Method setFileComment.
70       * 
71       * @param fileComment a fileComment object.
72       */
73      public void setFileComment( String fileComment )
74      {
75          this.fileComment = fileComment;
76      } //-- void setFileComment( String )
77  
78      /**
79       * Method write.
80       * 
81       * @param writer a writer object.
82       * @param persistedToolchains a persistedToolchains object.
83       * @throws java.io.IOException java.io.IOException if any.
84       */
85      public void write( Writer writer, PersistedToolchains persistedToolchains )
86          throws java.io.IOException
87      {
88          XmlSerializer serializer = new MXSerializer();
89          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
90          serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
91          serializer.setOutput( writer );
92          serializer.startDocument( persistedToolchains.getModelEncoding(), null );
93          writePersistedToolchains( persistedToolchains, "toolchains", serializer );
94          serializer.endDocument();
95      } //-- void write( Writer, PersistedToolchains )
96  
97      /**
98       * Method write.
99       * 
100      * @param stream a stream object.
101      * @param persistedToolchains a persistedToolchains object.
102      * @throws java.io.IOException java.io.IOException if any.
103      */
104     public void write( OutputStream stream, PersistedToolchains persistedToolchains )
105         throws java.io.IOException
106     {
107         XmlSerializer serializer = new MXSerializer();
108         serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
109         serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
110         serializer.setOutput( stream, persistedToolchains.getModelEncoding() );
111         serializer.startDocument( persistedToolchains.getModelEncoding(), null );
112         writePersistedToolchains( persistedToolchains, "toolchains", serializer );
113         serializer.endDocument();
114     } //-- void write( OutputStream, PersistedToolchains )
115 
116     /**
117      * Method writePersistedToolchains.
118      * 
119      * @param persistedToolchains a persistedToolchains object.
120      * @param serializer a serializer object.
121      * @param tagName a tagName object.
122      * @throws java.io.IOException java.io.IOException if any.
123      */
124     private void writePersistedToolchains( PersistedToolchains persistedToolchains, String tagName, XmlSerializer serializer )
125         throws java.io.IOException
126     {
127         if ( this.fileComment != null )
128         {
129         serializer.comment(this.fileComment);
130         }
131         serializer.setPrefix( "", "http://maven.apache.org/TOOLCHAINS/1.1.0" );
132         serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
133         serializer.startTag( NAMESPACE, tagName );
134         serializer.attribute( "", "xsi:schemaLocation", "http://maven.apache.org/TOOLCHAINS/1.1.0 https://maven.apache.org/xsd/toolchains-1.1.0.xsd" );
135         if ( ( persistedToolchains.getToolchains() != null ) && ( persistedToolchains.getToolchains().size() > 0 ) )
136         {
137             for ( Iterator iter = persistedToolchains.getToolchains().iterator(); iter.hasNext(); )
138             {
139                 ToolchainModel o = (ToolchainModel) iter.next();
140                 writeToolchainModel( o, "toolchain", serializer );
141             }
142         }
143         serializer.endTag( NAMESPACE, tagName );
144     } //-- void writePersistedToolchains( PersistedToolchains, String, XmlSerializer )
145 
146     /**
147      * Method writeToolchainModel.
148      * 
149      * @param toolchainModel a toolchainModel object.
150      * @param serializer a serializer object.
151      * @param tagName a tagName object.
152      * @throws java.io.IOException java.io.IOException if any.
153      */
154     private void writeToolchainModel( ToolchainModel toolchainModel, String tagName, XmlSerializer serializer )
155         throws java.io.IOException
156     {
157         serializer.startTag( NAMESPACE, tagName );
158         if ( toolchainModel.getType() != null )
159         {
160             serializer.startTag( NAMESPACE, "type" ).text( toolchainModel.getType() ).endTag( NAMESPACE, "type" );
161         }
162         if ( ( toolchainModel.getProvides() != null ) && ( toolchainModel.getProvides().size() > 0 ) )
163         {
164             serializer.startTag( NAMESPACE, "provides" );
165             for ( Iterator iter = toolchainModel.getProvides().keySet().iterator(); iter.hasNext(); )
166             {
167                 String key = (String) iter.next();
168                 String value = (String) toolchainModel.getProvides().get( key );
169                 serializer.startTag( NAMESPACE, key ).text( value ).endTag( NAMESPACE, key );
170             }
171             serializer.endTag( NAMESPACE, "provides" );
172         }
173         if ( toolchainModel.getConfiguration() != null )
174         {
175             ((Xpp3Dom) toolchainModel.getConfiguration()).writeToSerializer( NAMESPACE, serializer );
176         }
177         serializer.endTag( NAMESPACE, tagName );
178     } //-- void writeToolchainModel( ToolchainModel, String, XmlSerializer )
179 
180     /**
181      * Method writeTrackableBase.
182      * 
183      * @param trackableBase a trackableBase object.
184      * @param serializer a serializer object.
185      * @param tagName a tagName object.
186      * @throws java.io.IOException java.io.IOException if any.
187      */
188     private void writeTrackableBase( TrackableBase trackableBase, String tagName, XmlSerializer serializer )
189         throws java.io.IOException
190     {
191         serializer.startTag( NAMESPACE, tagName );
192         serializer.endTag( NAMESPACE, tagName );
193     } //-- void writeTrackableBase( TrackableBase, String, XmlSerializer )
194 
195 }