1
2
3
4
5
6
7
8 package org.apache.maven.toolchain.model.io.xpp3;
9
10
11
12
13
14 import java.io.OutputStream;
15 import java.io.Writer;
16 import java.text.DateFormat;
17 import java.util.Iterator;
18 import java.util.Locale;
19 import org.apache.maven.toolchain.model.PersistedToolchains;
20 import org.apache.maven.toolchain.model.ToolchainModel;
21 import org.codehaus.plexus.util.xml.Xpp3Dom;
22 import org.codehaus.plexus.util.xml.pull.MXSerializer;
23 import org.codehaus.plexus.util.xml.pull.XmlSerializer;
24
25
26
27
28
29
30 @SuppressWarnings( "all" )
31 public class MavenToolchainsXpp3Writer
32 {
33
34
35
36
37
38
39
40
41 private static final String NAMESPACE = null;
42
43
44
45
46
47
48
49
50
51
52
53
54
55 public void write( Writer writer, PersistedToolchains persistedToolchains )
56 throws java.io.IOException
57 {
58 XmlSerializer serializer = new MXSerializer();
59 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
60 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
61 serializer.setOutput( writer );
62 serializer.startDocument( persistedToolchains.getModelEncoding(), null );
63 writePersistedToolchains( persistedToolchains, "toolchains", serializer );
64 serializer.endDocument();
65 }
66
67
68
69
70
71
72
73
74 public void write( OutputStream stream, PersistedToolchains persistedToolchains )
75 throws java.io.IOException
76 {
77 XmlSerializer serializer = new MXSerializer();
78 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
79 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
80 serializer.setOutput( stream, persistedToolchains.getModelEncoding() );
81 serializer.startDocument( persistedToolchains.getModelEncoding(), null );
82 writePersistedToolchains( persistedToolchains, "toolchains", serializer );
83 serializer.endDocument();
84 }
85
86
87
88
89
90
91
92
93
94 private void writePersistedToolchains( PersistedToolchains persistedToolchains, String tagName, XmlSerializer serializer )
95 throws java.io.IOException
96 {
97 serializer.setPrefix( "", "http://maven.apache.org/TOOLCHAINS/1.0.0" );
98 serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
99 serializer.startTag( NAMESPACE, tagName );
100 serializer.attribute( "", "xsi:schemaLocation", "http://maven.apache.org/TOOLCHAINS/1.0.0 http://maven.apache.org/xsd/toolchains-1.0.0.xsd" );
101 if ( ( persistedToolchains.getToolchains() != null ) && ( persistedToolchains.getToolchains().size() > 0 ) )
102 {
103 for ( Iterator iter = persistedToolchains.getToolchains().iterator(); iter.hasNext(); )
104 {
105 ToolchainModel o = (ToolchainModel) iter.next();
106 writeToolchainModel( o, "toolchain", serializer );
107 }
108 }
109 serializer.endTag( NAMESPACE, tagName );
110 }
111
112
113
114
115
116
117
118
119
120 private void writeToolchainModel( ToolchainModel toolchainModel, String tagName, XmlSerializer serializer )
121 throws java.io.IOException
122 {
123 serializer.startTag( NAMESPACE, tagName );
124 if ( toolchainModel.getType() != null )
125 {
126 serializer.startTag( NAMESPACE, "type" ).text( toolchainModel.getType() ).endTag( NAMESPACE, "type" );
127 }
128 if ( toolchainModel.getProvides() != null )
129 {
130 ((Xpp3Dom) toolchainModel.getProvides()).writeToSerializer( NAMESPACE, serializer );
131 }
132 if ( toolchainModel.getConfiguration() != null )
133 {
134 ((Xpp3Dom) toolchainModel.getConfiguration()).writeToSerializer( NAMESPACE, serializer );
135 }
136 serializer.endTag( NAMESPACE, tagName );
137 }
138
139 }