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.plugin.descriptor.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.plugin.descriptor.model.Configuration;
016    import org.apache.maven.plugin.descriptor.model.Dependency;
017    import org.apache.maven.plugin.descriptor.model.MojoDescriptor;
018    import org.apache.maven.plugin.descriptor.model.Parameter;
019    import org.apache.maven.plugin.descriptor.model.PluginDescriptor;
020    import org.apache.maven.plugin.descriptor.model.Requirement;
021    import org.codehaus.plexus.util.xml.pull.MXSerializer;
022    import org.codehaus.plexus.util.xml.pull.XmlSerializer;
023    
024    /**
025     * Class PluginDescriptorXpp3Writer.
026     * 
027     * @version $Revision: 855142 $ $Date: 2013-03-20 00:55:13 +0000 (Wed, 20 Mar 2013) $
028     */
029    @SuppressWarnings( "all" )
030    public class PluginDescriptorXpp3Writer
031    {
032    
033          //--------------------------/
034         //- Class/Member Variables -/
035        //--------------------------/
036    
037        /**
038         * Field NAMESPACE.
039         */
040        private static final String NAMESPACE = null;
041    
042    
043          //-----------/
044         //- Methods -/
045        //-----------/
046    
047        /**
048         * Method write.
049         * 
050         * @param writer
051         * @param pluginDescriptor
052         * @throws java.io.IOException
053         */
054        public void write( Writer writer, PluginDescriptor pluginDescriptor )
055            throws java.io.IOException
056        {
057            XmlSerializer serializer = new MXSerializer();
058            serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
059            serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
060            serializer.setOutput( writer );
061            serializer.startDocument( pluginDescriptor.getModelEncoding(), null );
062            writePluginDescriptor( pluginDescriptor, "plugin", serializer );
063            serializer.endDocument();
064        } //-- void write( Writer, PluginDescriptor )
065    
066        /**
067         * Method write.
068         * 
069         * @param stream
070         * @param pluginDescriptor
071         * @throws java.io.IOException
072         */
073        public void write( OutputStream stream, PluginDescriptor pluginDescriptor )
074            throws java.io.IOException
075        {
076            XmlSerializer serializer = new MXSerializer();
077            serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
078            serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
079            serializer.setOutput( stream, pluginDescriptor.getModelEncoding() );
080            serializer.startDocument( pluginDescriptor.getModelEncoding(), null );
081            writePluginDescriptor( pluginDescriptor, "plugin", serializer );
082            serializer.endDocument();
083        } //-- void write( OutputStream, PluginDescriptor )
084    
085        /**
086         * Method writeConfiguration.
087         * 
088         * @param configuration
089         * @param serializer
090         * @param tagName
091         * @throws java.io.IOException
092         */
093        private void writeConfiguration( Configuration configuration, String tagName, XmlSerializer serializer )
094            throws java.io.IOException
095        {
096            serializer.startTag( NAMESPACE, tagName );
097            if ( configuration.getImplementation() != null )
098            {
099                serializer.attribute( NAMESPACE, "implementation", configuration.getImplementation() );
100            }
101            if ( configuration.getDefaultValue() != null )
102            {
103                serializer.attribute( NAMESPACE, "default-value", configuration.getDefaultValue() );
104            }
105            serializer.text( configuration.getExpression() );
106            serializer.endTag( NAMESPACE, tagName );
107        } //-- void writeConfiguration( Configuration, String, XmlSerializer )
108    
109        /**
110         * Method writeDependency.
111         * 
112         * @param dependency
113         * @param serializer
114         * @param tagName
115         * @throws java.io.IOException
116         */
117        private void writeDependency( Dependency dependency, String tagName, XmlSerializer serializer )
118            throws java.io.IOException
119        {
120            serializer.startTag( NAMESPACE, tagName );
121            if ( dependency.getGroupId() != null )
122            {
123                serializer.startTag( NAMESPACE, "groupId" ).text( dependency.getGroupId() ).endTag( NAMESPACE, "groupId" );
124            }
125            if ( dependency.getArtifactId() != null )
126            {
127                serializer.startTag( NAMESPACE, "artifactId" ).text( dependency.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
128            }
129            if ( dependency.getVersion() != null )
130            {
131                serializer.startTag( NAMESPACE, "version" ).text( dependency.getVersion() ).endTag( NAMESPACE, "version" );
132            }
133            if ( ( dependency.getType() != null ) && !dependency.getType().equals( "jar" ) )
134            {
135                serializer.startTag( NAMESPACE, "type" ).text( dependency.getType() ).endTag( NAMESPACE, "type" );
136            }
137            serializer.endTag( NAMESPACE, tagName );
138        } //-- void writeDependency( Dependency, String, XmlSerializer )
139    
140        /**
141         * Method writeMojoDescriptor.
142         * 
143         * @param mojoDescriptor
144         * @param serializer
145         * @param tagName
146         * @throws java.io.IOException
147         */
148        private void writeMojoDescriptor( MojoDescriptor mojoDescriptor, String tagName, XmlSerializer serializer )
149            throws java.io.IOException
150        {
151            serializer.startTag( NAMESPACE, tagName );
152            if ( mojoDescriptor.getGoal() != null )
153            {
154                serializer.startTag( NAMESPACE, "goal" ).text( mojoDescriptor.getGoal() ).endTag( NAMESPACE, "goal" );
155            }
156            if ( mojoDescriptor.getDescription() != null )
157            {
158                serializer.startTag( NAMESPACE, "description" ).text( mojoDescriptor.getDescription() ).endTag( NAMESPACE, "description" );
159            }
160            if ( mojoDescriptor.getImplementation() != null )
161            {
162                serializer.startTag( NAMESPACE, "implementation" ).text( mojoDescriptor.getImplementation() ).endTag( NAMESPACE, "implementation" );
163            }
164            if ( ( mojoDescriptor.getLanguage() != null ) && !mojoDescriptor.getLanguage().equals( "java" ) )
165            {
166                serializer.startTag( NAMESPACE, "language" ).text( mojoDescriptor.getLanguage() ).endTag( NAMESPACE, "language" );
167            }
168            if ( mojoDescriptor.getPhase() != null )
169            {
170                serializer.startTag( NAMESPACE, "phase" ).text( mojoDescriptor.getPhase() ).endTag( NAMESPACE, "phase" );
171            }
172            if ( mojoDescriptor.getExecutePhase() != null )
173            {
174                serializer.startTag( NAMESPACE, "executePhase" ).text( mojoDescriptor.getExecutePhase() ).endTag( NAMESPACE, "executePhase" );
175            }
176            if ( mojoDescriptor.getExecuteGoal() != null )
177            {
178                serializer.startTag( NAMESPACE, "executeGoal" ).text( mojoDescriptor.getExecuteGoal() ).endTag( NAMESPACE, "executeGoal" );
179            }
180            if ( mojoDescriptor.getExecuteLifecycle() != null )
181            {
182                serializer.startTag( NAMESPACE, "executeLifecycle" ).text( mojoDescriptor.getExecuteLifecycle() ).endTag( NAMESPACE, "executeLifecycle" );
183            }
184            if ( ( mojoDescriptor.getRequiresDependencyResolution() != null ) && !mojoDescriptor.getRequiresDependencyResolution().equals( "runtime" ) )
185            {
186                serializer.startTag( NAMESPACE, "requiresDependencyResolution" ).text( mojoDescriptor.getRequiresDependencyResolution() ).endTag( NAMESPACE, "requiresDependencyResolution" );
187            }
188            if ( mojoDescriptor.getRequiresDependencyCollection() != null )
189            {
190                serializer.startTag( NAMESPACE, "requiresDependencyCollection" ).text( mojoDescriptor.getRequiresDependencyCollection() ).endTag( NAMESPACE, "requiresDependencyCollection" );
191            }
192            if ( mojoDescriptor.isRequiresDirectInvocation() != false )
193            {
194                serializer.startTag( NAMESPACE, "requiresDirectInvocation" ).text( String.valueOf( mojoDescriptor.isRequiresDirectInvocation() ) ).endTag( NAMESPACE, "requiresDirectInvocation" );
195            }
196            if ( mojoDescriptor.isRequiresProject() != true )
197            {
198                serializer.startTag( NAMESPACE, "requiresProject" ).text( String.valueOf( mojoDescriptor.isRequiresProject() ) ).endTag( NAMESPACE, "requiresProject" );
199            }
200            if ( mojoDescriptor.isRequiresReports() != false )
201            {
202                serializer.startTag( NAMESPACE, "requiresReports" ).text( String.valueOf( mojoDescriptor.isRequiresReports() ) ).endTag( NAMESPACE, "requiresReports" );
203            }
204            if ( mojoDescriptor.isRequiresOnline() != false )
205            {
206                serializer.startTag( NAMESPACE, "requiresOnline" ).text( String.valueOf( mojoDescriptor.isRequiresOnline() ) ).endTag( NAMESPACE, "requiresOnline" );
207            }
208            if ( mojoDescriptor.isAggregator() != false )
209            {
210                serializer.startTag( NAMESPACE, "aggregator" ).text( String.valueOf( mojoDescriptor.isAggregator() ) ).endTag( NAMESPACE, "aggregator" );
211            }
212            if ( mojoDescriptor.isInheritedByDefault() != true )
213            {
214                serializer.startTag( NAMESPACE, "inheritedByDefault" ).text( String.valueOf( mojoDescriptor.isInheritedByDefault() ) ).endTag( NAMESPACE, "inheritedByDefault" );
215            }
216            if ( mojoDescriptor.isThreadSafe() != false )
217            {
218                serializer.startTag( NAMESPACE, "threadSafe" ).text( String.valueOf( mojoDescriptor.isThreadSafe() ) ).endTag( NAMESPACE, "threadSafe" );
219            }
220            if ( ( mojoDescriptor.getInstantiationStrategy() != null ) && !mojoDescriptor.getInstantiationStrategy().equals( "per-lookup" ) )
221            {
222                serializer.startTag( NAMESPACE, "instantiationStrategy" ).text( mojoDescriptor.getInstantiationStrategy() ).endTag( NAMESPACE, "instantiationStrategy" );
223            }
224            if ( ( mojoDescriptor.getExecutionStrategy() != null ) && !mojoDescriptor.getExecutionStrategy().equals( "once-per-session" ) )
225            {
226                serializer.startTag( NAMESPACE, "executionStrategy" ).text( mojoDescriptor.getExecutionStrategy() ).endTag( NAMESPACE, "executionStrategy" );
227            }
228            if ( mojoDescriptor.getSince() != null )
229            {
230                serializer.startTag( NAMESPACE, "since" ).text( mojoDescriptor.getSince() ).endTag( NAMESPACE, "since" );
231            }
232            if ( mojoDescriptor.getDeprecated() != null )
233            {
234                serializer.startTag( NAMESPACE, "deprecated" ).text( mojoDescriptor.getDeprecated() ).endTag( NAMESPACE, "deprecated" );
235            }
236            if ( mojoDescriptor.getConfigurator() != null )
237            {
238                serializer.startTag( NAMESPACE, "configurator" ).text( mojoDescriptor.getConfigurator() ).endTag( NAMESPACE, "configurator" );
239            }
240            if ( mojoDescriptor.getComposer() != null )
241            {
242                serializer.startTag( NAMESPACE, "composer" ).text( mojoDescriptor.getComposer() ).endTag( NAMESPACE, "composer" );
243            }
244            if ( ( mojoDescriptor.getParameters() != null ) && ( mojoDescriptor.getParameters().size() > 0 ) )
245            {
246                serializer.startTag( NAMESPACE, "parameters" );
247                for ( Iterator iter = mojoDescriptor.getParameters().iterator(); iter.hasNext(); )
248                {
249                    Parameter o = (Parameter) iter.next();
250                    writeParameter( o, "parameter", serializer );
251                }
252                serializer.endTag( NAMESPACE, "parameters" );
253            }
254            if ( ( mojoDescriptor.getConfiguration() != null ) && ( mojoDescriptor.getConfiguration().size() > 0 ) )
255            {
256                serializer.startTag( NAMESPACE, "configuration" );
257                for ( Iterator iter = mojoDescriptor.getConfiguration().iterator(); iter.hasNext(); )
258                {
259                    Configuration o = (Configuration) iter.next();
260                    writeConfiguration( o, "paramName", serializer );
261                }
262                serializer.endTag( NAMESPACE, "configuration" );
263            }
264            if ( ( mojoDescriptor.getRequirements() != null ) && ( mojoDescriptor.getRequirements().size() > 0 ) )
265            {
266                serializer.startTag( NAMESPACE, "requirements" );
267                for ( Iterator iter = mojoDescriptor.getRequirements().iterator(); iter.hasNext(); )
268                {
269                    Requirement o = (Requirement) iter.next();
270                    writeRequirement( o, "requirement", serializer );
271                }
272                serializer.endTag( NAMESPACE, "requirements" );
273            }
274            serializer.endTag( NAMESPACE, tagName );
275        } //-- void writeMojoDescriptor( MojoDescriptor, String, XmlSerializer )
276    
277        /**
278         * Method writeParameter.
279         * 
280         * @param parameter
281         * @param serializer
282         * @param tagName
283         * @throws java.io.IOException
284         */
285        private void writeParameter( Parameter parameter, String tagName, XmlSerializer serializer )
286            throws java.io.IOException
287        {
288            serializer.startTag( NAMESPACE, tagName );
289            if ( parameter.getName() != null )
290            {
291                serializer.startTag( NAMESPACE, "name" ).text( parameter.getName() ).endTag( NAMESPACE, "name" );
292            }
293            if ( parameter.getAlias() != null )
294            {
295                serializer.startTag( NAMESPACE, "alias" ).text( parameter.getAlias() ).endTag( NAMESPACE, "alias" );
296            }
297            if ( parameter.getType() != null )
298            {
299                serializer.startTag( NAMESPACE, "type" ).text( parameter.getType() ).endTag( NAMESPACE, "type" );
300            }
301            if ( parameter.isRequired() != false )
302            {
303                serializer.startTag( NAMESPACE, "required" ).text( String.valueOf( parameter.isRequired() ) ).endTag( NAMESPACE, "required" );
304            }
305            if ( parameter.isEditable() != true )
306            {
307                serializer.startTag( NAMESPACE, "editable" ).text( String.valueOf( parameter.isEditable() ) ).endTag( NAMESPACE, "editable" );
308            }
309            if ( parameter.getImplementation() != null )
310            {
311                serializer.startTag( NAMESPACE, "implementation" ).text( parameter.getImplementation() ).endTag( NAMESPACE, "implementation" );
312            }
313            if ( parameter.getDescription() != null )
314            {
315                serializer.startTag( NAMESPACE, "description" ).text( parameter.getDescription() ).endTag( NAMESPACE, "description" );
316            }
317            if ( parameter.getSince() != null )
318            {
319                serializer.startTag( NAMESPACE, "since" ).text( parameter.getSince() ).endTag( NAMESPACE, "since" );
320            }
321            if ( parameter.getDeprecated() != null )
322            {
323                serializer.startTag( NAMESPACE, "deprecated" ).text( parameter.getDeprecated() ).endTag( NAMESPACE, "deprecated" );
324            }
325            serializer.endTag( NAMESPACE, tagName );
326        } //-- void writeParameter( Parameter, String, XmlSerializer )
327    
328        /**
329         * Method writePluginDescriptor.
330         * 
331         * @param pluginDescriptor
332         * @param serializer
333         * @param tagName
334         * @throws java.io.IOException
335         */
336        private void writePluginDescriptor( PluginDescriptor pluginDescriptor, String tagName, XmlSerializer serializer )
337            throws java.io.IOException
338        {
339            serializer.setPrefix( "", "http://maven.apache.org/PLUGIN/1.0.0" );
340            serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
341            serializer.startTag( NAMESPACE, tagName );
342            serializer.attribute( "", "xsi:schemaLocation", "http://maven.apache.org/PLUGIN/1.0.0 http://maven.apache.org/xsd/plugin-1.0.0.xsd" );
343            if ( pluginDescriptor.getDescription() != null )
344            {
345                serializer.startTag( NAMESPACE, "description" ).text( pluginDescriptor.getDescription() ).endTag( NAMESPACE, "description" );
346            }
347            if ( pluginDescriptor.getGroupId() != null )
348            {
349                serializer.startTag( NAMESPACE, "groupId" ).text( pluginDescriptor.getGroupId() ).endTag( NAMESPACE, "groupId" );
350            }
351            if ( pluginDescriptor.getArtifactId() != null )
352            {
353                serializer.startTag( NAMESPACE, "artifactId" ).text( pluginDescriptor.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
354            }
355            if ( pluginDescriptor.getVersion() != null )
356            {
357                serializer.startTag( NAMESPACE, "version" ).text( pluginDescriptor.getVersion() ).endTag( NAMESPACE, "version" );
358            }
359            if ( pluginDescriptor.getGoalPrefix() != null )
360            {
361                serializer.startTag( NAMESPACE, "goalPrefix" ).text( pluginDescriptor.getGoalPrefix() ).endTag( NAMESPACE, "goalPrefix" );
362            }
363            if ( pluginDescriptor.isIsolatedRealm() != false )
364            {
365                serializer.startTag( NAMESPACE, "isolatedRealm" ).text( String.valueOf( pluginDescriptor.isIsolatedRealm() ) ).endTag( NAMESPACE, "isolatedRealm" );
366            }
367            if ( pluginDescriptor.isInheritedByDefault() != true )
368            {
369                serializer.startTag( NAMESPACE, "inheritedByDefault" ).text( String.valueOf( pluginDescriptor.isInheritedByDefault() ) ).endTag( NAMESPACE, "inheritedByDefault" );
370            }
371            if ( ( pluginDescriptor.getMojos() != null ) && ( pluginDescriptor.getMojos().size() > 0 ) )
372            {
373                serializer.startTag( NAMESPACE, "mojos" );
374                for ( Iterator iter = pluginDescriptor.getMojos().iterator(); iter.hasNext(); )
375                {
376                    MojoDescriptor o = (MojoDescriptor) iter.next();
377                    writeMojoDescriptor( o, "mojo", serializer );
378                }
379                serializer.endTag( NAMESPACE, "mojos" );
380            }
381            if ( ( pluginDescriptor.getDependencies() != null ) && ( pluginDescriptor.getDependencies().size() > 0 ) )
382            {
383                serializer.startTag( NAMESPACE, "dependencies" );
384                for ( Iterator iter = pluginDescriptor.getDependencies().iterator(); iter.hasNext(); )
385                {
386                    Dependency o = (Dependency) iter.next();
387                    writeDependency( o, "dependency", serializer );
388                }
389                serializer.endTag( NAMESPACE, "dependencies" );
390            }
391            serializer.endTag( NAMESPACE, tagName );
392        } //-- void writePluginDescriptor( PluginDescriptor, String, XmlSerializer )
393    
394        /**
395         * Method writeRequirement.
396         * 
397         * @param requirement
398         * @param serializer
399         * @param tagName
400         * @throws java.io.IOException
401         */
402        private void writeRequirement( Requirement requirement, String tagName, XmlSerializer serializer )
403            throws java.io.IOException
404        {
405            serializer.startTag( NAMESPACE, tagName );
406            if ( requirement.getRole() != null )
407            {
408                serializer.startTag( NAMESPACE, "role" ).text( requirement.getRole() ).endTag( NAMESPACE, "role" );
409            }
410            if ( requirement.getRoleHint() != null )
411            {
412                serializer.startTag( NAMESPACE, "role-hint" ).text( requirement.getRoleHint() ).endTag( NAMESPACE, "role-hint" );
413            }
414            if ( requirement.getFieldName() != null )
415            {
416                serializer.startTag( NAMESPACE, "field-name" ).text( requirement.getFieldName() ).endTag( NAMESPACE, "field-name" );
417            }
418            serializer.endTag( NAMESPACE, tagName );
419        } //-- void writeRequirement( Requirement, String, XmlSerializer )
420    
421    }