org.apache.commons.io.input
Class ProxyReader

java.lang.Object
  extended by java.io.Reader
      extended by java.io.FilterReader
          extended by org.apache.commons.io.input.ProxyReader
All Implemented Interfaces:
Closeable, Readable

public abstract class ProxyReader
extends FilterReader

A Proxy stream which acts as expected, that is it passes the method calls on to the proxied stream and doesn't change which methods are being called.

It is an alternative base class to FilterReader to increase reusability, because FilterReader changes the methods being called, such as read(char[]) to read(char[], int, int).

Version:
$Id: ProxyReader.java 1304052 2012-03-22 20:55:29Z ggregory $

Field Summary
 
Fields inherited from class java.io.FilterReader
in
 
Fields inherited from class java.io.Reader
lock
 
Constructor Summary
ProxyReader(Reader proxy)
          Constructs a new ProxyReader.
 
Method Summary
protected  void afterRead(int n)
          Invoked by the read methods after the proxied call has returned successfully.
protected  void beforeRead(int n)
          Invoked by the read methods before the call is proxied.
 void close()
          Invokes the delegate's close() method.
protected  void handleIOException(IOException e)
          Handle any IOExceptions thrown.
 void mark(int idx)
          Invokes the delegate's mark(int) method.
 boolean markSupported()
          Invokes the delegate's markSupported() method.
 int read()
          Invokes the delegate's read() method.
 int read(char[] chr)
          Invokes the delegate's read(char[]) method.
 int read(char[] chr, int st, int len)
          Invokes the delegate's read(char[], int, int) method.
 int read(CharBuffer target)
          Invokes the delegate's read(CharBuffer) method.
 boolean ready()
          Invokes the delegate's ready() method.
 void reset()
          Invokes the delegate's reset() method.
 long skip(long ln)
          Invokes the delegate's skip(long) method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ProxyReader

public ProxyReader(Reader proxy)
Constructs a new ProxyReader.

Parameters:
proxy - the Reader to delegate to
Method Detail

read

public int read()
         throws IOException
Invokes the delegate's read() method.

Overrides:
read in class FilterReader
Returns:
the character read or -1 if the end of stream
Throws:
IOException - if an I/O error occurs

read

public int read(char[] chr)
         throws IOException
Invokes the delegate's read(char[]) method.

Overrides:
read in class Reader
Parameters:
chr - the buffer to read the characters into
Returns:
the number of characters read or -1 if the end of stream
Throws:
IOException - if an I/O error occurs

read

public int read(char[] chr,
                int st,
                int len)
         throws IOException
Invokes the delegate's read(char[], int, int) method.

Overrides:
read in class FilterReader
Parameters:
chr - the buffer to read the characters into
st - The start offset
len - The number of bytes to read
Returns:
the number of characters read or -1 if the end of stream
Throws:
IOException - if an I/O error occurs

read

public int read(CharBuffer target)
         throws IOException
Invokes the delegate's read(CharBuffer) method.

Specified by:
read in interface Readable
Overrides:
read in class Reader
Parameters:
target - the char buffer to read the characters into
Returns:
the number of characters read or -1 if the end of stream
Throws:
IOException - if an I/O error occurs
Since:
2.0

skip

public long skip(long ln)
          throws IOException
Invokes the delegate's skip(long) method.

Overrides:
skip in class FilterReader
Parameters:
ln - the number of bytes to skip
Returns:
the number of bytes to skipped or -1 if the end of stream
Throws:
IOException - if an I/O error occurs

ready

public boolean ready()
              throws IOException
Invokes the delegate's ready() method.

Overrides:
ready in class FilterReader
Returns:
true if the stream is ready to be read
Throws:
IOException - if an I/O error occurs

close

public void close()
           throws IOException
Invokes the delegate's close() method.

Specified by:
close in interface Closeable
Overrides:
close in class FilterReader
Throws:
IOException - if an I/O error occurs

mark

public void mark(int idx)
          throws IOException
Invokes the delegate's mark(int) method.

Overrides:
mark in class FilterReader
Parameters:
idx - read ahead limit
Throws:
IOException - if an I/O error occurs

reset

public void reset()
           throws IOException
Invokes the delegate's reset() method.

Overrides:
reset in class FilterReader
Throws:
IOException - if an I/O error occurs

markSupported

public boolean markSupported()
Invokes the delegate's markSupported() method.

Overrides:
markSupported in class FilterReader
Returns:
true if mark is supported, otherwise false

beforeRead

protected void beforeRead(int n)
                   throws IOException
Invoked by the read methods before the call is proxied. The number of chars that the caller wanted to read (1 for the read() method, buffer length for read(char[]), etc.) is given as an argument.

Subclasses can override this method to add common pre-processing functionality without having to override all the read methods. The default implementation does nothing.

Note this method is not called from skip(long) or reset(). You need to explicitly override those methods if you want to add pre-processing steps also to them.

Parameters:
n - number of chars that the caller asked to be read
Throws:
IOException - if the pre-processing fails
Since:
2.0

afterRead

protected void afterRead(int n)
                  throws IOException
Invoked by the read methods after the proxied call has returned successfully. The number of chars returned to the caller (or -1 if the end of stream was reached) is given as an argument.

Subclasses can override this method to add common post-processing functionality without having to override all the read methods. The default implementation does nothing.

Note this method is not called from skip(long) or reset(). You need to explicitly override those methods if you want to add post-processing steps also to them.

Parameters:
n - number of chars read, or -1 if the end of stream was reached
Throws:
IOException - if the post-processing fails
Since:
2.0

handleIOException

protected void handleIOException(IOException e)
                          throws IOException
Handle any IOExceptions thrown.

This method provides a point to implement custom exception handling. The default behaviour is to re-throw the exception.

Parameters:
e - The IOException thrown
Throws:
IOException - if an I/O error occurs
Since:
2.0


Copyright © 2002-2012 The Apache Software Foundation. All Rights Reserved.