org.htmlparser.lexer

Class StringSource

public class StringSource extends Source

A source of characters based on a String.
Field Summary
protected StringmEncoding
The encoding to report.
protected intmMark
The bookmark.
protected intmOffset
The current offset into the string.
protected StringmString
The source of characters.
Constructor Summary
StringSource(String string)
Construct a source using the provided string.
StringSource(String string, String character_set)
Construct a source using the provided string and encoding.
Method Summary
intavailable()
Get the number of available characters.
voidclose()
Does nothing.
voiddestroy()
Close the source.
chargetCharacter(int offset)
Retrieve a character again.
voidgetCharacters(char[] array, int offset, int start, int end)
Retrieve characters again.
voidgetCharacters(StringBuffer buffer, int offset, int length)
Append characters already read into a StringBuffer.
StringgetEncoding()
Get the encoding being used to convert characters.
StringgetString(int offset, int length)
Retrieve a string comprised of characters already read.
voidmark(int readAheadLimit)
Mark the present position in the source.
booleanmarkSupported()
Tell whether this source supports the mark() operation.
intoffset()
Get the position (in characters).
intread()
Read a single character.
intread(char[] cbuf, int off, int len)
Read characters into a portion of an array.
intread(char[] cbuf)
Read characters into an array.
booleanready()
Tell whether this source is ready to be read.
voidreset()
Reset the source.
voidsetEncoding(String character_set)
Set the encoding to the given character set.
longskip(long n)
Skip characters.
voidunread()
Undo the read of a single character.

Field Detail

mEncoding

protected String mEncoding
The encoding to report. Only used by StringSource.

mMark

protected int mMark
The bookmark.

mOffset

protected int mOffset
The current offset into the string.

mString

protected String mString
The source of characters.

Constructor Detail

StringSource

public StringSource(String string)
Construct a source using the provided string. Until it is set, the encoding will be reported as ISO-8859-1.

Parameters: string The source of characters.

StringSource

public StringSource(String string, String character_set)
Construct a source using the provided string and encoding. The encoding is only used by StringSource.

Parameters: string The source of characters. character_set The encoding to report.

Method Detail

available

public int available()
Get the number of available characters.

Returns: The number of characters that can be read or zero if the source is closed.

close

public void close()
Does nothing. It's supposed to close the source, but use destroy() instead.

Throws: IOException not used

See Also: StringSource

destroy

public void destroy()
Close the source. Once a source has been closed, further read, ready, mark, reset, skip, unread, getCharacter or getString invocations will throw an IOException. Closing a previously-closed source, however, has no effect.

Throws: IOException Not thrown

getCharacter

public char getCharacter(int offset)
Retrieve a character again.

Parameters: offset The offset of the character.

Returns: The character at offset.

Throws: IOException If the source is closed or an attempt is made to read beyond offset.

getCharacters

public void getCharacters(char[] array, int offset, int start, int end)
Retrieve characters again.

Parameters: array The array of characters. offset The starting position in the array where characters are to be placed. start The starting position, zero based. end The ending position (exclusive, i.e. the character at the ending position is not included), zero based.

Throws: IOException If the source is closed or an attempt is made to read beyond offset.

getCharacters

public void getCharacters(StringBuffer buffer, int offset, int length)
Append characters already read into a StringBuffer. Asking for characters ahead of offset will throw an exception.

Parameters: buffer The buffer to append to. offset The offset of the first character. length The number of characters to retrieve.

Throws: IOException If the source is closed or an attempt is made to read beyond offset.

getEncoding

public String getEncoding()
Get the encoding being used to convert characters.

Returns: The current encoding.

getString

public String getString(int offset, int length)
Retrieve a string comprised of characters already read. Asking for characters ahead of offset will throw an exception.

Parameters: offset The offset of the first character. length The number of characters to retrieve.

Returns: A string containing the length characters at offset.

Throws: IOException If the source is closed or an attempt is made to read beyond offset.

mark

public void mark(int readAheadLimit)
Mark the present position in the source. Subsequent calls to reset will attempt to reposition the source to this point.

Parameters: readAheadLimit Not used.

Throws: IOException Thrown if the source is closed.

markSupported

public boolean markSupported()
Tell whether this source supports the mark() operation.

Returns: true.

offset

public int offset()
Get the position (in characters).

Returns: The number of characters that have already been read, or EOF if the source is closed.

read

public int read()
Read a single character.

Returns: The character read, as an integer in the range 0 to 65535 (0x00-0xffff), or EOF if the source is exhausted.

Throws: IOException If an I/O error occurs.

read

public int read(char[] cbuf, int off, int len)
Read characters into a portion of an array.

Parameters: cbuf Destination buffer off Offset at which to start storing characters len Maximum number of characters to read

Returns: The number of characters read, or EOF if the source is exhausted.

Throws: IOException If an I/O error occurs.

read

public int read(char[] cbuf)
Read characters into an array.

Parameters: cbuf Destination buffer.

Returns: The number of characters read, or EOF if the source is exhausted.

Throws: IOException If an I/O error occurs.

ready

public boolean ready()
Tell whether this source is ready to be read.

Returns: Equivalent to a non-zero available, i.e. there are still more characters to read.

Throws: IOException Thrown if the source is closed.

reset

public void reset()
Reset the source. Repositions the read point to begin at zero.

Throws: IllegalStateException If the source has been closed.

setEncoding

public void setEncoding(String character_set)
Set the encoding to the given character set. This simply sets the encoding reported by StringSource.

Parameters: character_set The character set to use to convert characters.

Throws: ParserException Not thrown.

skip

public long skip(long n)
Skip characters. Note: n is treated as an int

Parameters: n The number of characters to skip.

Returns: The number of characters actually skipped

Throws: IllegalArgumentException If n is negative. IOException If the source is closed.

unread

public void unread()
Undo the read of a single character.

Throws: IOException If no characters have been read or the source is closed.

HTML Parser is an open source library released under LGPL. SourceForge.net