it.unimi.dsi.io
Class DelimitedWordReader

java.lang.Object
  extended by java.io.Reader
      extended by it.unimi.dsi.io.FastBufferedReader
          extended by it.unimi.dsi.io.DelimitedWordReader
All Implemented Interfaces:
WordReader, Closeable, Serializable, Readable

public class DelimitedWordReader
extends FastBufferedReader

A word reader that breaks words on a given set of characters.

This class is a simple subclass of FastBufferedReader. It overwrites isWordConstituent(char) so that word constituents are defined negatively by a set of delimiters defined at construction time. There is a constructor accepting the delimiter set as a string. Note that LF and CR are always considered to be delimiters.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class it.unimi.dsi.io.FastBufferedReader
avail, buffer, bufferSize, DEFAULT_BUFFER_SIZE, pos, reader, wordConstituents
 
Fields inherited from class java.io.Reader
lock
 
Constructor Summary
DelimitedWordReader(char[] array, CharSet delimiters)
          Creates a new delimited word reader by wrapping a given character array and using a set delimiters.
DelimitedWordReader(char[] array, int offset, int length, CharSet delimiters)
          Creates a new delimited word reader by wrapping a given fragment of a character array and using a set delimiters.
DelimitedWordReader(CharSet delimiters)
          Creates a new delimited word reader with a buffer of FastBufferedReader.DEFAULT_BUFFER_SIZE characters.
DelimitedWordReader(int bufferSize, CharSet delimiters)
          Creates a new delimited word reader with a given buffer size and set of delimiters.
DelimitedWordReader(MutableString s, CharSet delimiters)
          Creates a new delimited word reader by wrapping a given mutable string and using a set of delimiters.
DelimitedWordReader(Reader r, CharSet delimiters)
          Creates a new delimited word reader by wrapping a given reader with a buffer of FastBufferedReader.DEFAULT_BUFFER_SIZE characters using a given set of delimiters.
DelimitedWordReader(Reader r, int bufferSize, CharSet delimiters)
          Creates a new delimited word reader by wrapping a given reader with a given buffer size and using a set of delimiters.
DelimitedWordReader(String delimiters)
          Creates a new delimited word reader with a buffer of FastBufferedReader.DEFAULT_BUFFER_SIZE characters.
DelimitedWordReader(String bufferSize, String delimiters)
          Creates a new delimited word reader with a given buffer size and set of delimiters.
 
Method Summary
protected  boolean isWordConstituent(char c)
          Returns whether the given character is a word constituent.
 String toSpec()
           
 String toString()
           
 
Methods inherited from class it.unimi.dsi.io.FastBufferedReader
close, copy, next, noMoreCharacters, read, read, readLine, setReader, skip
 
Methods inherited from class java.io.Reader
mark, markSupported, read, read, ready, reset
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

DelimitedWordReader

public DelimitedWordReader(int bufferSize,
                           CharSet delimiters)
Creates a new delimited word reader with a given buffer size and set of delimiters. The wrapped reader will have to be set later using FastBufferedReader.setReader(Reader).

Parameters:
bufferSize - the size in bytes of the internal buffer.
delimiters - a set of characters that will be considered word delimiters.

DelimitedWordReader

public DelimitedWordReader(CharSet delimiters)
Creates a new delimited word reader with a buffer of FastBufferedReader.DEFAULT_BUFFER_SIZE characters. The wrapped reader will have to be set later using FastBufferedReader.setReader(Reader).

Parameters:
delimiters - a set of characters that will be considered word delimiters.

DelimitedWordReader

public DelimitedWordReader(String delimiters)
Creates a new delimited word reader with a buffer of FastBufferedReader.DEFAULT_BUFFER_SIZE characters. The wrapped reader will have to be set later using FastBufferedReader.setReader(Reader).

Parameters:
delimiters - a set of characters that will be considered word delimiters, specified as a string.

DelimitedWordReader

public DelimitedWordReader(String bufferSize,
                           String delimiters)
Creates a new delimited word reader with a given buffer size and set of delimiters. The wrapped reader will have to be set later using FastBufferedReader.setReader(Reader).

Parameters:
bufferSize - the size in bytes of the internal buffer, specified as a string.
delimiters - a set of characters that will be considered word delimiters, specified as a string.

DelimitedWordReader

public DelimitedWordReader(Reader r,
                           int bufferSize,
                           CharSet delimiters)
Creates a new delimited word reader by wrapping a given reader with a given buffer size and using a set of delimiters.

Parameters:
r - a reader to wrap.
bufferSize - the size in bytes of the internal buffer.
delimiters - a set of characters that will be considered word delimiters.

DelimitedWordReader

public DelimitedWordReader(Reader r,
                           CharSet delimiters)
Creates a new delimited word reader by wrapping a given reader with a buffer of FastBufferedReader.DEFAULT_BUFFER_SIZE characters using a given set of delimiters.

Parameters:
r - a reader to wrap.
delimiters - a set of characters that will be considered word delimiters.

DelimitedWordReader

public DelimitedWordReader(char[] array,
                           int offset,
                           int length,
                           CharSet delimiters)
Creates a new delimited word reader by wrapping a given fragment of a character array and using a set delimiters.

The effect of FastBufferedReader.setReader(Reader) on a buffer created with this constructor is undefined.

Parameters:
array - the array that will be wrapped by the reader.
offset - the first character to be used.
length - the number of character to be used.
delimiters - a set of characters that will be considered word delimiters.

DelimitedWordReader

public DelimitedWordReader(char[] array,
                           CharSet delimiters)
Creates a new delimited word reader by wrapping a given character array and using a set delimiters.

The effect of FastBufferedReader.setReader(Reader) on a buffer created with this constructor is undefined.

Parameters:
array - the array that will be wrapped by the reader.
delimiters - a set of characters that will be considered word delimiters.

DelimitedWordReader

public DelimitedWordReader(MutableString s,
                           CharSet delimiters)
Creates a new delimited word reader by wrapping a given mutable string and using a set of delimiters.

The effect of FastBufferedReader.setReader(Reader) on a buffer created with this constructor is undefined.

Parameters:
s - the mutable string that will be wrapped by the reader.
delimiters - a set of characters that will be considered word delimiters.
Method Detail

isWordConstituent

protected boolean isWordConstituent(char c)
Description copied from class: FastBufferedReader
Returns whether the given character is a word constituent.

The behaviour of this FastBufferedReader as a WordReader can be radically changed by overwriting this method.

Overrides:
isWordConstituent in class FastBufferedReader
Parameters:
c - a character.
Returns:
whether c should be considered a word constituent.

toSpec

public String toSpec()
Overrides:
toSpec in class FastBufferedReader

toString

public String toString()
Overrides:
toString in class FastBufferedReader