1
2
3
4
5
6
7
8
9
10
11 package org.apache.maven.tools.plugin.extractor.model.io.xpp3;
12
13
14
15
16
17 import java.io.OutputStream;
18 import java.io.Writer;
19 import java.util.Iterator;
20 import org.apache.maven.tools.plugin.extractor.model.Component;
21 import org.apache.maven.tools.plugin.extractor.model.LifecycleExecution;
22 import org.apache.maven.tools.plugin.extractor.model.Mojo;
23 import org.apache.maven.tools.plugin.extractor.model.Parameter;
24 import org.apache.maven.tools.plugin.extractor.model.PluginMetadata;
25 import org.codehaus.plexus.util.xml.pull.MXSerializer;
26 import org.codehaus.plexus.util.xml.pull.XmlSerializer;
27
28
29
30
31
32
33 @SuppressWarnings( "all" )
34 public class PluginMetadataXpp3Writer
35 {
36
37
38
39
40
41
42
43
44 private static final String NAMESPACE = null;
45
46
47
48
49 private String fileComment = null;
50
51
52
53
54
55
56
57
58
59
60
61 public void setFileComment( String fileComment )
62 {
63 this.fileComment = fileComment;
64 }
65
66
67
68
69
70
71
72
73 public void write( Writer writer, PluginMetadata pluginMetadata )
74 throws java.io.IOException
75 {
76 XmlSerializer serializer = new MXSerializer();
77 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
78 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
79 serializer.setOutput( writer );
80 serializer.startDocument( pluginMetadata.getModelEncoding(), null );
81 writePluginMetadata( pluginMetadata, "pluginMetadata", serializer );
82 serializer.endDocument();
83 }
84
85
86
87
88
89
90
91
92 public void write( OutputStream stream, PluginMetadata pluginMetadata )
93 throws java.io.IOException
94 {
95 XmlSerializer serializer = new MXSerializer();
96 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
97 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
98 serializer.setOutput( stream, pluginMetadata.getModelEncoding() );
99 serializer.startDocument( pluginMetadata.getModelEncoding(), null );
100 writePluginMetadata( pluginMetadata, "pluginMetadata", serializer );
101 serializer.endDocument();
102 }
103
104
105
106
107
108
109
110
111
112 private void writeComponent( Component component, String tagName, XmlSerializer serializer )
113 throws java.io.IOException
114 {
115 serializer.startTag( NAMESPACE, tagName );
116 if ( component.getRole() != null )
117 {
118 serializer.startTag( NAMESPACE, "role" ).text( component.getRole() ).endTag( NAMESPACE, "role" );
119 }
120 if ( component.getHint() != null )
121 {
122 serializer.startTag( NAMESPACE, "hint" ).text( component.getHint() ).endTag( NAMESPACE, "hint" );
123 }
124 serializer.endTag( NAMESPACE, tagName );
125 }
126
127
128
129
130
131
132
133
134
135 private void writeLifecycleExecution( LifecycleExecution lifecycleExecution, String tagName, XmlSerializer serializer )
136 throws java.io.IOException
137 {
138 serializer.startTag( NAMESPACE, tagName );
139 if ( lifecycleExecution.getLifecycle() != null )
140 {
141 serializer.startTag( NAMESPACE, "lifecycle" ).text( lifecycleExecution.getLifecycle() ).endTag( NAMESPACE, "lifecycle" );
142 }
143 if ( lifecycleExecution.getPhase() != null )
144 {
145 serializer.startTag( NAMESPACE, "phase" ).text( lifecycleExecution.getPhase() ).endTag( NAMESPACE, "phase" );
146 }
147 if ( lifecycleExecution.getGoal() != null )
148 {
149 serializer.startTag( NAMESPACE, "goal" ).text( lifecycleExecution.getGoal() ).endTag( NAMESPACE, "goal" );
150 }
151 serializer.endTag( NAMESPACE, tagName );
152 }
153
154
155
156
157
158
159
160
161
162 private void writeMojo( Mojo mojo, String tagName, XmlSerializer serializer )
163 throws java.io.IOException
164 {
165 serializer.startTag( NAMESPACE, tagName );
166 if ( mojo.getGoal() != null )
167 {
168 serializer.startTag( NAMESPACE, "goal" ).text( mojo.getGoal() ).endTag( NAMESPACE, "goal" );
169 }
170 if ( mojo.getPhase() != null )
171 {
172 serializer.startTag( NAMESPACE, "phase" ).text( mojo.getPhase() ).endTag( NAMESPACE, "phase" );
173 }
174 if ( mojo.isAggregator() != false )
175 {
176 serializer.startTag( NAMESPACE, "aggregator" ).text( String.valueOf( mojo.isAggregator() ) ).endTag( NAMESPACE, "aggregator" );
177 }
178 if ( mojo.getRequiresDependencyResolution() != null )
179 {
180 serializer.startTag( NAMESPACE, "requiresDependencyResolution" ).text( mojo.getRequiresDependencyResolution() ).endTag( NAMESPACE, "requiresDependencyResolution" );
181 }
182 if ( mojo.isRequiresProject() != false )
183 {
184 serializer.startTag( NAMESPACE, "requiresProject" ).text( String.valueOf( mojo.isRequiresProject() ) ).endTag( NAMESPACE, "requiresProject" );
185 }
186 if ( mojo.isRequiresReports() != false )
187 {
188 serializer.startTag( NAMESPACE, "requiresReports" ).text( String.valueOf( mojo.isRequiresReports() ) ).endTag( NAMESPACE, "requiresReports" );
189 }
190 if ( mojo.isRequiresOnline() != false )
191 {
192 serializer.startTag( NAMESPACE, "requiresOnline" ).text( String.valueOf( mojo.isRequiresOnline() ) ).endTag( NAMESPACE, "requiresOnline" );
193 }
194 if ( mojo.isInheritByDefault() != false )
195 {
196 serializer.startTag( NAMESPACE, "inheritByDefault" ).text( String.valueOf( mojo.isInheritByDefault() ) ).endTag( NAMESPACE, "inheritByDefault" );
197 }
198 if ( mojo.isRequiresDirectInvocation() != false )
199 {
200 serializer.startTag( NAMESPACE, "requiresDirectInvocation" ).text( String.valueOf( mojo.isRequiresDirectInvocation() ) ).endTag( NAMESPACE, "requiresDirectInvocation" );
201 }
202 if ( mojo.getExecution() != null )
203 {
204 writeLifecycleExecution( (LifecycleExecution) mojo.getExecution(), "execution", serializer );
205 }
206 if ( ( mojo.getComponents() != null ) && ( mojo.getComponents().size() > 0 ) )
207 {
208 serializer.startTag( NAMESPACE, "components" );
209 for ( Iterator iter = mojo.getComponents().iterator(); iter.hasNext(); )
210 {
211 Component o = (Component) iter.next();
212 writeComponent( o, "component", serializer );
213 }
214 serializer.endTag( NAMESPACE, "components" );
215 }
216 if ( ( mojo.getParameters() != null ) && ( mojo.getParameters().size() > 0 ) )
217 {
218 serializer.startTag( NAMESPACE, "parameters" );
219 for ( Iterator iter = mojo.getParameters().iterator(); iter.hasNext(); )
220 {
221 Parameter o = (Parameter) iter.next();
222 writeParameter( o, "parameter", serializer );
223 }
224 serializer.endTag( NAMESPACE, "parameters" );
225 }
226 if ( mojo.getDescription() != null )
227 {
228 serializer.startTag( NAMESPACE, "description" ).text( mojo.getDescription() ).endTag( NAMESPACE, "description" );
229 }
230 if ( mojo.getDeprecation() != null )
231 {
232 serializer.startTag( NAMESPACE, "deprecated" ).text( mojo.getDeprecation() ).endTag( NAMESPACE, "deprecated" );
233 }
234 if ( mojo.getSince() != null )
235 {
236 serializer.startTag( NAMESPACE, "since" ).text( mojo.getSince() ).endTag( NAMESPACE, "since" );
237 }
238 if ( mojo.getCall() != null )
239 {
240 serializer.startTag( NAMESPACE, "call" ).text( mojo.getCall() ).endTag( NAMESPACE, "call" );
241 }
242 serializer.endTag( NAMESPACE, tagName );
243 }
244
245
246
247
248
249
250
251
252
253 private void writeParameter( Parameter parameter, String tagName, XmlSerializer serializer )
254 throws java.io.IOException
255 {
256 serializer.startTag( NAMESPACE, tagName );
257 if ( parameter.getName() != null )
258 {
259 serializer.startTag( NAMESPACE, "name" ).text( parameter.getName() ).endTag( NAMESPACE, "name" );
260 }
261 if ( parameter.getAlias() != null )
262 {
263 serializer.startTag( NAMESPACE, "alias" ).text( parameter.getAlias() ).endTag( NAMESPACE, "alias" );
264 }
265 if ( parameter.getProperty() != null )
266 {
267 serializer.startTag( NAMESPACE, "property" ).text( parameter.getProperty() ).endTag( NAMESPACE, "property" );
268 }
269 if ( parameter.isRequired() != false )
270 {
271 serializer.startTag( NAMESPACE, "required" ).text( String.valueOf( parameter.isRequired() ) ).endTag( NAMESPACE, "required" );
272 }
273 if ( parameter.isReadonly() != false )
274 {
275 serializer.startTag( NAMESPACE, "readonly" ).text( String.valueOf( parameter.isReadonly() ) ).endTag( NAMESPACE, "readonly" );
276 }
277 if ( parameter.getExpression() != null )
278 {
279 serializer.startTag( NAMESPACE, "expression" ).text( parameter.getExpression() ).endTag( NAMESPACE, "expression" );
280 }
281 if ( parameter.getDefaultValue() != null )
282 {
283 serializer.startTag( NAMESPACE, "defaultValue" ).text( parameter.getDefaultValue() ).endTag( NAMESPACE, "defaultValue" );
284 }
285 if ( parameter.getType() != null )
286 {
287 serializer.startTag( NAMESPACE, "type" ).text( parameter.getType() ).endTag( NAMESPACE, "type" );
288 }
289 if ( parameter.getDescription() != null )
290 {
291 serializer.startTag( NAMESPACE, "description" ).text( parameter.getDescription() ).endTag( NAMESPACE, "description" );
292 }
293 if ( parameter.getDeprecation() != null )
294 {
295 serializer.startTag( NAMESPACE, "deprecated" ).text( parameter.getDeprecation() ).endTag( NAMESPACE, "deprecated" );
296 }
297 if ( parameter.getSince() != null )
298 {
299 serializer.startTag( NAMESPACE, "since" ).text( parameter.getSince() ).endTag( NAMESPACE, "since" );
300 }
301 serializer.endTag( NAMESPACE, tagName );
302 }
303
304
305
306
307
308
309
310
311
312 private void writePluginMetadata( PluginMetadata pluginMetadata, String tagName, XmlSerializer serializer )
313 throws java.io.IOException
314 {
315 serializer.startTag( NAMESPACE, tagName );
316 if ( ( pluginMetadata.getMojos() != null ) && ( pluginMetadata.getMojos().size() > 0 ) )
317 {
318 serializer.startTag( NAMESPACE, "mojos" );
319 for ( Iterator iter = pluginMetadata.getMojos().iterator(); iter.hasNext(); )
320 {
321 Mojo o = (Mojo) iter.next();
322 writeMojo( o, "mojo", serializer );
323 }
324 serializer.endTag( NAMESPACE, "mojos" );
325 }
326 serializer.endTag( NAMESPACE, tagName );
327 }
328
329 }