1
2
3
4
5
6 package org.apache.maven.scm.providers.cvslib.settings.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.scm.providers.cvslib.settings.Settings;
16 import org.codehaus.plexus.util.xml.pull.MXSerializer;
17 import org.codehaus.plexus.util.xml.pull.XmlSerializer;
18
19
20
21
22
23
24 @SuppressWarnings( "all" )
25 public class CvsXpp3Writer
26 {
27
28
29
30
31
32
33
34
35 private static final String NAMESPACE = null;
36
37
38
39
40
41
42
43
44
45
46
47
48
49 public void write( Writer writer, Settings settings )
50 throws java.io.IOException
51 {
52 XmlSerializer serializer = new MXSerializer();
53 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
54 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
55 serializer.setOutput( writer );
56 serializer.startDocument( settings.getModelEncoding(), null );
57 writeSettings( settings, "cvs-settings", serializer );
58 serializer.endDocument();
59 }
60
61
62
63
64
65
66
67
68 public void write( OutputStream stream, Settings settings )
69 throws java.io.IOException
70 {
71 XmlSerializer serializer = new MXSerializer();
72 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", " " );
73 serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
74 serializer.setOutput( stream, settings.getModelEncoding() );
75 serializer.startDocument( settings.getModelEncoding(), null );
76 writeSettings( settings, "cvs-settings", serializer );
77 serializer.endDocument();
78 }
79
80
81
82
83
84
85
86
87
88 private void writeSettings( Settings settings, String tagName, XmlSerializer serializer )
89 throws java.io.IOException
90 {
91 serializer.setPrefix( "", "http://maven.apache.org/SCM/CVS/1.0.0" );
92 serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
93 serializer.startTag( NAMESPACE, tagName );
94 serializer.attribute( "", "xsi:schemaLocation", "http://maven.apache.org/SCM/CVS/1.0.0 http://maven.apache.org/xsd/scm-cvs-1.0.0.xsd" );
95 if ( ( settings.getChangeLogCommandDateFormat() != null ) && !settings.getChangeLogCommandDateFormat().equals( "yyyy-MM-dd HH:mm:ssZ" ) )
96 {
97 serializer.startTag( NAMESPACE, "changeLogCommandDateFormat" ).text( settings.getChangeLogCommandDateFormat() ).endTag( NAMESPACE, "changeLogCommandDateFormat" );
98 }
99 if ( settings.isUseCvsrc() != false )
100 {
101 serializer.startTag( NAMESPACE, "useCvsrc" ).text( String.valueOf( settings.isUseCvsrc() ) ).endTag( NAMESPACE, "useCvsrc" );
102 }
103 if ( settings.getCompressionLevel() != 3 )
104 {
105 serializer.startTag( NAMESPACE, "compressionLevel" ).text( String.valueOf( settings.getCompressionLevel() ) ).endTag( NAMESPACE, "compressionLevel" );
106 }
107 if ( settings.isTraceCvsCommand() != false )
108 {
109 serializer.startTag( NAMESPACE, "traceCvsCommand" ).text( String.valueOf( settings.isTraceCvsCommand() ) ).endTag( NAMESPACE, "traceCvsCommand" );
110 }
111 if ( settings.getTemporaryFilesDirectory() != null )
112 {
113 serializer.startTag( NAMESPACE, "temporaryFilesDirectory" ).text( settings.getTemporaryFilesDirectory() ).endTag( NAMESPACE, "temporaryFilesDirectory" );
114 }
115 if ( ( settings.getCvsVariables() != null ) && ( settings.getCvsVariables().size() > 0 ) )
116 {
117 serializer.startTag( NAMESPACE, "cvsVariables" );
118 for ( Iterator iter = settings.getCvsVariables().keySet().iterator(); iter.hasNext(); )
119 {
120 String key = (String) iter.next();
121 String value = (String) settings.getCvsVariables().get( key );
122 serializer.startTag( NAMESPACE, "" + key + "" ).text( value ).endTag( NAMESPACE, "" + key + "" );
123 }
124 serializer.endTag( NAMESPACE, "cvsVariables" );
125 }
126 if ( settings.isUseForceTag() != true )
127 {
128 serializer.startTag( NAMESPACE, "useForceTag" ).text( String.valueOf( settings.isUseForceTag() ) ).endTag( NAMESPACE, "useForceTag" );
129 }
130 serializer.endTag( NAMESPACE, tagName );
131 }
132
133 }