/* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved.
*
* This program and the accompanying materials are made available under
* the terms of the Common Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/cpl-v10.html
*
* $Id: HTMLWriter.java,v 1.1.1.1 2004/05/09 16:57:41 vlad_r Exp $
*/
package com.vladium.emma.report.html.doc;
import java.io.IOException;
import java.io.Writer;
import com.vladium.util.IConstants;
import com.vladium.util.asserts.$assert;
import com.vladium.emma.IAppErrorCodes;
import com.vladium.emma.EMMARuntimeException;
// ----------------------------------------------------------------------------
/**
* @author Vlad Roubtsov, (C) 2003
*/
public
final class HTMLWriter
{
// public: ................................................................
// TODO: add API for indenting
public HTMLWriter (final Writer out)
{
if (out == null) throw new IllegalArgumentException ("null input: out");
m_out = out;
}
public void write (final String s)
{
if ($assert.ENABLED) $assert.ASSERT (s != null, "s = null");
if (m_out != null)
{
try
{
m_out.write (s);
}
catch (IOException ioe)
{
throw new EMMARuntimeException (IAppErrorCodes.REPORT_IO_FAILURE, ioe);
}
}
}
public void write (final char c)
{
if (m_out != null)
{
try
{
m_out.write (c);
}
catch (IOException ioe)
{
throw new EMMARuntimeException (IAppErrorCodes.REPORT_IO_FAILURE, ioe);
}
}
}
public void eol ()
{
if (m_out != null)
{
try
{
m_out.write (IConstants.EOL);
}
catch (IOException ioe)
{
throw new EMMARuntimeException (IAppErrorCodes.REPORT_IO_FAILURE, ioe);
}
}
}
public void flush ()
{
if (m_out != null)
{
try
{
m_out.flush ();
}
catch (IOException ioe)
{
throw new EMMARuntimeException (IAppErrorCodes.REPORT_IO_FAILURE, ioe);
}
}
}
public void close ()
{
if (m_out != null)
{
try { m_out.close (); } catch (IOException ignore) {}
m_out = null;
}
}
// protected: .............................................................
// package: ...............................................................
// private: ...............................................................
private Writer m_out;
} // end of class
// ---------------------------------------------------------------------------- |