de.intarsys.tools.reader
Class LocationAwareReader
java.lang.Object
java.io.Reader
java.io.FilterReader
de.intarsys.tools.reader.LocationAwareReader
- All Implemented Interfaces:
- ILocationProvider, java.io.Closeable, java.lang.Readable
public class LocationAwareReader
- extends java.io.FilterReader
- implements ILocationProvider
An implementation of ILocationProvider. This class can be "piped" in a reader
stream to access the current "pointer" into the data.
A common pitfall is to read the ILocationProvider via a BufferedReader - this
will certainly not provide with a correct character location!
Fields inherited from class java.io.FilterReader |
in |
Fields inherited from class java.io.Reader |
lock |
Methods inherited from class java.io.FilterReader |
mark, markSupported, ready, reset |
Methods inherited from class java.io.Reader |
read, read |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
LocationAwareReader
public LocationAwareReader(java.io.Reader in)
close
public void close()
throws java.io.IOException
- Specified by:
close
in interface java.io.Closeable
- Overrides:
close
in class java.io.FilterReader
- Throws:
java.io.IOException
ensureOpen
public void ensureOpen()
throws java.io.IOException
- Throws:
java.io.IOException
getColumn
public int getColumn()
- Specified by:
getColumn
in interface ILocationProvider
getLine
public int getLine()
- Specified by:
getLine
in interface ILocationProvider
getPosition
public int getPosition()
- Specified by:
getPosition
in interface ILocationProvider
read
public int read()
throws java.io.IOException
- Overrides:
read
in class java.io.FilterReader
- Throws:
java.io.IOException
read
public int read(char[] cbuf,
int off,
int len)
throws java.io.IOException
- Overrides:
read
in class java.io.FilterReader
- Throws:
java.io.IOException
setColumn
public void setColumn(int column)
- Parameters:
column
- The column to set.
setLine
public void setLine(int line)
- Parameters:
line
- The line to set.
setLocation
public void setLocation(int line,
int column)
- Offset the current location to a user defined line and column.
- Parameters:
line
- The line we want the reader to accept as new locationcolumn
- The column we want the reader to accept as new location
setPosition
public void setPosition(int position)
- Parameters:
position
- The position to set.
skip
public long skip(long n)
throws java.io.IOException
- Overrides:
skip
in class java.io.FilterReader
- Throws:
java.io.IOException