Class TagNodePeek


  • public class TagNodePeek
    extends java.lang.Object
    Searches an HTML-Vector for HTML-Tag's that match a specified search-criteria based on Tag-Name and whether the Tag is an opening or closing tag, and returns both the Vector-index and the Tag itself (as instances of TagNodeIndex).

    TagNodePeek =>

    1. TagNode: This implies that only HTML TagaNode's will be used for searching. The field TagNode.tok field is used as a search criteria. This public, final String field contains the name of the HTML Element - for instance, 'div', 'p', 'span', 'img', etc...
      InnerTag's - (a.k.a. 'attributes') - are not part of the search.
    2. Peek: This implies that BOTH the Vector-index / indices where a match occurred, AND the the HTMLNode at that index are SIMULTANEOUSLY returned by these methods - using the data-type classes NodeIndex and SubSection.

    Methods Available

    Method Explanation
    first (...) Obtain the first TagNodeIndex, TagNode-integer pair match in the HTML Vector that meets the criteria.
    nth (...) Obtain the nth TagNodeIndex, TagNode-integer pair match from the HTML Vector that meets the criteria.
    last (...) Obtain the last TagNodeIndex, TagNode-integer pair match in the HTML Vector that meets the criteria.
    nthFromEnd (...) Obtain the nth-from-last TagNodeIndex, TagNode-integer pair match from the HTML Vector that meets the criteria.
    all (...) Obtain all TagNodeIndex matches that are found in the HTML Vector and meet the criteria.
    allExcept (...) Obtain all TagNodeIndex matches that are found in the HTML Vector but do not meet the criteria.

    Method Parameters

    Parameter Explanation
    Vector<? extends HTMLNode> html This represents any vectorized HTML page, sub-page, or list of partial-elements.
    int nth This represents the 'nth' match of a comparison for-loop. When the method-signature used includes the parameter 'nth' , the first n-1 matches that are found - will be skipped, and the 'nth' match is, instead, returned.

    EXCEPTIONS: An NException shall throw if the value of parameter 'nth' is zero, negative, or larger than the size of the input html-Vector.
    int sPos, int ePos When these parameters are present, only HTMLNode's that are found between the specified Vector indices will be considered for matching with the search criteria.

    NOTE: In every situation where the parameters int sPos, int ePos are used, parameter 'ePos' will accept a negative value, but parameter 'sPos' will not. When 'ePos' is passed a negative-value, the internal LV ('Loop Variable Counter') will have its public final int end; field set to the length of the vectorized-html page that was passed. (html.size() of parameter Vector<HTMLNode> html).

    EXCEPTIONS: An IndexOutOfBoundsException will be thrown if:

    • If sPos is negative, or if sPos is greater-than or equal-to the size of the input Vector
    • If ePos is zero, or greater than the size of the input Vector.
    • If sPos is a larger integer than ePos
    TC tagCriteria The three values of enumeration TC are: TC.OpeningTags, TC.ClosingTags and TC.Both. These values specify a search-criteria result set for an HTML TagNode. There are two types of HTML Elements:

    • "opening versions" of the HTML-tag such as: <A HREF="...">
    • "closing versions" of the element such as: </A>.

    NOTE: If parameter 'tagCriteria' is passed a value of TC.Both, then (and this is hopefully obvious), that both 'opening' and 'closing' versions of the tag will be considered to meet / match the search criteria.
    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.

    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 even one of the elements in this parameter-set is an invalid HTML token, an HTMLTokException will be thrown.

    Return Values:

    1. TagNodeIndex represents a matched TagNode aligned with the vector-index where the TagNode was found on the passed parameter vectorized-html web-page 'html'
    2. A return value of null implies no TagNode matches were found.
    3. Vector<TagNodeIndex> - A vector of TagNodeIndex represents all TagNode matches (aligned with the vector-index where the TagNode was found) from the vectorized-page parameter 'html'
    4. A zero-length Vector<TagNodeIndex> means no matches were found on the page or sub-page. Empty Vectors are returned from any method where the possibility existed for multiple-matches being provided as a result-set.


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 field. It is very similar to the Java-Bean @Stateless Annotation.
  • 1 Constructor(s), 1 declared private, zero-argument constructor
  • 12 Method(s), 12 declared static
  • 0 Field(s)


    • Method Summary

       
      All Matches
      Modifier and Type Method
      static Vector<TagNodeIndex> all​(Vector<? extends HTMLNode> html, TC tagCriteria, String... htmlTags)
       
      All Matches, Range Limited
      Modifier and Type Method
      static Vector<TagNodeIndex> all​(Vector<? extends HTMLNode> html, int sPos, int ePos, TC tagCriteria, String... htmlTags)
       
      All Non-Matches
      Modifier and Type Method
      static Vector<TagNodeIndex> allExcept​(Vector<? extends HTMLNode> html, TC tagCriteria, String... htmlTags)
       
      All Non-Matches, Range Limited
      Modifier and Type Method
      static Vector<TagNodeIndex> allExcept​(Vector<? extends HTMLNode> html, int sPos, int ePos, TC tagCriteria, String... htmlTags)
       
      First Match
      Modifier and Type Method
      static TagNodeIndex first​(Vector<? extends HTMLNode> html, TC tagCriteria, String... htmlTags)
       
      First Match, Range Limited
      Modifier and Type Method
      static TagNodeIndex first​(Vector<? extends HTMLNode> html, int sPos, int ePos, TC tagCriteria, String... htmlTags)
       
      Last Match
      Modifier and Type Method
      static TagNodeIndex last​(Vector<? extends HTMLNode> html, TC tagCriteria, String... htmlTags)
       
      Last Match, Range Limited
      Modifier and Type Method
      static TagNodeIndex last​(Vector<? extends HTMLNode> html, int sPos, int ePos, TC tagCriteria, String... htmlTags)
       
      Nth Match
      Modifier and Type Method
      static TagNodeIndex nth​(Vector<? extends HTMLNode> html, int nth, TC tagCriteria, String... htmlTags)
       
      Nth Match, Range Limited
      Modifier and Type Method
      static TagNodeIndex nth​(Vector<? extends HTMLNode> html, int nth, int sPos, int ePos, TC tagCriteria, String... htmlTags)
       
      Nth Match From End
      Modifier and Type Method
      static TagNodeIndex nthFromEnd​(Vector<? extends HTMLNode> html, int nth, TC tagCriteria, String... htmlTags)
       
      Nth Match From End, Range Limited
      Modifier and Type Method
      static TagNodeIndex nthFromEnd​(Vector<? extends HTMLNode> html, int nth, int sPos, int ePos, TC tagCriteria, String... htmlTags)
      • Methods inherited from class java.lang.Object

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