1 /* Copyright (C) 2003 Vladimir Roubtsov. All rights reserved. 2 * 3 * This program and the accompanying materials are made available under 4 * the terms of the Common Public License v1.0 which accompanies this distribution, 5 * and is available at http://www.eclipse.org/legal/cpl-v10.html 6 * 7 * $Id: HTMLWriter.java,v 1.1.1.1 2004/05/09 16:57:41 vlad_r Exp $ 8 */ 9 package com.vladium.emma.report.html.doc; 10 11 import java.io.IOException; 12 import java.io.Writer; 13 14 import com.vladium.util.IConstants; 15 import com.vladium.util.asserts.$assert; 16 import com.vladium.emma.IAppErrorCodes; 17 import com.vladium.emma.EMMARuntimeException; 18 19 // ---------------------------------------------------------------------------- 20 /** 21 * @author Vlad Roubtsov, (C) 2003 22 */ 23 public 24 final class HTMLWriter 25 { 26 // public: ................................................................ 27 28 // TODO: add API for indenting 29 30 public HTMLWriter (final Writer out) 31 { 32 if (out == null) throw new IllegalArgumentException ("null input: out"); 33 34 m_out = out; 35 } 36 37 38 public void write (final String s) 39 { 40 if ($assert.ENABLED) $assert.ASSERT (s != null, "s = null"); 41 42 if (m_out != null) 43 { 44 try 45 { 46 m_out.write (s); 47 } 48 catch (IOException ioe) 49 { 50 throw new EMMARuntimeException (IAppErrorCodes.REPORT_IO_FAILURE, ioe); 51 } 52 } 53 } 54 55 public void write (final char c) 56 { 57 if (m_out != null) 58 { 59 try 60 { 61 m_out.write (c); 62 } 63 catch (IOException ioe) 64 { 65 throw new EMMARuntimeException (IAppErrorCodes.REPORT_IO_FAILURE, ioe); 66 } 67 } 68 } 69 70 public void eol () 71 { 72 if (m_out != null) 73 { 74 try 75 { 76 m_out.write (IConstants.EOL); 77 } 78 catch (IOException ioe) 79 { 80 throw new EMMARuntimeException (IAppErrorCodes.REPORT_IO_FAILURE, ioe); 81 } 82 } 83 } 84 85 public void flush () 86 { 87 if (m_out != null) 88 { 89 try 90 { 91 m_out.flush (); 92 } 93 catch (IOException ioe) 94 { 95 throw new EMMARuntimeException (IAppErrorCodes.REPORT_IO_FAILURE, ioe); 96 } 97 } 98 } 99 100 public void close () 101 { 102 if (m_out != null) 103 { 104 try { m_out.close (); } catch (IOException ignore) {} 105 m_out = null; 106 } 107 } 108 109 // protected: ............................................................. 110 111 // package: ............................................................... 112 113 // private: ............................................................... 114 115 116 private Writer m_out; 117 118 } // end of class 119 // ----------------------------------------------------------------------------