Package org.apache.maven.plugin.lifecycle.io.xpp3

Source Code of org.apache.maven.plugin.lifecycle.io.xpp3.LifecycleMappingsXpp3Writer

/*
* $Id$
*/

package org.apache.maven.plugin.lifecycle.io.xpp3;

  //---------------------------------/
//- Imported classes and packages -/
//---------------------------------/

import java.io.Writer;
import java.text.DateFormat;
import java.util.Iterator;
import java.util.Locale;
import org.apache.maven.plugin.lifecycle.Execution;
import org.apache.maven.plugin.lifecycle.Lifecycle;
import org.apache.maven.plugin.lifecycle.LifecycleConfiguration;
import org.apache.maven.plugin.lifecycle.Phase;
import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.codehaus.plexus.util.xml.pull.MXSerializer;
import org.codehaus.plexus.util.xml.pull.XmlSerializer;

/**
* Class LifecycleMappingsXpp3Writer.
*
* @version $Revision$ $Date$
*/
public class LifecycleMappingsXpp3Writer {


      //--------------------------/
     //- Class/Member Variables -/
    //--------------------------/

    /**
     * Field NAMESPACE.
     */
    private String NAMESPACE;


      //-----------/
     //- Methods -/
    //-----------/

    /**
     * Method write.
     *
     * @param writer
     * @param lifecycleConfiguration
     * @throws java.io.IOException
     */
    public void write(Writer writer, LifecycleConfiguration lifecycleConfiguration)
        throws java.io.IOException
    {
        XmlSerializer serializer = new MXSerializer();
        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-indentation", "  " );
        serializer.setProperty( "http://xmlpull.org/v1/doc/properties.html#serializer-line-separator", "\n" );
        serializer.setOutput( writer );
        serializer.startDocument( lifecycleConfiguration.getModelEncoding(), null );
        writeLifecycleConfiguration( lifecycleConfiguration, "lifecycles", serializer );
        serializer.endDocument();
    } //-- void write(Writer, LifecycleConfiguration)

    /**
     * Method writeExecution.
     *
     * @param execution
     * @param serializer
     * @param tagName
     * @throws java.io.IOException
     */
    private void writeExecution(Execution execution, String tagName, XmlSerializer serializer)
        throws java.io.IOException
    {
        if ( execution != null )
        {
            serializer.startTag( NAMESPACE, tagName );
            if ( execution.getConfiguration() != null )
            {
                ((Xpp3Dom) execution.getConfiguration()).writeToSerializer( NAMESPACE, serializer );
            }
            if ( execution.getGoals() != null && execution.getGoals().size() > 0 )
            {
                serializer.startTag( NAMESPACE, "goals" );
                for ( Iterator iter = execution.getGoals().iterator(); iter.hasNext(); )
                {
                    String goal = (String) iter.next();
                    serializer.startTag( NAMESPACE, "goal" ).text( goal ).endTag( NAMESPACE, "goal" );
                }
                serializer.endTag( NAMESPACE, "goals" );
            }
            serializer.endTag( NAMESPACE, tagName );
        }
    } //-- void writeExecution(Execution, String, XmlSerializer)

    /**
     * Method writeLifecycle.
     *
     * @param lifecycle
     * @param serializer
     * @param tagName
     * @throws java.io.IOException
     */
    private void writeLifecycle(Lifecycle lifecycle, String tagName, XmlSerializer serializer)
        throws java.io.IOException
    {
        if ( lifecycle != null )
        {
            serializer.startTag( NAMESPACE, tagName );
            if ( lifecycle.getId() != null )
            {
                serializer.startTag( NAMESPACE, "id" ).text( lifecycle.getId() ).endTag( NAMESPACE, "id" );
            }
            if ( lifecycle.getPhases() != null && lifecycle.getPhases().size() > 0 )
            {
                serializer.startTag( NAMESPACE, "phases" );
                for ( Iterator iter = lifecycle.getPhases().iterator(); iter.hasNext(); )
                {
                    Phase o = (Phase) iter.next();
                    writePhase( o, "phase", serializer );
                }
                serializer.endTag( NAMESPACE, "phases" );
            }
            serializer.endTag( NAMESPACE, tagName );
        }
    } //-- void writeLifecycle(Lifecycle, String, XmlSerializer)

    /**
     * Method writeLifecycleConfiguration.
     *
     * @param lifecycleConfiguration
     * @param serializer
     * @param tagName
     * @throws java.io.IOException
     */
    private void writeLifecycleConfiguration(LifecycleConfiguration lifecycleConfiguration, String tagName, XmlSerializer serializer)
        throws java.io.IOException
    {
        if ( lifecycleConfiguration != null )
        {
            serializer.startTag( NAMESPACE, tagName );
            if ( lifecycleConfiguration.getLifecycles() != null && lifecycleConfiguration.getLifecycles().size() > 0 )
            {
                for ( Iterator iter = lifecycleConfiguration.getLifecycles().iterator(); iter.hasNext(); )
                {
                    Lifecycle o = (Lifecycle) iter.next();
                    writeLifecycle( o, "lifecycle", serializer );
                }
            }
            serializer.endTag( NAMESPACE, tagName );
        }
    } //-- void writeLifecycleConfiguration(LifecycleConfiguration, String, XmlSerializer)

    /**
     * Method writePhase.
     *
     * @param phase
     * @param serializer
     * @param tagName
     * @throws java.io.IOException
     */
    private void writePhase(Phase phase, String tagName, XmlSerializer serializer)
        throws java.io.IOException
    {
        if ( phase != null )
        {
            serializer.startTag( NAMESPACE, tagName );
            if ( phase.getId() != null )
            {
                serializer.startTag( NAMESPACE, "id" ).text( phase.getId() ).endTag( NAMESPACE, "id" );
            }
            if ( phase.getExecutions() != null && phase.getExecutions().size() > 0 )
            {
                serializer.startTag( NAMESPACE, "executions" );
                for ( Iterator iter = phase.getExecutions().iterator(); iter.hasNext(); )
                {
                    Execution o = (Execution) iter.next();
                    writeExecution( o, "execution", serializer );
                }
                serializer.endTag( NAMESPACE, "executions" );
            }
            if ( phase.getConfiguration() != null )
            {
                ((Xpp3Dom) phase.getConfiguration()).writeToSerializer( NAMESPACE, serializer );
            }
            serializer.endTag( NAMESPACE, tagName );
        }
    } //-- void writePhase(Phase, String, XmlSerializer)


}
TOP

Related Classes of org.apache.maven.plugin.lifecycle.io.xpp3.LifecycleMappingsXpp3Writer

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.