HTML Parser Home Page

org.htmlparser.lexer
Class StringSource

java.lang.Object
  extended by java.io.Reader
      extended by org.htmlparser.lexer.Source
          extended by org.htmlparser.lexer.StringSource
All Implemented Interfaces:
Closeable, Serializable, Readable

public class StringSource
extends Source

A source of characters based on a String.

See Also:
Serialized Form

Field Summary
protected  String mEncoding
          The encoding to report.
protected  int mMark
          The bookmark.
protected  int mOffset
          The current offset into the string.
protected  String mString
          The source of characters.
 
Fields inherited from class org.htmlparser.lexer.Source
EOF
 
Fields inherited from class java.io.Reader
lock
 
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
 int available()
          Get the number of available characters.
 void close()
          Does nothing.
 void destroy()
          Close the source.
 char getCharacter(int offset)
          Retrieve a character again.
 void getCharacters(char[] array, int offset, int start, int end)
          Retrieve characters again.
 void getCharacters(StringBuffer buffer, int offset, int length)
          Append characters already read into a StringBuffer.
 String getEncoding()
          Get the encoding being used to convert characters.
 String getString(int offset, int length)
          Retrieve a string comprised of characters already read.
 void mark(int readAheadLimit)
          Mark the present position in the source.
 boolean markSupported()
          Tell whether this source supports the mark() operation.
 int offset()
          Get the position (in characters).
 int read()
          Read a single character.
 int read(char[] cbuf)
          Read characters into an array.
 int read(char[] cbuf, int off, int len)
          Read characters into a portion of an array.
 boolean ready()
          Tell whether this source is ready to be read.
 void reset()
          Reset the source.
 void setEncoding(String character_set)
          Set the encoding to the given character set.
 long skip(long n)
          Skip characters.
 void unread()
          Undo the read of a single character.
 
Methods inherited from class java.io.Reader
read
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

mString

protected String mString
The source of characters.


mOffset

protected int mOffset
The current offset into the string.


mEncoding

protected String mEncoding
The encoding to report. Only used by getEncoding().


mMark

protected int mMark
The bookmark.

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 getEncoding().

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

getEncoding

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

Specified by:
getEncoding in class Source
Returns:
The current encoding.

setEncoding

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

Specified by:
setEncoding in class Source
Parameters:
character_set - The character set to use to convert characters.
Throws:
ParserException - Not thrown.

close

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

Specified by:
close in interface Closeable
Specified by:
close in class Source
Throws:
IOException - not used
See Also:
destroy()

read

public int read()
         throws IOException
Read a single character.

Specified by:
read in class Source
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)
         throws IOException
Read characters into a portion of an array.

Specified by:
read in class Source
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)
         throws IOException
Read characters into an array.

Specified by:
read in class Source
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()
              throws IOException
Tell whether this source is ready to be read.

Specified by:
ready in class Source
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()
           throws IllegalStateException
Reset the source. Repositions the read point to begin at zero.

Specified by:
reset in class Source
Throws:
IllegalStateException - If the source has been closed.

markSupported

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

Specified by:
markSupported in class Source
Returns:
true.

mark

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

Specified by:
mark in class Source
Parameters:
readAheadLimit - Not used.
Throws:
IOException - Thrown if the source is closed.

skip

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

Specified by:
skip in class Source
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()
            throws IOException
Undo the read of a single character.

Specified by:
unread in class Source
Throws:
IOException - If no characters have been read or the source is closed.

getCharacter

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

Specified by:
getCharacter in class Source
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)
                   throws IOException
Retrieve characters again.

Specified by:
getCharacters in class Source
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().

getString

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

Specified by:
getString in class Source
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().

getCharacters

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

Specified by:
getCharacters in class Source
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().

destroy

public void destroy()
             throws IOException
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.

Specified by:
destroy in class Source
Throws:
IOException - Not thrown

offset

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

Specified by:
offset in class Source
Returns:
The number of characters that have already been read, or EOF if the source is closed.

available

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

Specified by:
available in class Source
Returns:
The number of characters that can be read or zero if the source is closed.

© 2006 Derrick Oswald
Sep 17, 2006

HTML Parser is an open source library released under Common Public License. SourceForge.net