Package org.cyclopsgroup.jmxterm.io

Source Code of org.cyclopsgroup.jmxterm.io.WriterCommandOutput

package org.cyclopsgroup.jmxterm.io;

import java.io.IOException;
import java.io.PrintWriter;
import java.io.Writer;

import org.apache.commons.io.output.NullWriter;
import org.apache.commons.lang.Validate;

/**
* A command output that writes result and message to given writers
*
* @author <a href="mailto:jiaqi.guo@gmail.com">Jiaqi Guo</a>
*/
public class WriterCommandOutput
    extends CommandOutput
{
    private final Writer messageOutput;

    private final Writer resultOutput;

    /**
     * @param output Writer for both result and message
     */
    public WriterCommandOutput( Writer output )
    {
        this( output, output );
    }

    /**
     * @param resultOutput IO Writer for result output
     * @param messageOutput IO Writer for message output
     */
    public WriterCommandOutput( Writer resultOutput, Writer messageOutput )
    {
        Validate.notNull( resultOutput, "Result output can't be NULL" );
        this.resultOutput = resultOutput;
        this.messageOutput = messageOutput == null ? new NullWriter() : messageOutput;
    }

    /**
     * @inheritDoc
     */
    @Override
    public void print( String output )
    {
        if ( output == null )
        {
            return;
        }
        try
        {
            resultOutput.write( output );
        }
        catch ( IOException e )
        {
            throw new RuntimeIOException( "Can't print out result", e );
        }
    }

    /**
     * @inheritDoc
     */
    @Override
    public void printError( Throwable e )
    {
        e.printStackTrace( new PrintWriter( messageOutput, true ) );
    }

    /**
     * @inheritDoc
     */
    @Override
    public void printMessage( String message )
    {
        try
        {
            messageOutput.write( message );
        }
        catch ( IOException e )
        {
            throw new RuntimeIOException( "Can't print out message", e );
        }
    }
}
TOP

Related Classes of org.cyclopsgroup.jmxterm.io.WriterCommandOutput

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.