1
2
3
4
5
6
7
8 package org.apache.maven.archetype.registry.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.archetype.registry.ArchetypeRegistry;
20 import org.codehaus.plexus.util.xml.pull.MXSerializer;
21 import org.codehaus.plexus.util.xml.pull.XmlSerializer;
22
23
24
25
26
27
28 @SuppressWarnings( "all" )
29 public class ArchetypeRegistryXpp3Writer
30 {
31
32
33
34
35
36
37
38
39 private static final String NAMESPACE = null;
40
41
42
43
44
45
46
47
48
49
50
51
52
53 public void write( Writer writer, ArchetypeRegistry archetypeRegistry )
54 throws java.io.IOException
55 {
56 XmlSerializer serializer = new MXSerializer();
57 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
58 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
59 serializer.setOutput( writer );
60 serializer.startDocument( archetypeRegistry.getModelEncoding(), null );
61 writeArchetypeRegistry( archetypeRegistry, "archetype-registry", serializer );
62 serializer.endDocument();
63 }
64
65
66
67
68
69
70
71
72 public void write( OutputStream stream, ArchetypeRegistry archetypeRegistry )
73 throws java.io.IOException
74 {
75 XmlSerializer serializer = new MXSerializer();
76 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
77 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
78 serializer.setOutput( stream, archetypeRegistry.getModelEncoding() );
79 serializer.startDocument( archetypeRegistry.getModelEncoding(), null );
80 writeArchetypeRegistry( archetypeRegistry, "archetype-registry", serializer );
81 serializer.endDocument();
82 }
83
84
85
86
87
88
89
90
91
92 private void writeArchetypeRegistry( ArchetypeRegistry archetypeRegistry, String tagName, XmlSerializer serializer )
93 throws java.io.IOException
94 {
95 serializer.setPrefix( "", "http://maven.apache.org/plugins/maven-archetype-plugin/archetype-registry/1.0.0" );
96 serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
97 serializer.startTag( NAMESPACE, tagName );
98 serializer.attribute( "", "xsi:schemaLocation", "http://maven.apache.org/plugins/maven-archetype-plugin/archetype-registry/1.0.0 http://maven.apache.org/xsd/archetype-registry-1.0.0.xsd" );
99 if ( ( archetypeRegistry.getLanguages() != null ) && ( archetypeRegistry.getLanguages().size() > 0 ) )
100 {
101 serializer.startTag( NAMESPACE, "Languages" );
102 for ( Iterator iter = archetypeRegistry.getLanguages().iterator(); iter.hasNext(); )
103 {
104 String language = (String) iter.next();
105 serializer.startTag( NAMESPACE, "Language" ).text( language ).endTag( NAMESPACE, "Language" );
106 }
107 serializer.endTag( NAMESPACE, "Languages" );
108 }
109 if ( ( archetypeRegistry.getFilteredExtensions() != null ) && ( archetypeRegistry.getFilteredExtensions().size() > 0 ) )
110 {
111 serializer.startTag( NAMESPACE, "FilteredExtensions" );
112 for ( Iterator iter = archetypeRegistry.getFilteredExtensions().iterator(); iter.hasNext(); )
113 {
114 String filteredExtension = (String) iter.next();
115 serializer.startTag( NAMESPACE, "FilteredExtension" ).text( filteredExtension ).endTag( NAMESPACE, "FilteredExtension" );
116 }
117 serializer.endTag( NAMESPACE, "FilteredExtensions" );
118 }
119 serializer.endTag( NAMESPACE, tagName );
120 }
121
122 }