Class InnerTagIterator


  • public class InnerTagIterator
    extends java.lang.Object
    InnerTagIterator 🠞
    1. InnerTag: This implies that Attribute key-value pairs located within the HTML TagNode instances themselves are used as a search criteria for retrieving TagNode's.

    2. Iterator: This means that java Iterator's (extension of java.util.ListIterator<E>) are returned, rather than simple-results or vectors of results. Iterator's make updating a Vector<HTMLNode> much easier (by avoiding the problems caused by stale index-pointers), and usually simply many of the retrieval & removal operations when large HTML TABLE and UL / OL are involved.
    Static methods for building and instantiating an HNLI<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-specialized Iterator instance class) that cycles through TagNode 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 of class TagNode *and* have a TagNode.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, an HTMLTokException will be thrown.
    String... htmlTags When this parameter is present, only HTMLNode's which are both instances of class TagNode *and* whose TagNode.tok field String-value matches (is equal to) at least one of the elements in this VarArgs 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, an HTMLTokException will be thrown.

    FINALLY: This parameter is only available as an option for search-methods that utilize the Predicate<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: An InnerTagKeyException 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 of tagNode.AV(innerTag) are always passed to the text-comparing methods listed below.

    MOST COMMON: The most common example String'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 to TextComparitor parameter 'tc'.

    ALSO WITH: This parameter also utilizes / works alongside the String... compareStr parameter for performing it's comparisons of the attribute list inside of a given HTML element TagNode.

    When this parameter is present in a method-signature parameter-list, the decision of whether a TagNode is to be included in the search result-set is defined by this parameter's BiPredicate.test(...) method. TextComparitor is a Java BiPredicate<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-Expression Pattern 'p'.

    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 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 Java Functional Interface Predicate parameter 'p'.

    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 the results of the Java Predicate.test(String) method.

    Specifically: p.test(attribute_value)
    String... compareStr WORKS WITH: This parameter works in coordination with parameter TextComparitor tc. This parameter supplies the String'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:

    1. If: 'innerTag' were equal to 'class'
    2. And: 'tc' were equal to TextComparitor.C
    3. And: 'compareStr' were equal to 'MyMainClass'

    The search would match any and all TagNode 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 this Predicate's test(TagNode) method.

    Return Values:

    All methods return an HNLI<TagNode>, which returns, one-at-a-time, matches in the vectorized-HTML page parameter 'html'.



    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> or AVT instance
      NONE 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> or AVT instance
      NONE static HNLI<TagNode> get​(Vector<? extends HTMLNode> html, Predicate<TagNode> p, String... htmlTags)
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait