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 if ( ( coreExtension.getClassLoadingStrategy() != null ) && !coreExtension.getClassLoadingStrategy().equals( "self-first" ) )
121 {
122 serializer.startTag( NAMESPACE, "classLoadingStrategy" ).text( coreExtension.getClassLoadingStrategy() ).endTag( NAMESPACE, "classLoadingStrategy" );
123 }
124 serializer.endTag( NAMESPACE, tagName );
125 }
126
127
128
129
130
131
132
133
134
135 private void writeCoreExtensions( CoreExtensions coreExtensions, String tagName, XmlSerializer serializer )
136 throws java.io.IOException
137 {
138 if ( this.fileComment != null )
139 {
140 serializer.comment(this.fileComment);
141 }
142 serializer.setPrefix( "", "http://maven.apache.org/EXTENSIONS/1.1.0" );
143 serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
144 serializer.startTag( NAMESPACE, tagName );
145 serializer.attribute( "", "xsi:schemaLocation", "http://maven.apache.org/EXTENSIONS/1.1.0 http://maven.apache.org/xsd/core-extensions-1.1.0.xsd" );
146 if ( ( coreExtensions.getExtensions() != null ) && ( coreExtensions.getExtensions().size() > 0 ) )
147 {
148 for ( Iterator iter = coreExtensions.getExtensions().iterator(); iter.hasNext(); )
149 {
150 CoreExtension o = (CoreExtension) iter.next();
151 writeCoreExtension( o, "extension", serializer );
152 }
153 }
154 serializer.endTag( NAMESPACE, tagName );
155 }
156
157 }