public final class SimpleMarkupParser extends Object implements ISimpleMarkupParser
Default implementation of ISimpleMarkupParser
.
AttoParser simple markup parsers work as SAX-style parsers that need
a markup handler object for handling parsing events. These handlers implement
the ISimpleMarkupHandler
interface, and are normally developed by
users in order to perform the operations they require for their applications.
See the documentation of the ISimpleMarkupHandler
interface for more
information on the event handler methods.
Note that this parser class and its corresponding handlers are actually a simplified
version of the full-blown IMarkupParser
infrastructure.
Sample usage:
// Obtain a java.io.Reader on the document to be parsed
final Reader documentReader = ...;
// Create the handler instance. Extending the no-op AbstractSimpleMarkupHandler is a good start
final ISimpleMarkupHandler handler = new AbstractSimpleMarkupHandler() {
... // some events implemented
};
// Create or obtain the parser instance (can be reused). Example uses the default configuration for HTML
final ISimpleMarkupParser parser = new SimpleMarkupParser(ParseConfiguration.htmlConfiguration());
// Parse it!
parser.parse(documentReader, handler);
This parser class uses an instance of the MarkupParser
class underneath (configured
with the default values for its buffer pool), and applies to it an instance of the
SimplifierMarkupHandler
handler class in order to make it able to report
handling events by means of an ISimpleMarkupHandler
implementation instead of using
the default IMarkupHandler
interface.
In fact, using the SimpleMarkupParser
class as shown above is completely
equivalent to:
// Obtain a java.io.Reader on the document to be parsed
final Reader documentReader = ...;
// Create the handler instance. Extending the no-op AbstractSimpleMarkupHandler is a good start
final ISimpleMarkupHandler simpleHandler = new AbstractSimpleMarkupHandler() {
... // some events implemented
};
// Create a handler chain with the 'simplifier' handler, which will convert events from 'normal' to 'simple'.
final IMarkupHandler handler = new SimplifierMarkupHandler(simpleHandler);
// Create or obtain the parser instance (note this is not the 'simple' one!)
final IMarkupParser parser = new MarkupParser(ParseConfiguration.htmlConfiguration());
// Parse it!
parser.parse(documentReader, handler);
This parser class is thread-safe. However, take into account that, normally,
ISimpleMarkupHandler
implementations are not. So, even if parsers can be reused,
handler objects usually cannot.
Constructor and Description |
---|
SimpleMarkupParser(ParseConfiguration configuration) |
Modifier and Type | Method and Description |
---|---|
void |
parse(char[] document,
int offset,
int len,
ISimpleMarkupHandler handler)
Parse a document using the specified
ISimpleMarkupHandler . |
void |
parse(char[] document,
ISimpleMarkupHandler handler)
Parse a document using the specified
ISimpleMarkupHandler . |
void |
parse(Reader reader,
ISimpleMarkupHandler handler)
Parse a document using the specified
ISimpleMarkupHandler . |
void |
parse(String document,
ISimpleMarkupHandler handler)
Parse a document using the specified
ISimpleMarkupHandler . |
public SimpleMarkupParser(ParseConfiguration configuration)
public void parse(String document, ISimpleMarkupHandler handler) throws ParseException
ISimpleMarkupParser
Parse a document using the specified ISimpleMarkupHandler
.
parse
in interface ISimpleMarkupParser
document
- the document to be parsed, as a String.handler
- the handler to be used, an ISimpleMarkupHandler
implementation.ParseException
- if the document cannot be parsed.public void parse(char[] document, ISimpleMarkupHandler handler) throws ParseException
ISimpleMarkupParser
Parse a document using the specified ISimpleMarkupHandler
.
parse
in interface ISimpleMarkupParser
document
- the document to be parsed, as a char[].handler
- the handler to be used, an ISimpleMarkupHandler
implementation.ParseException
- if the document cannot be parsed.public void parse(char[] document, int offset, int len, ISimpleMarkupHandler handler) throws ParseException
ISimpleMarkupParser
Parse a document using the specified ISimpleMarkupHandler
.
parse
in interface ISimpleMarkupParser
document
- the document to be parsed, as a char[].offset
- the offset to be applied on the char[] document to determine the
start of the document contents.len
- the length (in chars) of the document stored in the char[].handler
- the handler to be used, an ISimpleMarkupHandler
implementation.ParseException
- if the document cannot be parsed.public void parse(Reader reader, ISimpleMarkupHandler handler) throws ParseException
ISimpleMarkupParser
Parse a document using the specified ISimpleMarkupHandler
.
Implementations of this interface must close the provided Reader
object after parsing.
parse
in interface ISimpleMarkupParser
reader
- a Reader on the document.handler
- the handler to be used, an ISimpleMarkupHandler
implementation.ParseException
- if the document cannot be parsed.Copyright © 2023 The ATTOPARSER team. All rights reserved.