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