1
2
3
4
5
6 package org.apache.maven.tools.plugin.extractor.model.io.xpp3;
7
8
9
10
11
12 import java.io.OutputStream;
13 import java.io.Writer;
14 import java.util.Iterator;
15 import org.apache.maven.tools.plugin.extractor.model.Component;
16 import org.apache.maven.tools.plugin.extractor.model.LifecycleExecution;
17 import org.apache.maven.tools.plugin.extractor.model.Mojo;
18 import org.apache.maven.tools.plugin.extractor.model.Parameter;
19 import org.apache.maven.tools.plugin.extractor.model.PluginMetadata;
20 import org.codehaus.plexus.util.xml.pull.MXSerializer;
21 import org.codehaus.plexus.util.xml.pull.XmlSerializer;
22
23
24
25
26
27
28 @SuppressWarnings( "all" )
29 public class PluginMetadataXpp3Writer
30 {
31
32
33
34
35
36
37
38
39 private static final String NAMESPACE = null;
40
41
42
43
44 private String fileComment = null;
45
46
47
48
49
50
51
52
53
54
55
56 public void setFileComment( String fileComment )
57 {
58 this.fileComment = fileComment;
59 }
60
61
62
63
64
65
66
67
68 public void write( Writer writer, PluginMetadata pluginMetadata )
69 throws java.io.IOException
70 {
71 XmlSerializer serializer = new MXSerializer();
72 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
73 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
74 serializer.setOutput( writer );
75 serializer.startDocument( pluginMetadata.getModelEncoding(), null );
76 writePluginMetadata( pluginMetadata, "pluginMetadata", serializer );
77 serializer.endDocument();
78 }
79
80
81
82
83
84
85
86
87 public void write( OutputStream stream, PluginMetadata pluginMetadata )
88 throws java.io.IOException
89 {
90 XmlSerializer serializer = new MXSerializer();
91 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
92 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
93 serializer.setOutput( stream, pluginMetadata.getModelEncoding() );
94 serializer.startDocument( pluginMetadata.getModelEncoding(), null );
95 writePluginMetadata( pluginMetadata, "pluginMetadata", serializer );
96 serializer.endDocument();
97 }
98
99
100
101
102
103
104
105
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 }
121
122
123
124
125
126
127
128
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 }
148
149
150
151
152
153
154
155
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 }
239
240
241
242
243
244
245
246
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 }
298
299
300
301
302
303
304
305
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 }
323
324 }