IAttributeSequenceHandler
, ICDATASectionHandler
, ICommentHandler
, IDocTypeHandler
, IDocumentHandler
, IElementHandler
, IMarkupHandler
, IProcessingInstructionHandler
, ITextHandler
, IXMLDeclarationHandler
public final class AttributeSelectionMarkingMarkupHandler extends AbstractChainedMarkupHandler
Implementation of the IMarkupHandler
that
adds an attribute (with a user-specified name) to all elements that match one or more selectors,
as determined by a BlockSelectorMarkupHandler
or
NodeSelectorMarkupHandler
handler.
So for example, given an instance of this handler configured to use "selectors" as its attribute name and an <img href="logo.png"> tag that matches both selectors "//img" and "div/img", this handler would transform such tag in: <img href="logo.png" selectors="[//img,div/img]">
Constructor | Description |
---|---|
AttributeSelectionMarkingMarkupHandler(String selectorAttributeName,
IMarkupHandler handler) |
Build a new instance of this class, specifying the name of the attribute to be added to the matching elements
and also the handler all events should be delegated to.
|
Modifier and Type | Method | Description |
---|---|---|
void |
handleAttribute(char[] buffer,
int nameOffset,
int nameLen,
int nameLine,
int nameCol,
int operatorOffset,
int operatorLen,
int operatorLine,
int operatorCol,
int valueContentOffset,
int valueContentLen,
int valueOuterOffset,
int valueOuterLen,
int valueLine,
int valueCol) |
Called when an attribute is found.
|
void |
handleInnerWhiteSpace(char[] buffer,
int offset,
int len,
int line,
int col) |
Called when an amount of white space is found inside an element.
|
void |
handleOpenElementEnd(char[] buffer,
int nameOffset,
int nameLen,
int line,
int col) |
Called when the end of an open element (an open tag) is found.
|
void |
handleStandaloneElementEnd(char[] buffer,
int nameOffset,
int nameLen,
boolean minimized,
int line,
int col) |
Called when the end of a standalone element (an element with no closing tag) is found
|
void |
setParseSelection(ParseSelection selection) |
Sets the
ParseSelection object that represents the different levels of
selectors (if any) that are currently active for the fired events. |
getNext, handleAutoCloseElementEnd, handleAutoCloseElementStart, handleAutoOpenElementEnd, handleAutoOpenElementStart, handleCDATASection, handleCloseElementEnd, handleCloseElementStart, handleComment, handleDocType, handleDocumentEnd, handleDocumentStart, handleOpenElementStart, handleProcessingInstruction, handleStandaloneElementStart, handleText, handleUnmatchedCloseElementEnd, handleUnmatchedCloseElementStart, handleXmlDeclaration, setParseConfiguration, setParseStatus
public AttributeSelectionMarkingMarkupHandler(String selectorAttributeName, IMarkupHandler handler)
Build a new instance of this class, specifying the name of the attribute to be added to the matching elements and also the handler all events should be delegated to.
selectorAttributeName
- the name of the marking attribute.handler
- the handler to delegate events to.public void setParseSelection(ParseSelection selection)
IMarkupHandler
Sets the ParseSelection
object that represents the different levels of
selectors (if any) that are currently active for the fired events.
This method is always called by the parser before calling any other event handling method.
Note that this method can be safely ignored by most implementations, as there are very few scenarios in which this kind of interaction would be consisdered relevant.
setParseSelection
in interface IMarkupHandler
setParseSelection
in class AbstractChainedMarkupHandler
selection
- the selection object.public void handleAttribute(char[] buffer, int nameOffset, int nameLen, int nameLine, int nameCol, int operatorOffset, int operatorLen, int operatorLine, int operatorCol, int valueContentOffset, int valueContentLen, int valueOuterOffset, int valueOuterLen, int valueLine, int valueCol) throws ParseException
IAttributeSequenceHandler
Called when an attribute is found.
Three [offset, len] pairs are provided for three partitions (name, operator, valueContent and valueOuter):
class="basic_column"
[NAM]* [VALUECONTE]| (*) = [OPERATOR]
| [VALUEOUTER--]
[OUTER-------------]
Artifacts are reported using the document buffer directly, and this buffer should not be considered to be immutable, so reported structures should be copied if they need to be stored (either by copying len chars from the buffer char[] starting in offset or by creating a String from it using the same specification).
Implementations of this handler should never modify the document buffer.
handleAttribute
in interface IAttributeSequenceHandler
handleAttribute
in class AbstractChainedMarkupHandler
buffer
- the document buffer (not copied)nameOffset
- offset for the name partition.nameLen
- length of the name partition.nameLine
- the line in the original document where the name partition starts.nameCol
- the column in the original document where the name partition starts.operatorOffset
- offset for the operator partition.operatorLen
- length of the operator partition.operatorLine
- the line in the original document where the operator partition starts.operatorCol
- the column in the original document where the operator partition starts.valueContentOffset
- offset for the valueContent partition.valueContentLen
- length of the valueContent partition.valueOuterOffset
- offset for the valueOuter partition.valueOuterLen
- length of the valueOuter partition.valueLine
- the line in the original document where the value (outer) partition starts.valueCol
- the column in the original document where the value (outer) partition starts.ParseException
- if any exceptions occur during handling.public void handleStandaloneElementEnd(char[] buffer, int nameOffset, int nameLen, boolean minimized, int line, int col) throws ParseException
IElementHandler
Called when the end of a standalone element (an element with no closing tag) is found
Artifacts are reported using the document buffer directly, and this buffer should not be considered to be immutable, so reported structures should be copied if they need to be stored (either by copying len chars from the buffer char[] starting in offset or by creating a String from it using the same specification).
Implementations of this handler should never modify the document buffer.
handleStandaloneElementEnd
in interface IElementHandler
handleStandaloneElementEnd
in class AbstractChainedMarkupHandler
buffer
- the document buffer (not copied)nameOffset
- the offset (position in buffer) where the element name appears.nameLen
- the length (in chars) of the element name.minimized
- whether the element has been found minimized (<element/>)in code or not.line
- the line in the original document where the element ending structure appears.col
- the column in the original document where the element ending structure appears.ParseException
- if any exceptions occur during handling.public void handleOpenElementEnd(char[] buffer, int nameOffset, int nameLen, int line, int col) throws ParseException
IElementHandler
Called when the end of an open element (an open tag) is found.
Artifacts are reported using the document buffer directly, and this buffer should not be considered to be immutable, so reported structures should be copied if they need to be stored (either by copying len chars from the buffer char[] starting in offset or by creating a String from it using the same specification).
Implementations of this handler should never modify the document buffer.
handleOpenElementEnd
in interface IElementHandler
handleOpenElementEnd
in class AbstractChainedMarkupHandler
buffer
- the document buffer (not copied)nameOffset
- the offset (position in buffer) where the element name appears.nameLen
- the length (in chars) of the element name.line
- the line in the original document where the element ending structure appears.col
- the column in the original document where the element ending structure appears.ParseException
- if any exceptions occur during handling.public void handleInnerWhiteSpace(char[] buffer, int offset, int len, int line, int col) throws ParseException
IAttributeSequenceHandler
Called when an amount of white space is found inside an element.
This attribute separators can contain any amount of whitespace, including line feeds:
<div id="main" class="basic_column">
[INNWSP]
Artifacts are reported using the document buffer directly, and this buffer should not be considered to be immutable, so reported structures should be copied if they need to be stored (either by copying len chars from the buffer char[] starting in offset or by creating a String from it using the same specification).
Implementations of this handler should never modify the document buffer.
handleInnerWhiteSpace
in interface IAttributeSequenceHandler
handleInnerWhiteSpace
in class AbstractChainedMarkupHandler
buffer
- the document buffer (not copied)offset
- offset for the artifact.len
- length of the artifact.line
- the line in the original document where the artifact starts.col
- the column in the original document where the artifact starts.ParseException
- if any exceptions occur during handling.Copyright © 2018 The ATTOPARSER team. All rights reserved.