001// =================== DO NOT EDIT THIS FILE ====================
002// Generated by Modello 2.1.2,
003// any modifications will be overwritten.
004// ==============================================================
005
006package org.apache.maven.tools.plugin.extractor.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.tools.plugin.extractor.model.Component;
016import org.apache.maven.tools.plugin.extractor.model.LifecycleExecution;
017import org.apache.maven.tools.plugin.extractor.model.Mojo;
018import org.apache.maven.tools.plugin.extractor.model.Parameter;
019import org.apache.maven.tools.plugin.extractor.model.PluginMetadata;
020import org.codehaus.plexus.util.xml.pull.MXSerializer;
021import org.codehaus.plexus.util.xml.pull.XmlSerializer;
022
023/**
024 * Class PluginMetadataXpp3Writer.
025 * 
026 * @version $Revision$ $Date$
027 */
028@SuppressWarnings( "all" )
029public class PluginMetadataXpp3Writer
030{
031
032      //--------------------------/
033     //- Class/Member Variables -/
034    //--------------------------/
035
036    /**
037     * Field NAMESPACE.
038     */
039    private static final String NAMESPACE = null;
040
041    /**
042     * Field fileComment.
043     */
044    private String fileComment = null;
045
046
047      //-----------/
048     //- Methods -/
049    //-----------/
050
051    /**
052     * Method setFileComment.
053     * 
054     * @param fileComment a fileComment object.
055     */
056    public void setFileComment( String fileComment )
057    {
058        this.fileComment = fileComment;
059    } //-- void setFileComment( String )
060
061    /**
062     * Method write.
063     * 
064     * @param writer a writer object.
065     * @param pluginMetadata a pluginMetadata object.
066     * @throws java.io.IOException java.io.IOException if any.
067     */
068    public void write( Writer writer, PluginMetadata pluginMetadata )
069        throws java.io.IOException
070    {
071        XmlSerializer serializer = new MXSerializer();
072        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
073        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
074        serializer.setOutput( writer );
075        serializer.startDocument( pluginMetadata.getModelEncoding(), null );
076        writePluginMetadata( pluginMetadata, "pluginMetadata", serializer );
077        serializer.endDocument();
078    } //-- void write( Writer, PluginMetadata )
079
080    /**
081     * Method write.
082     * 
083     * @param stream a stream object.
084     * @param pluginMetadata a pluginMetadata object.
085     * @throws java.io.IOException java.io.IOException if any.
086     */
087    public void write( OutputStream stream, PluginMetadata pluginMetadata )
088        throws java.io.IOException
089    {
090        XmlSerializer serializer = new MXSerializer();
091        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
092        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
093        serializer.setOutput( stream, pluginMetadata.getModelEncoding() );
094        serializer.startDocument( pluginMetadata.getModelEncoding(), null );
095        writePluginMetadata( pluginMetadata, "pluginMetadata", serializer );
096        serializer.endDocument();
097    } //-- void write( OutputStream, PluginMetadata )
098
099    /**
100     * Method writeComponent.
101     * 
102     * @param component a component object.
103     * @param serializer a serializer object.
104     * @param tagName a tagName object.
105     * @throws java.io.IOException java.io.IOException if any.
106     */
107    private void writeComponent( Component component, String tagName, XmlSerializer serializer )
108        throws java.io.IOException
109    {
110        serializer.startTag( NAMESPACE, tagName );
111        if ( component.getRole() != null )
112        {
113            serializer.startTag( NAMESPACE, "role" ).text( component.getRole() ).endTag( NAMESPACE, "role" );
114        }
115        if ( component.getHint() != null )
116        {
117            serializer.startTag( NAMESPACE, "hint" ).text( component.getHint() ).endTag( NAMESPACE, "hint" );
118        }
119        serializer.endTag( NAMESPACE, tagName );
120    } //-- void writeComponent( Component, String, XmlSerializer )
121
122    /**
123     * Method writeLifecycleExecution.
124     * 
125     * @param lifecycleExecution a lifecycleExecution object.
126     * @param serializer a serializer object.
127     * @param tagName a tagName object.
128     * @throws java.io.IOException java.io.IOException if any.
129     */
130    private void writeLifecycleExecution( LifecycleExecution lifecycleExecution, String tagName, XmlSerializer serializer )
131        throws java.io.IOException
132    {
133        serializer.startTag( NAMESPACE, tagName );
134        if ( lifecycleExecution.getLifecycle() != null )
135        {
136            serializer.startTag( NAMESPACE, "lifecycle" ).text( lifecycleExecution.getLifecycle() ).endTag( NAMESPACE, "lifecycle" );
137        }
138        if ( lifecycleExecution.getPhase() != null )
139        {
140            serializer.startTag( NAMESPACE, "phase" ).text( lifecycleExecution.getPhase() ).endTag( NAMESPACE, "phase" );
141        }
142        if ( lifecycleExecution.getGoal() != null )
143        {
144            serializer.startTag( NAMESPACE, "goal" ).text( lifecycleExecution.getGoal() ).endTag( NAMESPACE, "goal" );
145        }
146        serializer.endTag( NAMESPACE, tagName );
147    } //-- void writeLifecycleExecution( LifecycleExecution, String, XmlSerializer )
148
149    /**
150     * Method writeMojo.
151     * 
152     * @param mojo a mojo object.
153     * @param serializer a serializer object.
154     * @param tagName a tagName object.
155     * @throws java.io.IOException java.io.IOException if any.
156     */
157    private void writeMojo( Mojo mojo, String tagName, XmlSerializer serializer )
158        throws java.io.IOException
159    {
160        serializer.startTag( NAMESPACE, tagName );
161        if ( mojo.getGoal() != null )
162        {
163            serializer.startTag( NAMESPACE, "goal" ).text( mojo.getGoal() ).endTag( NAMESPACE, "goal" );
164        }
165        if ( mojo.getPhase() != null )
166        {
167            serializer.startTag( NAMESPACE, "phase" ).text( mojo.getPhase() ).endTag( NAMESPACE, "phase" );
168        }
169        if ( mojo.isAggregator() != false )
170        {
171            serializer.startTag( NAMESPACE, "aggregator" ).text( String.valueOf( mojo.isAggregator() ) ).endTag( NAMESPACE, "aggregator" );
172        }
173        if ( mojo.getRequiresDependencyResolution() != null )
174        {
175            serializer.startTag( NAMESPACE, "requiresDependencyResolution" ).text( mojo.getRequiresDependencyResolution() ).endTag( NAMESPACE, "requiresDependencyResolution" );
176        }
177        if ( mojo.isRequiresProject() != false )
178        {
179            serializer.startTag( NAMESPACE, "requiresProject" ).text( String.valueOf( mojo.isRequiresProject() ) ).endTag( NAMESPACE, "requiresProject" );
180        }
181        if ( mojo.isRequiresReports() != false )
182        {
183            serializer.startTag( NAMESPACE, "requiresReports" ).text( String.valueOf( mojo.isRequiresReports() ) ).endTag( NAMESPACE, "requiresReports" );
184        }
185        if ( mojo.isRequiresOnline() != false )
186        {
187            serializer.startTag( NAMESPACE, "requiresOnline" ).text( String.valueOf( mojo.isRequiresOnline() ) ).endTag( NAMESPACE, "requiresOnline" );
188        }
189        if ( mojo.isInheritByDefault() != false )
190        {
191            serializer.startTag( NAMESPACE, "inheritByDefault" ).text( String.valueOf( mojo.isInheritByDefault() ) ).endTag( NAMESPACE, "inheritByDefault" );
192        }
193        if ( mojo.isRequiresDirectInvocation() != false )
194        {
195            serializer.startTag( NAMESPACE, "requiresDirectInvocation" ).text( String.valueOf( mojo.isRequiresDirectInvocation() ) ).endTag( NAMESPACE, "requiresDirectInvocation" );
196        }
197        if ( mojo.getExecution() != null )
198        {
199            writeLifecycleExecution( (LifecycleExecution) mojo.getExecution(), "execution", serializer );
200        }
201        if ( ( mojo.getComponents() != null ) && ( mojo.getComponents().size() > 0 ) )
202        {
203            serializer.startTag( NAMESPACE, "components" );
204            for ( Iterator iter = mojo.getComponents().iterator(); iter.hasNext(); )
205            {
206                Component o = (Component) iter.next();
207                writeComponent( o, "component", serializer );
208            }
209            serializer.endTag( NAMESPACE, "components" );
210        }
211        if ( ( mojo.getParameters() != null ) && ( mojo.getParameters().size() > 0 ) )
212        {
213            serializer.startTag( NAMESPACE, "parameters" );
214            for ( Iterator iter = mojo.getParameters().iterator(); iter.hasNext(); )
215            {
216                Parameter o = (Parameter) iter.next();
217                writeParameter( o, "parameter", serializer );
218            }
219            serializer.endTag( NAMESPACE, "parameters" );
220        }
221        if ( mojo.getDescription() != null )
222        {
223            serializer.startTag( NAMESPACE, "description" ).text( mojo.getDescription() ).endTag( NAMESPACE, "description" );
224        }
225        if ( mojo.getDeprecation() != null )
226        {
227            serializer.startTag( NAMESPACE, "deprecated" ).text( mojo.getDeprecation() ).endTag( NAMESPACE, "deprecated" );
228        }
229        if ( mojo.getSince() != null )
230        {
231            serializer.startTag( NAMESPACE, "since" ).text( mojo.getSince() ).endTag( NAMESPACE, "since" );
232        }
233        if ( mojo.getCall() != null )
234        {
235            serializer.startTag( NAMESPACE, "call" ).text( mojo.getCall() ).endTag( NAMESPACE, "call" );
236        }
237        serializer.endTag( NAMESPACE, tagName );
238    } //-- void writeMojo( Mojo, String, XmlSerializer )
239
240    /**
241     * Method writeParameter.
242     * 
243     * @param parameter a parameter object.
244     * @param serializer a serializer object.
245     * @param tagName a tagName object.
246     * @throws java.io.IOException java.io.IOException if any.
247     */
248    private void writeParameter( Parameter parameter, String tagName, XmlSerializer serializer )
249        throws java.io.IOException
250    {
251        serializer.startTag( NAMESPACE, tagName );
252        if ( parameter.getName() != null )
253        {
254            serializer.startTag( NAMESPACE, "name" ).text( parameter.getName() ).endTag( NAMESPACE, "name" );
255        }
256        if ( parameter.getAlias() != null )
257        {
258            serializer.startTag( NAMESPACE, "alias" ).text( parameter.getAlias() ).endTag( NAMESPACE, "alias" );
259        }
260        if ( parameter.getProperty() != null )
261        {
262            serializer.startTag( NAMESPACE, "property" ).text( parameter.getProperty() ).endTag( NAMESPACE, "property" );
263        }
264        if ( parameter.isRequired() != false )
265        {
266            serializer.startTag( NAMESPACE, "required" ).text( String.valueOf( parameter.isRequired() ) ).endTag( NAMESPACE, "required" );
267        }
268        if ( parameter.isReadonly() != false )
269        {
270            serializer.startTag( NAMESPACE, "readonly" ).text( String.valueOf( parameter.isReadonly() ) ).endTag( NAMESPACE, "readonly" );
271        }
272        if ( parameter.getExpression() != null )
273        {
274            serializer.startTag( NAMESPACE, "expression" ).text( parameter.getExpression() ).endTag( NAMESPACE, "expression" );
275        }
276        if ( parameter.getDefaultValue() != null )
277        {
278            serializer.startTag( NAMESPACE, "defaultValue" ).text( parameter.getDefaultValue() ).endTag( NAMESPACE, "defaultValue" );
279        }
280        if ( parameter.getType() != null )
281        {
282            serializer.startTag( NAMESPACE, "type" ).text( parameter.getType() ).endTag( NAMESPACE, "type" );
283        }
284        if ( parameter.getDescription() != null )
285        {
286            serializer.startTag( NAMESPACE, "description" ).text( parameter.getDescription() ).endTag( NAMESPACE, "description" );
287        }
288        if ( parameter.getDeprecation() != null )
289        {
290            serializer.startTag( NAMESPACE, "deprecated" ).text( parameter.getDeprecation() ).endTag( NAMESPACE, "deprecated" );
291        }
292        if ( parameter.getSince() != null )
293        {
294            serializer.startTag( NAMESPACE, "since" ).text( parameter.getSince() ).endTag( NAMESPACE, "since" );
295        }
296        serializer.endTag( NAMESPACE, tagName );
297    } //-- void writeParameter( Parameter, String, XmlSerializer )
298
299    /**
300     * Method writePluginMetadata.
301     * 
302     * @param pluginMetadata a pluginMetadata object.
303     * @param serializer a serializer object.
304     * @param tagName a tagName object.
305     * @throws java.io.IOException java.io.IOException if any.
306     */
307    private void writePluginMetadata( PluginMetadata pluginMetadata, String tagName, XmlSerializer serializer )
308        throws java.io.IOException
309    {
310        serializer.startTag( NAMESPACE, tagName );
311        if ( ( pluginMetadata.getMojos() != null ) && ( pluginMetadata.getMojos().size() > 0 ) )
312        {
313            serializer.startTag( NAMESPACE, "mojos" );
314            for ( Iterator iter = pluginMetadata.getMojos().iterator(); iter.hasNext(); )
315            {
316                Mojo o = (Mojo) iter.next();
317                writeMojo( o, "mojo", serializer );
318            }
319            serializer.endTag( NAMESPACE, "mojos" );
320        }
321        serializer.endTag( NAMESPACE, tagName );
322    } //-- void writePluginMetadata( PluginMetadata, String, XmlSerializer )
323
324}