1
2
3
4
5 package org.apache.maven.toolchain.model.io.xpp3;
6
7
8
9
10
11 import java.io.Writer;
12 import java.text.DateFormat;
13 import java.util.Iterator;
14 import java.util.Locale;
15 import org.apache.maven.toolchain.model.PersistedToolchains;
16 import org.apache.maven.toolchain.model.ToolchainModel;
17 import org.codehaus.plexus.util.xml.Xpp3Dom;
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 public class MavenToolchainsXpp3Writer {
27
28
29
30
31
32
33
34
35
36 private String NAMESPACE;
37
38
39
40
41
42
43
44
45
46
47
48
49
50 public void write( Writer writer, PersistedToolchains persistedToolchains )
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( persistedToolchains.getModelEncoding(), null );
58 writePersistedToolchains( persistedToolchains, "toolchains", serializer );
59 serializer.endDocument();
60 }
61
62
63
64
65
66
67
68
69
70 private void writePersistedToolchains( PersistedToolchains persistedToolchains, String tagName, XmlSerializer serializer )
71 throws java.io.IOException
72 {
73 if ( persistedToolchains != null )
74 {
75 serializer.startTag( NAMESPACE, tagName );
76 if ( persistedToolchains.getToolchains() != null && persistedToolchains.getToolchains().size() > 0 )
77 {
78 for ( Iterator iter = persistedToolchains.getToolchains().iterator(); iter.hasNext(); )
79 {
80 ToolchainModel o = (ToolchainModel) iter.next();
81 writeToolchainModel( o, "toolchain", serializer );
82 }
83 }
84 serializer.endTag( NAMESPACE, tagName );
85 }
86 }
87
88
89
90
91
92
93
94
95
96 private void writeToolchainModel( ToolchainModel toolchainModel, String tagName, XmlSerializer serializer )
97 throws java.io.IOException
98 {
99 if ( toolchainModel != null )
100 {
101 serializer.startTag( NAMESPACE, tagName );
102 if ( toolchainModel.getType() != null )
103 {
104 serializer.startTag( NAMESPACE, "type" ).text( toolchainModel.getType() ).endTag( NAMESPACE, "type" );
105 }
106 if ( toolchainModel.getProvides() != null )
107 {
108 ((Xpp3Dom) toolchainModel.getProvides()).writeToSerializer( NAMESPACE, serializer );
109 }
110 if ( toolchainModel.getConfiguration() != null )
111 {
112 ((Xpp3Dom) toolchainModel.getConfiguration()).writeToSerializer( NAMESPACE, serializer );
113 }
114 serializer.endTag( NAMESPACE, tagName );
115 }
116 }
117
118
119 }