001/*
002 * $Id$
003 */
004
005package org.apache.maven.scm.providers.vss.settings.io.xpp3;
006
007  //---------------------------------/
008 //- Imported classes and packages -/
009//---------------------------------/
010
011import java.io.Writer;
012import java.text.DateFormat;
013import java.util.Iterator;
014import java.util.Locale;
015import org.apache.maven.scm.providers.vss.settings.Settings;
016import org.codehaus.plexus.util.xml.pull.MXSerializer;
017import org.codehaus.plexus.util.xml.pull.XmlSerializer;
018
019/**
020 * Class VssXpp3Writer.
021 * 
022 * @version $Revision$ $Date$
023 */
024public 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}