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
42
43
44
45
46
47
48
49
50 public void write( Writer writer, CoreExtensions coreExtensions )
51 throws java.io.IOException
52 {
53 XmlSerializer serializer = new MXSerializer();
54 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
55 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
56 serializer.setOutput( writer );
57 serializer.startDocument( coreExtensions.getModelEncoding(), null );
58 writeCoreExtensions( coreExtensions, "extensions", serializer );
59 serializer.endDocument();
60 }
61
62
63
64
65
66
67
68
69 public void write( OutputStream stream, CoreExtensions coreExtensions )
70 throws java.io.IOException
71 {
72 XmlSerializer serializer = new MXSerializer();
73 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
74 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
75 serializer.setOutput( stream, coreExtensions.getModelEncoding() );
76 serializer.startDocument( coreExtensions.getModelEncoding(), null );
77 writeCoreExtensions( coreExtensions, "extensions", serializer );
78 serializer.endDocument();
79 }
80
81
82
83
84
85
86
87
88
89 private void writeCoreExtension( CoreExtension coreExtension, String tagName, XmlSerializer serializer )
90 throws java.io.IOException
91 {
92 serializer.startTag( NAMESPACE, tagName );
93 if ( coreExtension.getGroupId() != null )
94 {
95 serializer.startTag( NAMESPACE, "groupId" ).text( coreExtension.getGroupId() ).endTag( NAMESPACE, "groupId" );
96 }
97 if ( coreExtension.getArtifactId() != null )
98 {
99 serializer.startTag( NAMESPACE, "artifactId" ).text( coreExtension.getArtifactId() ).endTag( NAMESPACE, "artifactId" );
100 }
101 if ( coreExtension.getVersion() != null )
102 {
103 serializer.startTag( NAMESPACE, "version" ).text( coreExtension.getVersion() ).endTag( NAMESPACE, "version" );
104 }
105 serializer.endTag( NAMESPACE, tagName );
106 }
107
108
109
110
111
112
113
114
115
116 private void writeCoreExtensions( CoreExtensions coreExtensions, String tagName, XmlSerializer serializer )
117 throws java.io.IOException
118 {
119 serializer.setPrefix( "", "http://maven.apache.org/EXTENSIONS/1.0.0" );
120 serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
121 serializer.startTag( NAMESPACE, tagName );
122 serializer.attribute( "", "xsi:schemaLocation", "http://maven.apache.org/EXTENSIONS/1.0.0 http://maven.apache.org/xsd/core-extensions-1.0.0.xsd" );
123 if ( ( coreExtensions.getExtensions() != null ) && ( coreExtensions.getExtensions().size() > 0 ) )
124 {
125 for ( Iterator iter = coreExtensions.getExtensions().iterator(); iter.hasNext(); )
126 {
127 CoreExtension o = (CoreExtension) iter.next();
128 writeCoreExtension( o, "extension", serializer );
129 }
130 }
131 serializer.endTag( NAMESPACE, tagName );
132 }
133
134 }