1
2
3
4
5
6 package org.apache.maven.usability.plugin.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.usability.plugin.Expression;
16 import org.apache.maven.usability.plugin.ExpressionDocumentation;
17 import org.codehaus.plexus.util.xml.pull.MXSerializer;
18 import org.codehaus.plexus.util.xml.pull.XmlSerializer;
19
20
21
22
23
24
25 @SuppressWarnings( "all" )
26 public class ParamdocXpp3Writer
27 {
28
29
30
31
32
33
34
35
36 private static final String NAMESPACE = null;
37
38
39
40
41 private String fileComment = null;
42
43
44
45
46
47
48
49
50
51
52
53 public void setFileComment( String fileComment )
54 {
55 this.fileComment = fileComment;
56 }
57
58
59
60
61
62
63
64
65 public void write( Writer writer, ExpressionDocumentation expressionDocumentation )
66 throws java.io.IOException
67 {
68 XmlSerializer serializer = new MXSerializer();
69 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
70 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
71 serializer.setOutput( writer );
72 serializer.startDocument( expressionDocumentation.getModelEncoding(), null );
73 writeExpressionDocumentation( expressionDocumentation, "paramdoc", serializer );
74 serializer.endDocument();
75 }
76
77
78
79
80
81
82
83
84 public void write( OutputStream stream, ExpressionDocumentation expressionDocumentation )
85 throws java.io.IOException
86 {
87 XmlSerializer serializer = new MXSerializer();
88 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
89 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
90 serializer.setOutput( stream, expressionDocumentation.getModelEncoding() );
91 serializer.startDocument( expressionDocumentation.getModelEncoding(), null );
92 writeExpressionDocumentation( expressionDocumentation, "paramdoc", serializer );
93 serializer.endDocument();
94 }
95
96
97
98
99
100
101
102
103
104 private void writeExpression( Expression expression, String tagName, XmlSerializer serializer )
105 throws java.io.IOException
106 {
107 serializer.startTag( NAMESPACE, tagName );
108 if ( expression.getSyntax() != null )
109 {
110 serializer.startTag( NAMESPACE, "syntax" ).text( expression.getSyntax() ).endTag( NAMESPACE, "syntax" );
111 }
112 if ( expression.getDescription() != null )
113 {
114 serializer.startTag( NAMESPACE, "description" ).text( expression.getDescription() ).endTag( NAMESPACE, "description" );
115 }
116 if ( expression.getConfiguration() != null )
117 {
118 serializer.startTag( NAMESPACE, "configuration" ).text( expression.getConfiguration() ).endTag( NAMESPACE, "configuration" );
119 }
120 if ( ( expression.getCliOptions() != null ) && ( expression.getCliOptions().size() > 0 ) )
121 {
122 serializer.startTag( NAMESPACE, "cliOptions" );
123 for ( Iterator iter = expression.getCliOptions().keySet().iterator(); iter.hasNext(); )
124 {
125 String key = (String) iter.next();
126 String value = (String) expression.getCliOptions().get( key );
127 serializer.startTag( NAMESPACE, "cliOption" );
128 serializer.startTag( NAMESPACE, "key" ).text( key ).endTag( NAMESPACE, "key" );
129 serializer.startTag( NAMESPACE, "value" ).text( value ).endTag( NAMESPACE, "value" );
130 serializer.endTag( NAMESPACE, "cliOption" );
131 }
132 serializer.endTag( NAMESPACE, "cliOptions" );
133 }
134 if ( ( expression.getApiMethods() != null ) && ( expression.getApiMethods().size() > 0 ) )
135 {
136 serializer.startTag( NAMESPACE, "apiMethods" );
137 for ( Iterator iter = expression.getApiMethods().keySet().iterator(); iter.hasNext(); )
138 {
139 String key = (String) iter.next();
140 String value = (String) expression.getApiMethods().get( key );
141 serializer.startTag( NAMESPACE, "apiMethod" );
142 serializer.startTag( NAMESPACE, "key" ).text( key ).endTag( NAMESPACE, "key" );
143 serializer.startTag( NAMESPACE, "value" ).text( value ).endTag( NAMESPACE, "value" );
144 serializer.endTag( NAMESPACE, "apiMethod" );
145 }
146 serializer.endTag( NAMESPACE, "apiMethods" );
147 }
148 if ( expression.getDeprecation() != null )
149 {
150 serializer.startTag( NAMESPACE, "deprecation" ).text( expression.getDeprecation() ).endTag( NAMESPACE, "deprecation" );
151 }
152 if ( expression.getBan() != null )
153 {
154 serializer.startTag( NAMESPACE, "ban" ).text( expression.getBan() ).endTag( NAMESPACE, "ban" );
155 }
156 if ( expression.isEditable() != true )
157 {
158 serializer.startTag( NAMESPACE, "editable" ).text( String.valueOf( expression.isEditable() ) ).endTag( NAMESPACE, "editable" );
159 }
160 serializer.endTag( NAMESPACE, tagName );
161 }
162
163
164
165
166
167
168
169
170
171 private void writeExpressionDocumentation( ExpressionDocumentation expressionDocumentation, String tagName, XmlSerializer serializer )
172 throws java.io.IOException
173 {
174 if ( this.fileComment != null )
175 {
176 serializer.comment(this.fileComment);
177 }
178 serializer.setPrefix( "", "http://maven.apache.org/PARAMDOC/1.0.0" );
179 serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
180 serializer.startTag( NAMESPACE, tagName );
181 serializer.attribute( "", "xsi:schemaLocation", "http://maven.apache.org/PARAMDOC/1.0.0 http://maven.apache.org/xsd/paramdoc-1.0.0.xsd" );
182 if ( ( expressionDocumentation.getExpressions() != null ) && ( expressionDocumentation.getExpressions().size() > 0 ) )
183 {
184 serializer.startTag( NAMESPACE, "expressions" );
185 for ( Iterator iter = expressionDocumentation.getExpressions().iterator(); iter.hasNext(); )
186 {
187 Expression o = (Expression) iter.next();
188 writeExpression( o, "expression", serializer );
189 }
190 serializer.endTag( NAMESPACE, "expressions" );
191 }
192 serializer.endTag( NAMESPACE, tagName );
193 }
194
195 }