001 /* 002 * Copyright (C) The Apache Software Foundation. All rights reserved. 003 * 004 * This software is published under the terms of the Apache Software License 005 * version 1.1, a copy of which has been included with this distribution in 006 * the LICENSE file. 007 * 008 * $Id: BufferedServletInputStream.java 155459 2005-02-26 13:24:44Z dirkv $ 009 */ 010 package org.apache.commons.messagelet.impl; 011 012 import java.io.ByteArrayInputStream; 013 import java.io.IOException; 014 import java.io.InputStream; 015 016 import javax.servlet.ServletInputStream; 017 018 /** 019 * <p><code>BufferedServletInputStream</code> implements 020 * a ServletInputStream using an underlying InputStream.</p> 021 * 022 * @author <a href="mailto:jstrachan@apache.org">James Strachan</a> 023 * @version $Revision: 155459 $ 024 */ 025 public class BufferedServletInputStream extends ServletInputStream { 026 027 protected static final byte[] NO_DATA = new byte[0]; 028 029 /** The underlying <code>InputStream</code> */ 030 private InputStream in; 031 032 033 public BufferedServletInputStream() { 034 this.in = new ByteArrayInputStream( NO_DATA ); 035 } 036 037 public BufferedServletInputStream(InputStream in) { 038 this.in = in; 039 } 040 041 public BufferedServletInputStream(String text) { 042 in = new ByteArrayInputStream( text.getBytes() ); 043 } 044 045 public BufferedServletInputStream(byte[] data) { 046 in = new ByteArrayInputStream(data); 047 } 048 049 // Delegating methods from InputStream 050 //------------------------------------------------------------------------- 051 052 public int available() throws IOException { 053 return in.available(); 054 } 055 056 public void close() throws IOException { 057 in.close(); 058 } 059 060 public void mark(int readlimit) { 061 in.mark(readlimit); 062 } 063 064 public boolean markSupported() { 065 return in.markSupported(); 066 } 067 068 public int read(byte[] b) throws IOException { 069 return in.read(b); 070 } 071 072 public int read(byte[] b, int off, int len) throws IOException { 073 return in.read(b, off, len); 074 } 075 076 public int read() throws IOException { 077 return in.read(); 078 } 079 080 public void reset() throws IOException { 081 in.reset(); 082 } 083 084 public long skip(long n) throws IOException { 085 return in.skip(n); 086 } 087 }