001/*
002 Licensed to the Apache Software Foundation (ASF) under one
003 or more contributor license agreements.  See the NOTICE file
004 distributed with this work for additional information
005 regarding copyright ownership.  The ASF licenses this file
006 to you under the Apache License, Version 2.0 (the
007 "License"); you may not use this file except in compliance
008 with the License.  You may obtain a copy of the License at
009 
010     http://www.apache.org/licenses/LICENSE-2.0
011 
012 Unless required by applicable law or agreed to in writing,
013 software distributed under the License is distributed on an
014 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 KIND, either express or implied.  See the License for the
016 specific language governing permissions and limitations
017 under the License.
018 =================== DO NOT EDIT THIS FILE ====================
019 Generated by Modello 2.5.1,
020 any modifications will be overwritten.
021 ==============================================================
022 */
023
024package org.apache.maven.scm.provider.local.metadata.io.xpp3;
025
026  //---------------------------------/
027 //- Imported classes and packages -/
028//---------------------------------/
029
030import java.io.OutputStream;
031import java.io.Writer;
032import java.util.Iterator;
033import org.apache.maven.scm.provider.local.metadata.LocalScmMetadata;
034import org.codehaus.plexus.util.xml.pull.MXSerializer;
035import org.codehaus.plexus.util.xml.pull.XmlSerializer;
036
037/**
038 * Class LocalScmMetadataXpp3Writer.
039 * 
040 * @version $Revision$ $Date$
041 */
042@SuppressWarnings( "all" )
043public class LocalScmMetadataXpp3Writer
044{
045
046      //--------------------------/
047     //- Class/Member Variables -/
048    //--------------------------/
049
050    /**
051     * Field NAMESPACE.
052     */
053    private static final String NAMESPACE = null;
054
055    /**
056     * Field fileComment.
057     */
058    private String fileComment = null;
059
060
061      //-----------/
062     //- Methods -/
063    //-----------/
064
065    /**
066     * Method setFileComment.
067     * 
068     * @param fileComment a fileComment object.
069     */
070    public void setFileComment( String fileComment )
071    {
072        this.fileComment = fileComment;
073    } //-- void setFileComment( String )
074
075    /**
076     * Method write.
077     * 
078     * @param writer a writer object.
079     * @param localScmMetadata a localScmMetadata object.
080     * @throws java.io.IOException java.io.IOException if any.
081     */
082    public void write( Writer writer, LocalScmMetadata localScmMetadata )
083        throws java.io.IOException
084    {
085        XmlSerializer serializer = new MXSerializer();
086        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
087        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
088        serializer.setOutput( writer );
089        serializer.startDocument( localScmMetadata.getModelEncoding(), null );
090        writeLocalScmMetadata( localScmMetadata, "localScmMetadata", serializer );
091        serializer.endDocument();
092    } //-- void write( Writer, LocalScmMetadata )
093
094    /**
095     * Method write.
096     * 
097     * @param stream a stream object.
098     * @param localScmMetadata a localScmMetadata object.
099     * @throws java.io.IOException java.io.IOException if any.
100     */
101    public void write( OutputStream stream, LocalScmMetadata localScmMetadata )
102        throws java.io.IOException
103    {
104        XmlSerializer serializer = new MXSerializer();
105        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
106        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
107        serializer.setOutput( stream, localScmMetadata.getModelEncoding() );
108        serializer.startDocument( localScmMetadata.getModelEncoding(), null );
109        writeLocalScmMetadata( localScmMetadata, "localScmMetadata", serializer );
110        serializer.endDocument();
111    } //-- void write( OutputStream, LocalScmMetadata )
112
113    /**
114     * Method writeLocalScmMetadata.
115     * 
116     * @param localScmMetadata a localScmMetadata object.
117     * @param serializer a serializer object.
118     * @param tagName a tagName object.
119     * @throws java.io.IOException java.io.IOException if any.
120     */
121    private void writeLocalScmMetadata( LocalScmMetadata localScmMetadata, String tagName, XmlSerializer serializer )
122        throws java.io.IOException
123    {
124        if ( this.fileComment != null )
125        {
126        serializer.comment(this.fileComment);
127        }
128        serializer.setPrefix( "", "http://maven.apache.org/SCM/LOCAL/1.0.0" );
129        serializer.setPrefix( "xsi", "http://www.w3.org/2001/XMLSchema-instance" );
130        serializer.startTag( NAMESPACE, tagName );
131        serializer.attribute( "", "xsi:schemaLocation", "http://maven.apache.org/SCM/LOCAL/1.0.0 http://maven.apache.org/xsd/scm-local-1.0.0.xsd" );
132        if ( ( localScmMetadata.getRepositoryFileNames() != null ) && ( localScmMetadata.getRepositoryFileNames().size() > 0 ) )
133        {
134            serializer.startTag( NAMESPACE, "repositoryFileNames" );
135            for ( Iterator iter = localScmMetadata.getRepositoryFileNames().iterator(); iter.hasNext(); )
136            {
137                String repositoryFileName = (String) iter.next();
138                serializer.startTag( NAMESPACE, "repositoryFileName" ).text( repositoryFileName ).endTag( NAMESPACE, "repositoryFileName" );
139            }
140            serializer.endTag( NAMESPACE, "repositoryFileNames" );
141        }
142        serializer.endTag( NAMESPACE, tagName );
143    } //-- void writeLocalScmMetadata( LocalScmMetadata, String, XmlSerializer )
144
145}