org.jsoup.parser
Class TokenQueue

java.lang.Object
  extended by org.jsoup.parser.TokenQueue

public class TokenQueue
extends Object

A character queue with parsing helpers.

Author:
Jonathan Hedley

Constructor Summary
TokenQueue(String data)
          Create a new TokenQueue.
 
Method Summary
 void addFirst(Character c)
          Add a character to the start of the queue (will be the next character retrieved).
 void addFirst(String seq)
          Add a string to the start of the queue.
 String chompTo(String seq)
          Pulls a string off the queue (like consumeTo), and then pulls off the matched string (but does not return it).
 Character consume()
          Consume one character off queue.
 void consume(String seq)
          Consumes the supplied sequence of the queue.
 String consumeAttributeKey()
          Consume an attribute key off the queue (letter, digit, -, _, :")
 String consumeClassName()
          Consume a HTML class name off the queue (letter, digit, -, _)
 String consumeTo(String seq)
          Pulls a string off the queue, up to but exclusive of the match sequence, or to the queue running out.
 String consumeToAny(String... seq)
          Consumes to the first sequence provided, or to the end of the queue.
 boolean consumeWhitespace()
          Pulls the next run of whitespace characters of the queue.
 String consumeWord()
          Retrieves the next run of word type (letter or digit) off the queue.
 boolean isEmpty()
          Is the queue empty?
 boolean matchChomp(String seq)
          Tests if the queue matches the sequence (as with match), and if they do, removes the matched string from the queue.
 boolean matches(String seq)
          Tests if the next characters on the queue match the sequence.
 boolean matchesAny(String... seq)
          Tests if the next characters match any of the sequences.
 boolean matchesWhitespace()
          Tests if queue starts with a whitespace character.
 boolean matchesWord()
          Test if the queue matches a word character (letter or digit).
 Character peek()
          Retrieves but does not remove the first characater from the queue.
 String remainder()
          Consume and return whatever is left on the queue.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TokenQueue

public TokenQueue(String data)
Create a new TokenQueue.

Parameters:
data - string of data to back queue.
Method Detail

isEmpty

public boolean isEmpty()
Is the queue empty?

Returns:
true if no data left in queue.

peek

public Character peek()
Retrieves but does not remove the first characater from the queue.

Returns:
First character, or null if empty.

addFirst

public void addFirst(Character c)
Add a character to the start of the queue (will be the next character retrieved).

Parameters:
c - character to add

addFirst

public void addFirst(String seq)
Add a string to the start of the queue.

Parameters:
seq - string to add.

matches

public boolean matches(String seq)
Tests if the next characters on the queue match the sequence. Case insensitive.

Parameters:
seq - String to check queue for.
Returns:
true if the next characters match.

matchesAny

public boolean matchesAny(String... seq)
Tests if the next characters match any of the sequences.

Parameters:
seq -
Returns:

matchChomp

public boolean matchChomp(String seq)
Tests if the queue matches the sequence (as with match), and if they do, removes the matched string from the queue.

Parameters:
seq - String to search for, and if found, remove from queue.
Returns:
true if found and removed, false if not found.

matchesWhitespace

public boolean matchesWhitespace()
Tests if queue starts with a whitespace character.

Returns:
if starts with whitespace

matchesWord

public boolean matchesWord()
Test if the queue matches a word character (letter or digit).

Returns:
if matches a word character

consume

public Character consume()
Consume one character off queue.

Returns:
first character on queue.

consume

public void consume(String seq)
Consumes the supplied sequence of the queue. If the queue does not start with the supplied sequence, will throw an illegal state exception -- but you should be running match() against that condition.

Case insensitive.

Parameters:
seq - sequence to remove from head of queue.

consumeTo

public String consumeTo(String seq)
Pulls a string off the queue, up to but exclusive of the match sequence, or to the queue running out.

Parameters:
seq - String to end on (and not include in return, but leave on queue)
Returns:
The matched data consumed from queue.

consumeToAny

public String consumeToAny(String... seq)
Consumes to the first sequence provided, or to the end of the queue. Leaves the terminator on the queue.

Parameters:
seq - any number of terminators to consume to
Returns:
consumed string

chompTo

public String chompTo(String seq)
Pulls a string off the queue (like consumeTo), and then pulls off the matched string (but does not return it).

If the queue runs out of characters before finding the seq, will return as much as it can (and queue will go isEmpty() == true).

Parameters:
seq - String to match up to, and not include in return, and to pull off queue
Returns:
Data matched from queue.

consumeWhitespace

public boolean consumeWhitespace()
Pulls the next run of whitespace characters of the queue.


consumeWord

public String consumeWord()
Retrieves the next run of word type (letter or digit) off the queue.

Returns:
String of word characters from queue, or empty string if none.

consumeClassName

public String consumeClassName()
Consume a HTML class name off the queue (letter, digit, -, _)

Returns:
classname

consumeAttributeKey

public String consumeAttributeKey()
Consume an attribute key off the queue (letter, digit, -, _, :")

Returns:
attribute key

remainder

public String remainder()
Consume and return whatever is left on the queue.

Returns:
remained of queue.

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2009-2010 Jonathan Hedley. All Rights Reserved.