1
2
3
4
5
6 package org.apache.maven.cli.internal.extension.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.cli.internal.extension.model.CoreExtension;
16 import org.apache.maven.cli.internal.extension.model.CoreExtensions;
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 CoreExtensionsXpp3Writer
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, CoreExtensions coreExtensions )
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( coreExtensions.getModelEncoding(), null );
73 writeCoreExtensions( coreExtensions, "extensions", serializer );
74 serializer.endDocument();
75 }
76
77
78
79
80
81
82
83
84 public void write( OutputStream stream, CoreExtensions coreExtensions )
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, coreExtensions.getModelEncoding() );
91 serializer.startDocument( coreExtensions.getModelEncoding(), null );
92 writeCoreExtensions( coreExtensions, "extensions", serializer );
93 serializer.endDocument();
94 }
95
96
97
98
99
100
101
102
103
104 private void writeCoreExtension( CoreExtension coreExtension, String tagName, XmlSerializer serializer )
105 throws java.io.IOException
106 {
107 serializer.startTag( NAMESPACE, tagName );
108 if ( coreExtension.getGroupId() != null )
109 {
110 serializer.startTag( NAMESPACE, "groupId" ).text( coreExtension.getGroupId() ).endTag( NAMESPACE, "groupId" );
111 }
112 if ( coreExtension.getArtifactId() != null )
113 {
114 serializer.startTag( NAMESPACE, "artifactId" ).text( coreExtension.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
115 }
116 if ( coreExtension.getVersion() != null )
117 {
118 serializer.startTag( NAMESPACE, "version" ).text( coreExtension.getVersion() ).endTag( NAMESPACE, "version" );
119 }
120 serializer.endTag( NAMESPACE, tagName );
121 }
122
123
124
125
126
127
128
129
130
131 private void writeCoreExtensions( CoreExtensions coreExtensions, String tagName, XmlSerializer serializer )
132 throws java.io.IOException
133 {
134 if ( this.fileComment != null )
135 {
136 serializer.comment(this.fileComment);
137 }
138 serializer.setPrefix( "", "http://maven.apache.org/EXTENSIONS/1.0.0" );
139 serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
140 serializer.startTag( NAMESPACE, tagName );
141 serializer.attribute( "", "xsi:schemaLocation", "http://maven.apache.org/EXTENSIONS/1.0.0 http://maven.apache.org/xsd/core-extensions-1.0.0.xsd" );
142 if ( ( coreExtensions.getExtensions() != null ) && ( coreExtensions.getExtensions().size() > 0 ) )
143 {
144 for ( Iterator iter = coreExtensions.getExtensions().iterator(); iter.hasNext(); )
145 {
146 CoreExtension o = (CoreExtension) iter.next();
147 writeCoreExtension( o, "extension", serializer );
148 }
149 }
150 serializer.endTag( NAMESPACE, tagName );
151 }
152
153 }