1
2
3
4
5
6 package org.apache.maven.shared.model.fileset.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.shared.model.fileset.FileSet;
16 import org.apache.maven.shared.model.fileset.Mapper;
17 import org.apache.maven.shared.model.fileset.SetBase;
18 import org.codehaus.plexus.util.xml.pull.MXSerializer;
19 import org.codehaus.plexus.util.xml.pull.XmlSerializer;
20
21
22
23
24
25
26 @SuppressWarnings( "all" )
27 public class FileSetXpp3Writer
28 {
29
30
31
32
33
34
35
36
37 private static final String NAMESPACE = null;
38
39
40
41
42 private String fileComment = null;
43
44
45
46
47
48
49
50
51
52
53
54 public void setFileComment( String fileComment )
55 {
56 this.fileComment = fileComment;
57 }
58
59
60
61
62
63
64
65
66 public void write( Writer writer, FileSet fileSet )
67 throws java.io.IOException
68 {
69 XmlSerializer serializer = new MXSerializer();
70 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
71 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
72 serializer.setOutput( writer );
73 serializer.startDocument( fileSet.getModelEncoding(), null );
74 writeFileSet( fileSet, "fileSet", serializer );
75 serializer.endDocument();
76 }
77
78
79
80
81
82
83
84
85 public void write( OutputStream stream, FileSet fileSet )
86 throws java.io.IOException
87 {
88 XmlSerializer serializer = new MXSerializer();
89 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
90 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
91 serializer.setOutput( stream, fileSet.getModelEncoding() );
92 serializer.startDocument( fileSet.getModelEncoding(), null );
93 writeFileSet( fileSet, "fileSet", serializer );
94 serializer.endDocument();
95 }
96
97
98
99
100
101
102
103
104
105 private void writeFileSet( FileSet fileSet, String tagName, XmlSerializer serializer )
106 throws java.io.IOException
107 {
108 serializer.startTag( NAMESPACE, tagName );
109 if ( fileSet.getDirectory() != null )
110 {
111 serializer.startTag( NAMESPACE, "directory" ).text( fileSet.getDirectory() ).endTag( NAMESPACE, "directory" );
112 }
113 if ( fileSet.getLineEnding() != null )
114 {
115 serializer.startTag( NAMESPACE, "lineEnding" ).text( fileSet.getLineEnding() ).endTag( NAMESPACE, "lineEnding" );
116 }
117 if ( fileSet.isFollowSymlinks() != false )
118 {
119 serializer.startTag( NAMESPACE, "followSymlinks" ).text( String.valueOf( fileSet.isFollowSymlinks() ) ).endTag( NAMESPACE, "followSymlinks" );
120 }
121 if ( fileSet.getOutputDirectory() != null )
122 {
123 serializer.startTag( NAMESPACE, "outputDirectory" ).text( fileSet.getOutputDirectory() ).endTag( NAMESPACE, "outputDirectory" );
124 }
125 if ( fileSet.isUseDefaultExcludes() != true )
126 {
127 serializer.startTag( NAMESPACE, "useDefaultExcludes" ).text( String.valueOf( fileSet.isUseDefaultExcludes() ) ).endTag( NAMESPACE, "useDefaultExcludes" );
128 }
129 if ( ( fileSet.getIncludes() != null ) && ( fileSet.getIncludes().size() > 0 ) )
130 {
131 serializer.startTag( NAMESPACE, "includes" );
132 for ( Iterator iter = fileSet.getIncludes().iterator(); iter.hasNext(); )
133 {
134 String include = (String) iter.next();
135 serializer.startTag( NAMESPACE, "include" ).text( include ).endTag( NAMESPACE, "include" );
136 }
137 serializer.endTag( NAMESPACE, "includes" );
138 }
139 if ( ( fileSet.getExcludes() != null ) && ( fileSet.getExcludes().size() > 0 ) )
140 {
141 serializer.startTag( NAMESPACE, "excludes" );
142 for ( Iterator iter = fileSet.getExcludes().iterator(); iter.hasNext(); )
143 {
144 String exclude = (String) iter.next();
145 serializer.startTag( NAMESPACE, "exclude" ).text( exclude ).endTag( NAMESPACE, "exclude" );
146 }
147 serializer.endTag( NAMESPACE, "excludes" );
148 }
149 if ( ( fileSet.getFileMode() != null ) && !fileSet.getFileMode().equals( "0644" ) )
150 {
151 serializer.startTag( NAMESPACE, "fileMode" ).text( fileSet.getFileMode() ).endTag( NAMESPACE, "fileMode" );
152 }
153 if ( ( fileSet.getDirectoryMode() != null ) && !fileSet.getDirectoryMode().equals( "0755" ) )
154 {
155 serializer.startTag( NAMESPACE, "directoryMode" ).text( fileSet.getDirectoryMode() ).endTag( NAMESPACE, "directoryMode" );
156 }
157 if ( fileSet.getMapper() != null )
158 {
159 writeMapper( (Mapper) fileSet.getMapper(), "mapper", serializer );
160 }
161 serializer.endTag( NAMESPACE, tagName );
162 }
163
164
165
166
167
168
169
170
171
172 private void writeMapper( Mapper mapper, String tagName, XmlSerializer serializer )
173 throws java.io.IOException
174 {
175 serializer.startTag( NAMESPACE, tagName );
176 if ( ( mapper.getType() != null ) && !mapper.getType().equals( "identity" ) )
177 {
178 serializer.startTag( NAMESPACE, "type" ).text( mapper.getType() ).endTag( NAMESPACE, "type" );
179 }
180 if ( mapper.getFrom() != null )
181 {
182 serializer.startTag( NAMESPACE, "from" ).text( mapper.getFrom() ).endTag( NAMESPACE, "from" );
183 }
184 if ( mapper.getTo() != null )
185 {
186 serializer.startTag( NAMESPACE, "to" ).text( mapper.getTo() ).endTag( NAMESPACE, "to" );
187 }
188 if ( mapper.getClassname() != null )
189 {
190 serializer.startTag( NAMESPACE, "classname" ).text( mapper.getClassname() ).endTag( NAMESPACE, "classname" );
191 }
192 serializer.endTag( NAMESPACE, tagName );
193 }
194
195
196
197
198
199
200
201
202
203 private void writeSetBase( SetBase setBase, String tagName, XmlSerializer serializer )
204 throws java.io.IOException
205 {
206 serializer.startTag( NAMESPACE, tagName );
207 if ( setBase.isFollowSymlinks() != false )
208 {
209 serializer.startTag( NAMESPACE, "followSymlinks" ).text( String.valueOf( setBase.isFollowSymlinks() ) ).endTag( NAMESPACE, "followSymlinks" );
210 }
211 if ( setBase.getOutputDirectory() != null )
212 {
213 serializer.startTag( NAMESPACE, "outputDirectory" ).text( setBase.getOutputDirectory() ).endTag( NAMESPACE, "outputDirectory" );
214 }
215 if ( setBase.isUseDefaultExcludes() != true )
216 {
217 serializer.startTag( NAMESPACE, "useDefaultExcludes" ).text( String.valueOf( setBase.isUseDefaultExcludes() ) ).endTag( NAMESPACE, "useDefaultExcludes" );
218 }
219 if ( ( setBase.getIncludes() != null ) && ( setBase.getIncludes().size() > 0 ) )
220 {
221 serializer.startTag( NAMESPACE, "includes" );
222 for ( Iterator iter = setBase.getIncludes().iterator(); iter.hasNext(); )
223 {
224 String include = (String) iter.next();
225 serializer.startTag( NAMESPACE, "include" ).text( include ).endTag( NAMESPACE, "include" );
226 }
227 serializer.endTag( NAMESPACE, "includes" );
228 }
229 if ( ( setBase.getExcludes() != null ) && ( setBase.getExcludes().size() > 0 ) )
230 {
231 serializer.startTag( NAMESPACE, "excludes" );
232 for ( Iterator iter = setBase.getExcludes().iterator(); iter.hasNext(); )
233 {
234 String exclude = (String) iter.next();
235 serializer.startTag( NAMESPACE, "exclude" ).text( exclude ).endTag( NAMESPACE, "exclude" );
236 }
237 serializer.endTag( NAMESPACE, "excludes" );
238 }
239 if ( ( setBase.getFileMode() != null ) && !setBase.getFileMode().equals( "0644" ) )
240 {
241 serializer.startTag( NAMESPACE, "fileMode" ).text( setBase.getFileMode() ).endTag( NAMESPACE, "fileMode" );
242 }
243 if ( ( setBase.getDirectoryMode() != null ) && !setBase.getDirectoryMode().equals( "0755" ) )
244 {
245 serializer.startTag( NAMESPACE, "directoryMode" ).text( setBase.getDirectoryMode() ).endTag( NAMESPACE, "directoryMode" );
246 }
247 if ( setBase.getMapper() != null )
248 {
249 writeMapper( (Mapper) setBase.getMapper(), "mapper", serializer );
250 }
251 serializer.endTag( NAMESPACE, tagName );
252 }
253
254 }