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 HTMLTagNodeinstances 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'smake 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 HTMLTABLEandUL / OLare involved.
Staticmethods 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-specializedIteratorinstance class) that cycles throughTagNodematches into the vectorized-HTML-page parameter'html'Method Parameters
Parameter Explanation Vector<? extends HTMLNode> htmlThis represents any vectorized HTML page, sub-page, or list of partial-elements. String htmlTagWhen this parameter is present, only HTMLNode'swhich are both instances ofclass TagNode*and* have aTagNode.tokfield 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, metaas 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, anHTMLTokExceptionwill be thrown.String... htmlTagsWhen this parameter is present, only HTMLNode'swhich are both instances ofclass TagNode*and* whoseTagNode.tokfieldString-value matches (is equal to) at least one of the elements in thisVarArgs Stringparameter-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, anHTMLTokExceptionwill 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 innerTagThis 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: AnInnerTagKeyExceptionwill 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'sused for parameter'innerTag'(also called 'attribute') would include tags such as:'id', 'class', 'src', 'href', 'style', 'width', 'onclick', 'onload', etc...TextComparitor tcWORKS 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 toTextComparitorparameter'tc'.
ALSO WITH: This parameter also utilizes / works alongside theString... compareStrparameter 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 aTagNodeis to be included in the search result-set is defined by this parameter'sBiPredicate.test(...)method.TextComparitoris a JavaBiPredicate<String, String[]>, which compares the attribute-value that was retrieved with a list of compare-String's(parameter'compareStr').Pattern pWORKS 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 aTagNodeis 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> pWORKS 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 Predicateparameter'p'.
When this parameter is present in the method-signature parameter-list, the decision of whether aTagNodeis 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... compareStrWORKS WITH: This parameter works in coordination with parameter TextComparitor tc. This parameter supplies theString'swith 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 allTagNodeinstances whose CSS'class'contained'MyMainClass'Predicate<TagNode>When this parameter is present in the method-signature parameter-list, the decision of whether a TagNodeis 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,178 Bytes Line Count: 110 '\n' Characters Found
Stateless Class:This class neither contains any program-state, nor can it be instantiated. The@StaticFunctionalAnnotation may also be called 'The Spaghetti Report'.Static-Functionalclasses are, essentially, C-Styled Files, without any constructors or non-static member fields. It is a concept very similar to the Java-Bean's@StatelessAnnotation.
- 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>orAVTinstanceNONE 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>orAVTinstanceNONE static HNLI<TagNode>get(Vector<? extends HTMLNode> html, Predicate<TagNode> p, String... htmlTags)
-