1
2
3
4
5
6 package org.apache.maven.plugin.resources.remote.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.plugin.resources.remote.Supplement;
16 import org.apache.maven.plugin.resources.remote.SupplementalDataModel;
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 @SuppressWarnings( "all" )
27 public class SupplementalDataModelXpp3Writer
28 {
29
30
31
32
33
34
35
36
37 private static final String NAMESPACE = null;
38
39
40
41
42 private String fileComment = null;
43
44
45
46
47
48
49
50
51
52
53
54 public void setFileComment( String fileComment )
55 {
56 this.fileComment = fileComment;
57 }
58
59
60
61
62
63
64
65
66 public void write( Writer writer, SupplementalDataModel supplementalDataModel )
67 throws java.io.IOException
68 {
69 XmlSerializer serializer = new MXSerializer();
70 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
71 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
72 serializer.setOutput( writer );
73 serializer.startDocument( supplementalDataModel.getModelEncoding(), null );
74 writeSupplementalDataModel( supplementalDataModel, "supplementalDataModels", serializer );
75 serializer.endDocument();
76 }
77
78
79
80
81
82
83
84
85 public void write( OutputStream stream, SupplementalDataModel supplementalDataModel )
86 throws java.io.IOException
87 {
88 XmlSerializer serializer = new MXSerializer();
89 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
90 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
91 serializer.setOutput( stream, supplementalDataModel.getModelEncoding() );
92 serializer.startDocument( supplementalDataModel.getModelEncoding(), null );
93 writeSupplementalDataModel( supplementalDataModel, "supplementalDataModels", serializer );
94 serializer.endDocument();
95 }
96
97
98
99
100
101
102
103
104
105 private void writeSupplement( Supplement supplement, String tagName, XmlSerializer serializer )
106 throws java.io.IOException
107 {
108 serializer.startTag( NAMESPACE, tagName );
109 if ( supplement.getProject() != null )
110 {
111 ((Xpp3Dom) supplement.getProject()).writeToSerializer( NAMESPACE, serializer );
112 }
113 serializer.endTag( NAMESPACE, tagName );
114 }
115
116
117
118
119
120
121
122
123
124 private void writeSupplementalDataModel( SupplementalDataModel supplementalDataModel, String tagName, XmlSerializer serializer )
125 throws java.io.IOException
126 {
127 if ( this.fileComment != null )
128 {
129 serializer.comment(this.fileComment);
130 }
131 serializer.setPrefix( "", "http://maven.apache.org/supplemental-model/1.0.0" );
132 serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
133 serializer.startTag( NAMESPACE, tagName );
134 serializer.attribute( "", "xsi:schemaLocation", "http://maven.apache.org/supplemental-model/1.0.0 https://maven.apache.org/xsd/supplemental-model-1.0.0.xsd" );
135 if ( ( supplementalDataModel.getSupplement() != null ) && ( supplementalDataModel.getSupplement().size() > 0 ) )
136 {
137 for ( Iterator iter = supplementalDataModel.getSupplement().iterator(); iter.hasNext(); )
138 {
139 Supplement o = (Supplement) iter.next();
140 writeSupplement( o, "supplement", serializer );
141 }
142 }
143 serializer.endTag( NAMESPACE, tagName );
144 }
145
146 }