001    /*
002     * $Id$
003     */
004    
005    package org.apache.maven.scm.providers.vss.settings.io.xpp3;
006    
007      //---------------------------------/
008     //- Imported classes and packages -/
009    //---------------------------------/
010    
011    import java.io.Writer;
012    import java.text.DateFormat;
013    import java.util.Iterator;
014    import java.util.Locale;
015    import org.apache.maven.scm.providers.vss.settings.Settings;
016    import org.codehaus.plexus.util.xml.pull.MXSerializer;
017    import org.codehaus.plexus.util.xml.pull.XmlSerializer;
018    
019    /**
020     * Class VssXpp3Writer.
021     * 
022     * @version $Revision$ $Date$
023     */
024    public class VssXpp3Writer {
025    
026    
027          //--------------------------/
028         //- Class/Member Variables -/
029        //--------------------------/
030    
031        /**
032         * Field NAMESPACE.
033         */
034        private String NAMESPACE;
035    
036    
037          //-----------/
038         //- Methods -/
039        //-----------/
040    
041        /**
042         * Method write.
043         * 
044         * @param writer
045         * @param settings
046         * @throws java.io.IOException
047         */
048        public void write(Writer writer, Settings settings)
049            throws java.io.IOException
050        {
051            XmlSerializer serializer = new MXSerializer();
052            serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
053            serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
054            serializer.setOutput( writer );
055            serializer.startDocument( settings.getModelEncoding(), null );
056            writeSettings( settings, "vss-settings", serializer );
057            serializer.endDocument();
058        } //-- void write(Writer, Settings) 
059    
060        /**
061         * Method writeSettings.
062         * 
063         * @param settings
064         * @param serializer
065         * @param tagName
066         * @throws java.io.IOException
067         */
068        private void writeSettings(Settings settings, String tagName, XmlSerializer serializer)
069            throws java.io.IOException
070        {
071            if ( settings != null )
072            {
073                serializer.startTag( NAMESPACE, tagName );
074                if ( settings.getVssDirectory() != null )
075                {
076                    serializer.startTag( NAMESPACE, "vssDirectory" ).text( settings.getVssDirectory() ).endTag( NAMESPACE, "vssDirectory" );
077                }
078                serializer.endTag( NAMESPACE, tagName );
079            }
080        } //-- void writeSettings(Settings, String, XmlSerializer) 
081    
082    
083    }