public interface Callback
This interface is very loosely inspired to the SAX2 interface. However, it strives to be simple, and to be StringFree™.
By contract, all implementations of this interface are bound to be reusable:
by calling startDocument()
, a callback can be used again.
It must be safe to call startDocument()
any number of times.
Modifier and Type | Field and Description |
---|---|
static Callback[] |
EMPTY_CALLBACK_ARRAY
A singleton empty callback array.
|
Modifier and Type | Method and Description |
---|---|
boolean |
cdata(Element element,
char[] text,
int offset,
int length)
Receive notification of the content of a CDATA section.
|
boolean |
characters(char[] text,
int offset,
int length,
boolean flowBroken)
Receive notification of character data inside an element.
|
void |
configure(BulletParser parser)
Configure the parser for usage with this callback.
|
void |
endDocument()
Receive notification of the end of the document.
|
boolean |
endElement(Element element)
Receive notification of the end of an element.
|
void |
startDocument()
Receive notification of the beginning of the document.
|
boolean |
startElement(Element element,
Map<Attribute,MutableString> attrMap)
Receive notification of the start of an element.
|
static final Callback[] EMPTY_CALLBACK_ARRAY
void configure(BulletParser parser)
When a callback is registered with a parser, it needs to set up the parser so that all data required by the callback is actually parsed. The configuration must be a monotone process—you can only set properties and add attribute types to be parsed.
void startDocument()
The callback must use this method to reset its internal state so that it can be resued. It must be safe to invoke this method several times.
boolean startElement(Element element, Map<Attribute,MutableString> attrMap)
For simple elements, this is the only notification that the callback will ever receive.
element
- the element whose opening tag was found.attrMap
- a map from Attribute
s to MutableString
s.boolean endElement(Element element)
This method will never be called for element without closing tags, even if such a tag is found.
element
- the element whose closing tag was found.boolean characters(char[] text, int offset, int length, boolean flowBroken)
You must not write into text
, as it could be passed
around to many callbacks.
flowBroken
will be true iff
the flow was broken before text
. This feature makes it possible
to extract quickly the text in a document without looking at the elements.
text
- an array containing the character data.offset
- the start position in the array.length
- the number of characters to read from the array.flowBroken
- whether the flow is broken at the start of text
.boolean cdata(Element element, char[] text, int offset, int length)
CDATA sections in an HTML document are the result of meeting a STYLE or SCRIPT element. In that case, the element will be passed as first argument.
You must not write into text
, as it could be passed
around to many callbacks.
element
- the element enclosing the CDATA section, or null
if the
CDATA section was created with explicit markup.text
- an array containing the character data.offset
- the start position in the array.length
- the number of characters to read from the array.void endDocument()
Copyright © 2006–2019 SYSTAP, LLC DBA Blazegraph. All rights reserved.