KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > idaremedia > antx > ownhelpers > io > BufferStream


1 /**
2  * $Id: BufferStream.java 180 2007-03-15 12:56:38Z ssmc $
3  * Copyright 2004 iDare Media, Inc. All rights reserved.
4  *
5  * Originally written by iDare Media, Inc. for release into the public domain. This
6  * library, source form and binary form, is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU Lesser General Public License (LGPL) as published
8  * by the Free Software Foundation; either version 2.1 of the License, or (at your option)
9  * any later version.<p>
10  *
11  * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
12  * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13  * See the GNU LGPL for more details.<p>
14  *
15  * You should have received a copy of the GNU Lesser General Public License along with this
16  * library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite
17  * 330, Boston, MA 02111-1307 USA. The GNU LGPL can be found online at
18  * http://www.fsf.org/copyleft/lesser.html<p>
19  *
20  * This product has been influenced by several projects within the open-source community.
21  * The JWare developers wish to acknowledge the open-source community's support. For more
22  * information regarding the open-source products used within JWare, please visit the
23  * JWare website.
24  *----------------------------------------------------------------------------------------*
25  * WEBSITE- http://www.jware.info EMAIL- inquiries@jware.info
26  *----------------------------------------------------------------------------------------*
27  **/

28
29 package com.idaremedia.antx.ownhelpers.io;
30
31 import java.io.IOException JavaDoc;
32 import java.io.OutputStream JavaDoc;
33
34 /**
35  * An output stream that buffers all output to memory for its controlling component. For
36  * things like BuildLoggers this helps prevent infinite loops if your implementation
37  * triggers internal logs and/or writes to either system stream.
38  *
39  * @since JWare/AntX 0.4
40  * @author ssmc, &copy;2004 <a HREF="http://www.jware.info">iDare&nbsp;Media,&nbsp;Inc.</a>
41  * @version 0.5
42  * @.safety single
43  * @.group impl,helper
44  **/

45
46 public final class BufferStream extends OutputStream JavaDoc
47 {
48     /**
49      * Initializes a new memory buffer for output bits.
50      **/

51     public BufferStream()
52     {
53         m_outBuffer = new StringBuffer JavaDoc(240);
54     }
55
56
57     /**
58      * Capture a single byte to our buffer. Slow?
59      **/

60     public void write(int b) throws IOException JavaDoc
61     {
62         m_outBuffer.append((char)b);
63     }
64
65
66     /**
67      * Returns a copy of this stream's captured contents.
68      **/

69     public String JavaDoc copyBuffer()
70     {
71         return m_outBuffer.substring(0);
72     }
73
74
75     /**
76      * Resets this stream's buffer to empty.
77      **/

78     public void clearBuffer()
79     {
80         m_outBuffer.delete(0,m_outBuffer.length());
81     }
82
83
84     private final StringBuffer JavaDoc m_outBuffer;
85 }
86
87 /* end-of-BufferStream.java */
88
Popular Tags