Package Torello.HTML.NodeSearch
Class InnerTagIterator
- java.lang.Object
-
- Torello.HTML.NodeSearch.InnerTagIterator
-
public class InnerTagIterator extends java.lang.Object
InnerTagIterator 🠞
InnerTag:
This implies that Attribute key-value pairs located within the HTMLTagNode
instances themselves are used as a search criteria for retrievingTagNode's
.
Iterator:
This means that javaIterator's
(extension ofjava.util.ListIterator<E>
) are returned, rather than simple-results or vectors of results.Iterator's
make updating aVector<HTMLNode>
much easier (by avoiding the problems caused by stale index-pointers), and usually simply many of the retrieval & removal operations when large HTMLTABLE
andUL / OL
are involved.
Static
methods for building and instantiating anHNLI
<
TagNode
>
(which extends the basic iterator class) for iterating the tags inside of an HTML-Vector
, using match-critera which specify attribute name & value requirements.
Methods Available
Method Explanation get (...) This will return an HNLI<TagNode>
(an HTML-package-specializedIterator
instance class) that cycles throughTagNode
matches into the vectorized-HTML-page parameter'html'
Method Parameters
Parameter Explanation Vector<? extends HTMLNode> html
This represents any vectorized HTML page, sub-page, or list of partial-elements. String htmlTag
When this parameter is present, only HTMLNode's
which are both instances ofclass TagNode
*and* have aTagNode.tok
field whose value is equal to this parameter'htmlTag'
, will be returned as matches.
COMMON EXAMPLES: Some common examples of valid'htmlTags'
are:a, div, img, table, tr, meta
as well as all other valid HTML element-tokens.
NOTE: This comparison is performed using a case-insensitive compare-method.
EXCEPTIONS: If this parameter is not a valid HTML element, anHTMLTokException
will be thrown.String... htmlTags
When this parameter is present, only HTMLNode's
which are both instances ofclass TagNode
*and* whoseTagNode.tok
fieldString
-value matches (is equal to) at least one of the elements in thisVarArgs String
parameter-set will be considered for a match. The same example HTML elements used in the previous parameter description apply here as well (a, div, img, table, tr, meta
) etc...
NOTE: This comparison is performed using a case-insensitive compare-method.
EXCEPTIONS: If even one of the elements in this parameter-set is an invalid HTML token, anHTMLTokException
will be thrown.
FINALLY: This parameter is only available as an option for search-methods that utilize thePredicate<TagNode>
parameter-option too. Most of the search-method options available in this class allow only one HTML 'token' element as a search parameter option.String innerTag
This parameter is mandatory for every method here, except one's that receive a Predicate<TagNode>
parameter. This parameter is used to identify the HTML-attribute or "Inner Tag" for whose values the programmer is comparing or testing.
NOTE: The comparison's performed on the HTML element for the attribute name are performed using a case-insensitive compare-method.
EXCEPTIONS: AnInnerTagKeyException
will be thrown if this parameter does not represent a valid HTML attribute name.
USE: Whenever this parameter is present, the value retrieved from the invocation oftagNode.AV(innerTag)
are always passed to the text-comparing methods listed below.
MOST COMMON: The most common exampleString's
used for parameter'innerTag'
(also called 'attribute') would include tags such as:'id', 'class', 'src', 'href', 'style', 'width', 'onclick', 'onload', etc...
TextComparitor tc
WORKS WITH: This parameter works in coordination with parameter 'innerTag'
. After the Attribute-value is retrieved from an HTML-element by method call:tagNode.AV(innerTag);
The results from this invocation are sent toTextComparitor
parameter'tc'
.
ALSO WITH: This parameter also utilizes / works alongside theString... compareStr
parameter for performing it's comparisons of the attribute list inside of a given HTML elementTagNode
.
When this parameter is present in a method-signature parameter-list, the decision of whether aTagNode
is to be included in the search result-set is defined by this parameter'sBiPredicate.test(...)
method.TextComparitor
is a JavaBiPredicate<String, String[]>
, which compares the attribute-value that was retrieved with a list of compare-String's
(parameter'compareStr'
).Pattern p
WORKS WITH: This parameter works in coordination with parameter 'innerTag'
. After the Attribute-value is retrieved from HTML-element by method call:tagNode.AV(innerTag);
The results from this call are sent to Regular-ExpressionPattern 'p'
.
When this parameter is present in the method-signature parameter-list, the decision of whether aTagNode
is to be included in the search result-set are made by the regular expression generated'Matcher'
against the attribute-value that was retrieved.
Specifically:p.asPredicate().test(attribute_value)
Predicate<String> p
WORKS WITH: This parameter works in coordination with parameter 'innerTag'
. After the Attribute-value is retrieved from an HTML-element by method call:tagNode.AV(innerTag);
The results from this call are sent to this JavaFunctional Interface Predicate
parameter'p'
.
When this parameter is present in the method-signature parameter-list, the decision of whether aTagNode
is to be included in the search result-set are made by the results of the JavaPredicate.test(String)
method.
Specifically:p.test(attribute_value)
String... compareStr
WORKS WITH: This parameter works in coordination with parameter TextComparitor tc
. This parameter supplies theString's
with which the comparisons of the attribute-value may be compared.
For Example: If the following values (below) were passed to these search-methods:- If:
'innerTag'
were equal to'class'
- And:
'tc'
were equal toTextComparitor.C
- And:
'compareStr'
were equal to'MyMainClass'
The search would match any and allTagNode
instances whose CSS'class'
contained'MyMainClass'
Predicate<TagNode>
When this parameter is present in the method-signature parameter-list, the decision of whether a TagNode
is to be included in the search result-set are made by calling thisPredicate's test(TagNode)
method.Return Values:
All methods return anHNLI<TagNode>
, which returns, one-at-a-time, matches in the vectorized-HTML page parameter'html'
.
Hi-Lited Source-Code:- View Here: Torello/HTML/NodeSearch/InnerTagIterator.java
- Open New Browser-Tab: Torello/HTML/NodeSearch/InnerTagIterator.java
File Size: 5,154 Bytes Line Count: 110 '\n' Characters Found
Stateless Class:This class neither contains any program-state, nor can it be instantiated. The@StaticFunctional
Annotation may also be called 'The Spaghetti Report'.Static-Functional
classes are, essentially, C-Styled Files, without any constructors or non-static member fields. It is a concept very similar to the Java-Bean's@Stateless
Annotation.
- 1 Constructor(s), 1 declared private, zero-argument constructor
- 12 Method(s), 12 declared static
- 0 Field(s)
-
-
Method Summary
Get Iterator, Any HTML-Tag Will Match Attribute-Value Test Modifier and Type Method Presence-Of, Only static HNLI<TagNode>
get(Vector<? extends HTMLNode> html, String innerTag)
String-Predicate static HNLI<TagNode>
get(Vector<? extends HTMLNode> html, String innerTag, Predicate<String> attributeValuePred)
Regular-Expression static HNLI<TagNode>
get(Vector<? extends HTMLNode> html, String innerTag, Pattern p)
TextComparitor static HNLI<TagNode>
get(Vector<? extends HTMLNode> html, String innerTag, TextComparitor tc, String... compareStr)
This search expects a customized Predicate<TagNode>
orAVT
instanceNONE static HNLI<TagNode>
get(Vector<? extends HTMLNode> html, Predicate<TagNode> p)
Get Iterator, Specified HTML-Tag(s) Only Attribute-Value Test Modifier and Type Method Presence-Of, Only static HNLI<TagNode>
get(Vector<? extends HTMLNode> html, String htmlTag, String innerTag)
String-Predicate static HNLI<TagNode>
get(Vector<? extends HTMLNode> html, String htmlTag, String innerTag, Predicate<String> attributeValuePred)
Regular-Expression static HNLI<TagNode>
get(Vector<? extends HTMLNode> html, String htmlTag, String innerTag, Pattern p)
TextComparitor static HNLI<TagNode>
get(Vector<? extends HTMLNode> html, String htmlTag, String innerTag, TextComparitor tc, String... compareStr)
This search expects a customized Predicate<TagNode>
orAVT
instanceNONE static HNLI<TagNode>
get(Vector<? extends HTMLNode> html, Predicate<TagNode> p, String... htmlTags)
-