Class Summaries


  • public class Summaries
    extends java.lang.Object
    Summaries Class - Documentation.

    This class is designed to pick apart an HTML File that was generated by the Java Documentation Tool 'JavaDoc.' Primarily, if code-commenting seems more important than a lot of the other features and ideas available on the internet, one might eventually realize that modifying or upgrading parts of the tool / utility can be a reasonable way to extend what Sun / Oracle has already written.

    This class is named 'Summaries' because it is written to deal with the upper portion of an HTML Documentation Page - specifically, the part where field, method, nested-classes, and constructors are summarized with links to the lower part of the page where they are further explained in detail.


    HTML Elements:
    1
    2
    3
    4
    5
    6
    7
    8
    <div class="summary">
    
    <!-- All summary sections (fields, methods, constructors, nested classes) of the
         Java-Doc 'summaries' are here - wrapped inside of an HTML Divider Element
         whose class name is class='summary'
    -->
    
    </div>
    

    The above html-divider has these three sections:

    HTML Elements:
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <!-- The HTML below has been copied from a typical JavaDoc Generated Class HTML
         Documentation Page.  These "Sub-Sections" are all provided as readable HTML
         to programmers who use JavaDoc files on the Internet to learn about a Java
         Package.  Usually there are three "sub-sections" - one for 'field summaries'
         of a class, one for 'constructor summaries' and also one for 'method summaries.'
         If there are static, inner, nested classes, then there could be four sub-sections.
    -->
    
    <li class="blockList">
    <!-- ======== NESTED CLASS SUMMARY ======== -->
    <ul class="blockList">
    <li class="blockList"><a name="nested.class.summary">
    <!--   -->
    </a>
    <h3>Nested Class Summary</h3>
    <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
    <caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
    <tr>
    <th class="colFirst" scope="col">Modifier and Type</th>
    <th class="colLast" scope="col">Class and Description</th>
    </tr>
    ... <!-- SPECIFIC NESTED CLASSES START LISTING FROM THIS POINT IN THE HTML -->
    
    </table>
    </li>
    <ul class="blockList">
    <li class="blockList">
    <!-- =========== FIELD SUMMARY =========== -->
    <ul class="blockList">
    <li class="blockList"><a name="field.summary">
    <!--   -->
    </a>
    <h3>Field Summary</h3>
    <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
    <caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
    <tr>
    <th class="colFirst" scope="col">Modifier and Type</th>
    <th class="colLast" scope="col">Field and Description</th>
    </tr>
    ... <!-- SPECIFIC CLASS FIELDS START LISTING FROM THIS POINT IN THE HTML -->
    
    </table>
    </li>
    </ul>
    <!-- ======== CONSTRUCTOR SUMMARY ======== -->
    <ul class="blockList">
    <li class="blockList"><a name="constructor.summary">
    <!--   -->
    </a>
    <h3>Constructor Summary</h3>
    <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
    <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
    <tr>
    <th class="colOne" scope="col">Constructor and Description</th>
    </tr>
    ... <!-- SPECIFIC CLASS CONSTRUCTORS START LISTING FROM THIS POINT IN THE HTML -->
    
    </table>
    </li>
    </ul>
    <!-- ========== METHOD SUMMARY =========== -->
    <ul class="blockList">
    <li class="blockList"><a name="method.summary">
    <!--   -->
    </a>
    <h3>Method Summary</h3>
    <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
    <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
    <tr>
    <th class="colFirst" scope="col">Modifier and Type</th>
    <th class="colLast" scope="col">Method and Description</th>
    </tr>
    ... <!-- SPECIFIC CLASS METHODS START LISTING FROM THIS POINT IN THE HTML -->
    


    Static (Functional) API: The methods in this class are all (100%) defined with the Java Key-Word / Key-Concept 'static'. Furthermore, there is no way to obtain an instance of this class, because there are no public (nor private) constructors. Java's Spring-Boot, MVC feature is *not* utilized because it flies directly in the face of the light-weight data-classes philosophy. This has many advantages over the rather ornate Component Annotations (@Component, @Service, @AutoWired, etc... 'Java Beans') syntax:

    • The methods here use the key-word 'static' which means (by implication) that there is no internal-state. Without any 'internal state' there is no need for constructors in the first place! (This is often the complaint by MVC Programmers).
    • A 'Static' (Functional-Programming) API expects to use fewer data-classes, and light-weight data-classes, making it easier to understand and to program.
    • The Vectorized HTML data-model allows more user-control over HTML parse, search, update & scrape. Also, memory management, memory leakage, and the Java Garbage Collector ought to be intelligible through the 'reuse' of the standard JDK class Vector for storing HTML Web-Page data.

    The power that object-oriented programming extends to a user is (mostly) limited to data-representation. Thinking of "Services" as "Objects" (Spring-MVC, 'Java Beans') is somewhat 'over-applying' the Object Oriented Programming Model. Like most classes in the Java-HTML JAR Library, this class backtracks to a more C-Styled Functional Programming Model (no Objects) - by re-using (quite profusely) the key-word static with all of its methods, and by sticking to Java's well-understood class Vector

    Static Fields: The methods in this class do not create any internal state that is maintained - however there are a few private & static fields defined. These fields are instantiated only once during the Class Loader phase (and only if this class shall be used), and serve as data 'lookup' fields (static constants). View this class' source-code in the link provided below to see internally used data.

    This class has two internally-defined protected, static constants (String constants) that contain error messages in order to provide consistently formatted error messages.



    • Field Detail

      • errorMsg1

        protected static final java.lang.String errorMsg1
        When a JavaDocError is thrown looking for a summary section, this message shall be produced. JavaDoc will always produce a summary section - however there have been (very few) sitations where the output HTML was not properly formatted. This can be remedied, but it is advisable to inspect what has caused the problem, and repair the HTML first.

        NOTE:

        • TOK1 will be replaced by the word: Field, Constructor, Method or Nested Class.
        • TOK2 will be replaced by the word: fields, constructors, methods or nested classes.


        When or if a JavaDocError is thrown while parsing JavaDoc Generated HTML Files.
        See Also:
        Constant Field Values
        Code:
        Exact Field Declaration Expression:
        1
        2
        3
        4
        5
        protected static final String errorMsg1 =
                "Could not find a TOK1 Summary Section in this JavaDoc Page.  " +
                "Returned DotPair would be null.  JavaDoc Class HTML Page did not have " +
                "an HTML <TABLE> Element where 'class' Attribute was class='memberSummary' " +
                "and 'summary' Attribute having substring 'listing TOK2'.  Java Error.";
        
      • errorMsg2

        protected static final java.lang.String errorMsg2
        When a JavaDocError is thrown looking for the individual elements inside of a summary section, this message shall be used as the 'message' for the JavaDocError that is thrown. JavaDoc will always produce a summary section - but there have been situations where this fails.

        NOTE: TOK1 will be replaced by the word: Field, Constructor, Method or Nested Class.
        See Also:
        Constant Field Values
        Code:
        Exact Field Declaration Expression:
        1
        2
        3
        4
        protected static final String errorMsg2 =
                "Search for TOK Summaries in this JavaDoc Page returned a null-valued Iterator.  " +
                "Class HNLIInclusive was not instantiated when searching for HTML <TR> Elements having " +
                "'class' Attributes = 'rowColor' or 'altColor.'  Java Error.";
        
    • Method Detail

      • summaries

        public static DotPair summaries​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage)
        
        This will return the "summary" HTML divider '<DIV>' element from an HTML JavaDoc output-page. Java-Doc creates a single HTML divider that uses the following attributes, listed below. This element is rather large, and keeps three primary sections (but sometimes four - if there are nested classes or static-inner classes.

        HTML Elements:
        1
        2
        3
        4
        5
        6
        7
             <div class="summary">
             <!-- All summary sections (fields, methods, constructors, nested classes) of the
                  Java-Doc 'summaries' are here - wrapped inside of an HTML Divider Element
                  whose class name is class='summary'
             -->
             </div>
             
        
        Parameters:
        javaDocHTMLCIETPage - This should be a vectorized-HTML Java-Doc Generated Documentation Page for a CIET (Class, Interface, or Enumerated-Type). Load a Vector of HTMLNode for JavaDoc generated page the exact same way that any other HTML Page is vectorized into TagNode, TextNode, and CommentNode.
        Returns:
        This shall return an instance of class DotPair - which contains a start-integer Vector-index, and an ending-integer Vector-index. Remember: Unlike loop-variable end-points, BOTH the starting AND the ending Vector indices are inclusive (meaning the Vector element located at page.elementAt(dotPair.end) shall be included in the result set, when class DotPair is used).
        Throws:
        JavaDocError - If there is an actual search routine error trying to find the HTML 'DIV' (divider) element then a JavaDocError is thrown. This error inherits from Java's class java.lang.Error Class, rather than class Exception class because it is generally a problem serious enough to warrant investigation and repair of the problem before ever invoking this method.
        See Also:
        InnerTagFindInclusive, DotPair
        Code:
        Exact Method Body:
        1
        2
        3
        4
        5
        6
        7
         DotPair ret = InnerTagFindInclusive.first
             (javaDocHTMLCIETPage, "div", "class", TextComparitor.C, "summary");
        
         if (ret == null) throw new JavaDocError
             ("Could not find an HTML Divider Element whose class was class='summary'");
        
         return ret;
        
      • constructorSummaries

        public static DotPair constructorSummaries​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage)
        
        This will return the constructor-summary table-element from an HTML JavaDoc output-page. Java-Doc creates a single HTML table that uses the following attributes:

        HTML Elements:
        1
        2
        3
        4
        5
        6
        <!-- The InnerTagFindInclusive is searching for an HTML Table Element inside of a
             Java Doc Generated HTML Class Documentation File that looks like the 'table' below.
             The Java Code Itself is in the next code-comment block.  It finds this table
             element by looking at and comparing its 'class' attribute and its 'summary' attribute.
        -->
        <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
        

        Newer Versions of JavaDoc: Newer versions have a "Constructor Summary" Section with slightly different HTML. The recognition process requires two steps, not one, and therefore more of the HTML is shown here. This newer HTML is pasted here, for reference.

        HTML Elements:
        1
        2
        3
        4
        5
        6
        7
        8
        9
        <!-- ======== CONSTRUCTOR SUMMARY ======== -->
        <section role="region">
        <ul class="blockList">
        <li class="blockList"><a id="constructor.summary">
        <!--   -->
        </a>
        <h3>Constructor Summary</h3>
        <table class="memberSummary">
        <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
        
        Parameters:
        javaDocHTMLCIETPage - This should be a vectorized-HTML Java-Doc Generated Documentation Page for a CIET (Class, Interface, or Enumerated-Type). Load a Vector of HTMLNode for JavaDoc generated page the exact same way that any other HTML Page is vectorized into TagNode, TextNode, and CommentNode.
        Returns:
        This shall return an instance of class DotPair - which contains a start-integer Vector-index, and an ending-integer Vector-index. Remember: Unlike loop-variable end-points, BOTH the starting AND the ending Vector indices are inclusive (meaning the Vector element located at page.elementAt(dotPair.end) shall be included in the result set, when class DotPair is used).
        Throws:
        JavaDocError - If there is an actual search routine error trying to find the HTML table then a JavaDocError is thrown. This error inherits from Java's class java.lang.Error, rather than class Exception because it is generally a problem serious enough to warrant investigation and repair of the problem before ever invoking this method.
        See Also:
        AVT, InnerTagFindInclusive, DotPair
        Code:
        Exact Method Body:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
         /* HANDLES ONLY OLDER JAVADOC
         DotPair ret = InnerTagFindInclusive.first
             (javaDocHTMLCIETPage,
                 AVT.cmp("class", TextComparitor.C, "memberSummary")
                 .and(AVT.cmp("summary", TextComparitor.CN_CI, "constructors")),
                 "table" );
         */
        
         // HANDLES OLDER & NEWER JAVADOC
         int pos = CommentNodeFind.first(javaDocHTMLCIETPage, TextComparitor.CONTAINS, "==== CONSTRUCTOR SUMMARY ====");
         if (pos != -1)
         {
             DotPair ret = InnerTagFindInclusive.first
                 (javaDocHTMLCIETPage, pos, -1, "table", "class", TextComparitor.C, "memberSummary");
        
             // Make sure a <TABLE CLASS="memberSummary"...> was found, and that it is in the
             // CLOSE VICINITY of pos
             if (ret != null) if ((ret.start - pos) <= 25) return ret;
         }
        
         throw new JavaDocError(
             errorMsg1.replace("TOK1", "Constructor").replace("TOK2", "constructors")
         );
        
      • fieldSummaries

        public static final DotPair fieldSummaries​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage)
        
        This will return the field-summary table-element from an HTML JavaDoc output-page. Java-Doc creates a single HTML table that uses the following attributes:

        HTML Elements:
        1
        2
        3
        4
        5
        6
        <!-- The InnerTagFindInclusive is searching for an HTML Table Element inside of a
             Java Doc Generated HTML Class Documentation File that looks like the 'table' below.
             The Java Code Itself is in the next code-comment block.  It finds this table
             element by looking at and comparing its 'class' attribute and its 'summary' attribute.
        -->
        <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
        

        Newer Versions of JavaDoc: Newer versions have a "Field Summary" Section with slightly different HTML. The recognition process requires two steps, not one, and therefore more of the HTML is shown here. This newer HTML is pasted here, for reference.

        HTML Elements:
        1
        2
        3
        4
        5
        6
        7
        8
        9
        <!-- =========== FIELD SUMMARY =========== -->
        <section role="region">
        <ul class="blockList">
        <li class="blockList"><a id="field.summary">
        <!--   -->
        </a>
        <h3>Field Summary</h3>
        <table class="memberSummary">
        <caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
        
        Parameters:
        javaDocHTMLCIETPage - This should be a vectorized-HTML Java-Doc Generated Documentation Page for a CIET (Class, Interface, or Enumerated-Type). Load a Vector of HTMLNode for JavaDoc generated page the exact same way that any other HTML Page is vectorized into TagNode, TextNode, and CommentNode.
        Returns:
        This shall return an instance of class DotPair - which contains a start-integer Vector-index, and an ending-integer Vector-index. Remember: Unlike loop-variable end-points, BOTH the starting AND the ending Vector indices are inclusive (meaning the Vector element located at page.elementAt(dotPair.end) shall be included in the result set, when class DotPair is used).
        Throws:
        JavaDocError - If there is an actual search routine error trying to find the HTML table then a JavaDocError is thrown. This error inherits from Java's class java.lang.Error, rather than class Exception because it is generally a problem serious enough to warrant investigation and repair of the problem before ever invoking this method.
        See Also:
        AVT, InnerTagFindInclusive, DotPair
        Code:
        Exact Method Body:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
         /* HANDLES ONLY OLDER JAVADOC
         DotPair ret = InnerTagFindInclusive.first
             (javaDocHTMLCIETPage,
                 AVT.cmp("class", TextComparitor.C, "memberSummary")
                 .and(AVT.cmp("summary", TextComparitor.CN_CI, "fields")),
                 "table");
         */
        
         // HANDLES OLDER & NEWER JAVADOC
         int pos = CommentNodeFind.first
             (javaDocHTMLCIETPage, TextComparitor.CONTAINS, "==== FIELD SUMMARY ====");
        
         if (pos != -1)
         {
             DotPair ret = InnerTagFindInclusive.first
                 (javaDocHTMLCIETPage, pos, -1, "table", "class", TextComparitor.C, "memberSummary");
        
             // Make sure a <TABLE CLASS="memberSummary"...> was found, and that it is in the
             // CLOSE VICINITY of pos
             if (ret != null) if ((ret.start - pos) <= 25) return ret;
         }
        
         throw new JavaDocError(
             errorMsg1.replace("TOK1", "Field").replace("TOK2", "fields")
         );
        
      • methodSummaries

        public static DotPair methodSummaries​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage)
        
        This will return the method-summary table-element from an HTML JavaDoc output-page. Java-Doc creates a single HTML table that uses the following attributes:

        HTML Elements:
        1
        2
        3
        4
        5
        6
        <!-- The InnerTagFindInclusive is searching for an HTML Table Element inside of a
             Java Doc Generated HTML Class Documentation File that looks like the 'table' below.
             The Java Code Itself is in the next code-comment block.  It finds this table
             element by looking at and comparing its 'class' attribute and its 'summary' attribute.
        -->
        <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
        

        Newer Versions of JavaDoc: Newer versions have a "Method Summary" Section with slightly different HTML. The recognition process requires two steps, not one, and therefore more of the HTML is shown here. This newer HTML is pasted here, for reference.

        HTML Elements:
        1
        2
        3
        4
        5
        6
        7
        8
        9
        <!-- ========== METHOD SUMMARY =========== -->
        <section role="region">
        <ul class="blockList">
        <li class="blockList"><a id="method.summary">
        <!--   -->
        </a>
        <h3>Method Summary</h3>
        <table class="memberSummary">
        <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
        
        Parameters:
        javaDocHTMLCIETPage - This should be a vectorized-HTML Java-Doc Generated Documentation Page for a CIET (Class, Interface, or Enumerated-Type). Load a Vector of HTMLNode for JavaDoc generated page the exact same way that any other HTML Page is vectorized into TagNode, TextNode, and CommentNode.
        Returns:
        This shall return an instance of class DotPair - which contains a start-integer Vector-index, and an ending-integer Vector-index. Remember: Unlike loop-variable end-points, BOTH the starting AND the ending Vector indices are inclusive (meaning the Vector element located at page.elementAt(dotPair.end) shall be included in the result set, when class DotPair is used).
        Throws:
        JavaDocError - If there is an actual search routine error trying to find the HTML table then a JavaDocError is thrown. This error inherits from Java's class java.lang.Error, rather than class Exception because it is generally a problem serious enough to warrant investigation and repair of the problem before ever invoking this method.
        See Also:
        AVT, InnerTagFindInclusive, DotPair
        Code:
        Exact Method Body:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
         /* HANDLES ONLY OLDER JAVADOC
         DotPair ret = InnerTagFindInclusive.first
             (javaDocHTMLCIETPage,
                 AVT.cmp("class", TextComparitor.C, "memberSummary")
                 .and(AVT.cmp("summary", TextComparitor.CN_CI, "methods")),
                 "table");
         */
        
         // HANDLES OLDER & NEWER JAVADOC
         int pos = CommentNodeFind.first
             (javaDocHTMLCIETPage, TextComparitor.CONTAINS, "==== METHOD SUMMARY ====");
        
         if (pos != -1)
         {
             DotPair ret = InnerTagFindInclusive.first
                 (javaDocHTMLCIETPage, pos, -1, "table", "class", TextComparitor.C, "memberSummary");
        
             // Make sure a <TABLE CLASS="memberSummary"...> was found, and that it is in
             // the CLOSE VICINITY of pos
             if (ret != null) if ((ret.start - pos) <= 25) return ret;
         }
        
         throw new JavaDocError(
             errorMsg1.replace("TOK1", "Method").replace("TOK2", "methods")
         );
        
      • nestedClassSummaries

        public static DotPair nestedClassSummaries​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage)
        
        This will return the method-summary table-element from an HTML JavaDoc output-page. Java-Doc creates a single HTML table that uses the following attributes:

        HTML Elements:
        1
        2
        3
        4
        5
        6
        <!-- The InnerTagFindInclusive is searching for an HTML Table Element inside of a
             Java Doc Generated HTML Class Documentation File that looks like the 'table' below.
             The Java Code Itself is in the next code-comment block.  It finds this table
             element by looking at and comparing its 'class' attribute and its 'summary' attribute.
        -->
        <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
        
        Parameters:
        javaDocHTMLCIETPage - This should be a vectorized-HTML Java-Doc Generated Documentation Page for a CIET (Class, Interface, or Enumerated-Type). Load a Vector of HTMLNode for JavaDoc generated page the exact same way that any other HTML Page is vectorized into TagNode, TextNode, and CommentNode.
        Returns:
        This shall return an instance of class DotPair - which contains a start-integer Vector-index, and an ending-integer Vector-index. Remember: Unlike loop-variable end-points, BOTH the starting AND the ending Vector indices are inclusive (meaning the Vector element located at page.elementAt(dotPair.end) shall be included in the result set, when class DotPair is used).
        Throws:
        JavaDocError - If there is an actual search routine error trying to find the HTML table then a JavaDocError is thrown. This error inherits from Java's class java.lang.Error, rather than class Exception because it is generally a problem serious enough to warrant investigation and repair of the problem before ever invoking this method.
        See Also:
        AVT, InnerTagFindInclusive, DotPair
        Code:
        Exact Method Body:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
         /* HANDLES ONLY OLDER JAVADOC
         DotPair ret = InnerTagFindInclusive.first
             (javaDocHTMLCIETPage,
                 AVT.cmp("class", TextComparitor.C, "memberSummary")
                 .and(AVT.cmp("summary", TextComparitor.CN_CI, "nested classes")),
                 "table");
         */
        
         // HANDLES OLDER & NEWER JAVADOC
         int pos = CommentNodeFind.first
             (javaDocHTMLCIETPage, TextComparitor.CONTAINS, "==== NESTED CLASS SUMMARY ====");
        
         if (pos != -1)
         {
             DotPair ret = InnerTagFindInclusive.first
                 (javaDocHTMLCIETPage, pos, -1, "table", "class", TextComparitor.C, "memberSummary");
        
             // Make sure a <TABLE CLASS="memberSummary"...> was found, and that it is in
             // the CLOSE VICINITY of pos
             if (ret != null) if ((ret.start - pos) <= 25) return ret;
         }
        
         throw new JavaDocError(
             errorMsg1.replace("TOK1", "Nested Class").replace("TOK2", "nested classes")
         );
        
      • hasConstructorSummaries

        public static DotPair hasConstructorSummaries​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage)
        
        This method is identical to the method DotPair constructorSummaries(...), but instead, just returns null if there are no such summaries - and does not throw an exception.
        Parameters:
        javaDocHTMLCIETPage - This should be a vectorized-HTML Java-Doc Generated Documentation Page for a CIET (Class, Interface, or Enumerated-Type). Load a Vector of HTMLNode for JavaDoc generated page the exact same way that any other HTML Page is vectorized into TagNode, TextNode, and CommentNode.
        Returns:
        This shall return an instance of class DotPair - which contains a start-integer Vector-index, and an ending-integer Vector-index. Remember: Unlike loop-variable end-points, BOTH the starting AND the ending Vector indices are inclusive (meaning the Vector element located at page.elementAt(dotPair.end) shall be included in the result set, when class DotPair is used).

        NOTE: If there are no such summaries, this method shall return null.
        See Also:
        constructorSummaries(Vector)
        Code:
        Exact Method Body:
        1
        2
        3
        4
         try
             { return constructorSummaries(javaDocHTMLCIETPage); }
         catch (JavaDocError e)
             { return null; }
        
      • hasFieldSummaries

        public static DotPair hasFieldSummaries​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage)
        
        This method is identical to the method DotPair fieldSummaries(...), but instead, just returns null if there are no such summaries - and does not throw an exception.
        Parameters:
        javaDocHTMLCIETPage - This should be a vectorized-HTML Java-Doc Generated Documentation Page for a CIET (Class, Interface, or Enumerated-Type). Load a Vector of HTMLNode for JavaDoc generated page the exact same way that any other HTML Page is vectorized into TagNode, TextNode, and CommentNode.
        Returns:
        This shall return an instance of class DotPair - which contains a start-integer Vector-index, and an ending-integer Vector-index. Remember: Unlike loop-variable end-points, BOTH the starting AND the ending Vector indices are inclusive (meaning the Vector element located at page.elementAt(dotPair.end) shall be included in the result set, when class DotPair is used).

        NOTE: If there are no such summaries, this method shall return null.
        See Also:
        fieldSummaries(Vector)
        Code:
        Exact Method Body:
        1
        2
        3
        4
         try
             { return fieldSummaries(javaDocHTMLCIETPage); }
         catch (JavaDocError e)
             { return null; }
        
      • hasMethodSummaries

        public static DotPair hasMethodSummaries​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage)
        
        This method is identical to the method DotPair methodSummaries(...), but instead, just returns null if there are no such summaries - and does not throw an exception.
        Parameters:
        javaDocHTMLCIETPage - This should be a vectorized-HTML Java-Doc Generated Documentation Page for a CIET (Class, Interface, or Enumerated-Type). Load a Vector of HTMLNode for JavaDoc generated page the exact same way that any other HTML Page is vectorized into TagNode, TextNode, and CommentNode.
        Returns:
        This shall return an instance of class DotPair - which contains a start-integer Vector-index, and an ending-integer Vector-index. Remember: Unlike loop-variable end-points, BOTH the starting AND the ending Vector indices are inclusive (meaning the Vector element located at page.elementAt(dotPair.end) shall be included in the result set, when class DotPair is used).

        NOTE: If there are no such summaries, this method shall return null.
        See Also:
        methodSummaries(Vector)
        Code:
        Exact Method Body:
        1
        2
        3
        4
         try
             { return methodSummaries(javaDocHTMLCIETPage); }
         catch (JavaDocError e)
             { return null; }
        
      • hasNestedClassSummaries

        public static DotPair hasNestedClassSummaries​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage)
        
        This method is identical to the method DotPair nestedClassSummaries(...), but instead, just returns null if there are no such summaries - and does not throw an exception.
        Parameters:
        javaDocHTMLCIETPage - This should be a vectorized-HTML Java-Doc Generated Documentation Page for a CIET (Class, Interface, or Enumerated-Type). Load a Vector of HTMLNode for JavaDoc generated page the exact same way that any other HTML Page is vectorized into TagNode, TextNode, and CommentNode.
        Returns:
        This shall return an instance of class DotPair - which contains a start-integer Vector-index, and an ending-integer Vector-index. Remember: Unlike loop-variable end-points, BOTH the starting AND the ending Vector indices are inclusive (meaning the Vector element located at page.elementAt(dotPair.end) shall be included in the result set, when class DotPair is used).

        NOTE: If there are no such summaries, this method shall return null.
        See Also:
        nestedClassSummaries(Vector)
        Code:
        Exact Method Body:
        1
        2
        3
        4
         try
             { return nestedClassSummaries(javaDocHTMLCIETPage); }
         catch (JavaDocError e)
             { return null; }
        
      • constructorSummaryIterator

        public static HNLIInclusive constructorSummaryIterator​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage)
        
        Iterator for the Constructor Summary Table Rows of the Constructor Summary Section for a JavaDoc Generated HTML Class Documentation Page.

        This method retrieves each entry (Table Row, <TR>...</TR> Element) in a JavaDoc HTML Documentation Vectorized Page. Generally, if the output produced by the JavaDoc Program looks like 'it could use a little help' here-or-there, use the iterator returned by this method to update, remove or modify the rows in the HTML <TABLE 'class="memberSummary" border="0" ... summary="Constructor Summary table, listing constructors, and an explanation">...</TABLE>' section.

        What follows is a sample HTML Documentation Page retrieved from the ImageScraper class. Two constructors' summaries from class ImageScraper are included in this documentation page to show what the HTML looks like - and what is being returned by the HNLIInclusive (an iterator) - when invoking this method.

        HTML Elements:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        <!-- This line is the HTML Table declaration.  It is followed by rows that represent documentation descriptions
             for each of the constructors in the class ImageScraper.  Note, 'ImageScraper' is being used as an example for documentation
             purposes only, its subsections and code are not related at all to class JavaDoc.Summaries
        -->
        
        <h3>Constructor Summary</h3>
        <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
        <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
        
        <!-- Below are two of many rows in the HTML Documentation Page for 'ImageScraper'  Each HTML Row represents what the
             documentation SUMMARY looks like on the JavaDoc Page for the CONSTRUCTORS in class 'ImageScraper'
        -->
        
        <tr class="altColor">
        <td class="colOne"><code><span class="memberNameLink"><a href="../../../Torello/HTML/Tools/ImageScraper.html#ImageScraper-java.lang.Iterable-java.net.URL-Torello.HTML.Tools.ImageScraper.ImageReceiver-">ImageScraper</a></span>(java.lang.Iterable<<a href="../../../Torello/HTML/TagNode.html" title="class in Torello.HTML">TagNode</a>>&nbsp;source,
            java.net.URL&nbsp;originalPageURL,
            <a href="../../../Torello/HTML/Tools/ImageScraper.ImageReceiver.html" title="interface in Torello.HTML.Tools">ImageScraper.ImageReceiver</a>&nbsp;imageReceiver)</code>
        <div class="block">Constructor that allows a user to provide a set of TagNode's to the download mechanism.</div>
        </td>
        </tr>
        <tr class="rowColor">
        <td class="colOne"><code><span class="memberNameLink"><a href="../../../Torello/HTML/Tools/ImageScraper.html#ImageScraper-java.lang.Iterable-java.net.URL-Torello.HTML.Tools.ImageScraper.TargetDirectoryRetriever-">ImageScraper</a></span>(java.lang.Iterable<<a href="../../../Torello/HTML/TagNode.html" title="class in Torello.HTML">TagNode</a>>&nbsp;source,
             java.net.URL&nbsp;originalPageURL,
             <a href="../../../Torello/HTML/Tools/ImageScraper.TargetDirectoryRetriever.html" title="interface in Torello.HTML.Tools">ImageScraper.TargetDirectoryRetriever</a>&nbsp;targetDirectoryRetriever)</code>
        <div class="block">Constructor that allows a user to provide a set of TagNode's to the download mechanism.</div>
        </td>
        </tr>
        

        Newer Versions of JavaDoc: Newer versions have slightly different table-rows. The Summary section for all Summaries (Field, Method, Constructor, and InnerClasses) have TWO COLUMNS - instead of one. The third column separates the "signature" from the "text-description" (summary-sentence). An example of what this looks like for the "Constructor Summaries" is pasted below:

        HTML Elements:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        <table class="memberSummary">
        <caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
        <tr>
        <th class="colFirst" scope="col">Constructor</th>
        <th class="colLast" scope="col">Description</th>
        </tr>
        <tr class="altColor">
        <th class="colConstructorName" scope="row"><code><span class="memberNameLink"><a href="#%3Cinit%3E(java.lang.String)">TagNode</a></span>&#8203;(java.lang.String&nbsp;s)</code></th>
        <td class="colLast">
        <div class="block">Creates a TagNode, an inherited class of <code>'HTMLNode'</code> that can be used as an element of an HTML Vector.</div>
        </td>
        </tr>
        ...
        
        Parameters:
        javaDocHTMLCIETPage - This should be a vectorized-HTML Java-Doc Generated Documentation Page for a CIET (Class, Interface, or Enumerated-Type). Load a Vector of HTMLNode for JavaDoc generated page the exact same way that any other HTML Page is vectorized into TagNode, TextNode, and CommentNode.
        Returns:
        This will return an instance of the 'HTML Node List Inclusive Iterator.' This Iterator has a suite of methods that facilitate retrieving the contents of a particular element in the underlying HTML Vector's Table Rows. HTML Table Rows may be retrieved, removed, replaced, modified, updated or stored by the various methods exported by the HNLIInclusive API.
        Throws:
        JavaDocError - If there is an actual search routine error trying to find the table rows then a JavaDocError is thrown. This error inherits from Java's class java.lang.Error, rather than class Exception because it is generally a problem serious enough to warrant investigation and repair of the problem before ever invoking this method.
        See Also:
        InnerTagInclusiveIterator, HNLIInclusive, constructorSummaries(Vector)
        Code:
        Exact Method Body:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
         DotPair constructorSummarySection = constructorSummaries(javaDocHTMLCIETPage);
        
         HNLIInclusive ret = InnerTagInclusiveIterator.get(javaDocHTMLCIETPage,
             "tr", "class", TextComparitor.C, "altColor", "rowColor");
        
         if (ret == null) throw new JavaDocError(errorMsg2.replace("TOK", "Constructor"));
        
         ret.restrictCursor(constructorSummarySection);
        
         return ret;
        
      • fieldSummaryIterator

        public static HNLIInclusive fieldSummaryIterator​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage)
        
        Iterator for the Field Summary Table Rows of the Field Summary Section for a JavaDoc Generated HTML Class Documentation Page.

        This method retrieves each entry (Table Row, <TR>...</TR> Element) in a JavaDoc HTML Documentation Vectorized Page. Generally, if the output produced by the JavaDoc Program looks like 'it could use a little help' here-or-there, use the iterator returned by this method to update, remove or modify the rows in the HTML <TABLE 'class="memberSummary" border="0" ... summary="Field Summary table, listing fields, and an explanation">...</TABLE>' section.

        What follows is a sample HTML Documentation Page retrieved from the ImageScraper class. Two fields' summaries from class ImageScraper are included in this documentation page to show what the HTML looks like - and what is being returned by the HNLIInclusive (an iterator) - when invoking this method.

        HTML Elements:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        <!-- This line is the HTML Table declaration.  It is followed by rows that represent documentation descriptions
             for each of the fields in the class ImageScraper.  Note, 'ImageScraper' is being used as an example for documentation
             purposes only, its subsections and code are not related at all to class JavaDoc.Summaries
        -->
        
        <h3>Field Summary</h3>
        <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
        <caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
        
        <!-- Below are two of many rows in the HTML Documentation Page for 'ImageScraper'  Each HTML Row represents what the
             documentation SUMMARY looks like on the JavaDoc Page for the FIELDS in class 'ImageScraper'
        -->
        
        <tr class="altColor">
        <td class="colFirst"><code>static long</code></td>
        <td class="colLast"><code><span class="memberNameLink"><a href="../../../Torello/HTML/Tools/ImageScraper.html#MAX_WAIT_TIME">MAX_WAIT_TIME</a></span></code>
        <div class="block">This is the default maximum wait time for an image to download (10L).</div>
        </td>
        </tr>
        <tr class="rowColor">
        <td class="colFirst"><code>static java.util.concurrent.TimeUnit</code></td>
        <td class="colLast"><code><span class="memberNameLink"><a href="../../../Torello/HTML/Tools/ImageScraper.html#MAX_WAIT_TIME_UNIT">MAX_WAIT_TIME_UNIT</a></span></code>
        <div class="block">This is the default measuring unit for the <code>static final long MAX_WAIT_TIME</code> member.</div>
        </td>
        </tr>
        

        Newer Versions of JavaDoc: Newer versions have slightly different table-rows. The Summary section for all Summaries (Field, Method, Constructor, and InnerClasses) have THREE COLUMNS - instead of two. The third column separates the "signature" from the "text-description" (summary-sentence). An example of what this looks like for the "Field Summaries" is pasted below:

        HTML Elements:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        14
        15
        16
        <h3>Field Summary</h3>
        <table class="memberSummary">
        <caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
        <tr>
        <th class="colFirst" scope="col">Modifier and Type</th>
        <th class="colSecond" scope="col">Field</th>
        <th class="colLast" scope="col">Description</th>
        </tr>
        <tr class="altColor">
        <td class="colFirst"><code>static java.util.regex.Pattern</code></td>
        <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#CSS_INLINE_STYLE_REGEX">CSS_INLINE_STYLE_REGEX</a></span></code></th>
        <td class="colLast">
        <div class="block"><EMBED CLASS="external-html" DATA-FILE-ID="TGNDCSS"></div>
        </td>
        </tr>
        ...
        
        Parameters:
        javaDocHTMLCIETPage - This should be a vectorized-HTML Java-Doc Generated Documentation Page for a CIET (Class, Interface, or Enumerated-Type). Load a Vector of HTMLNode for JavaDoc generated page the exact same way that any other HTML Page is vectorized into TagNode, TextNode, and CommentNode.
        Returns:
        This will return an instance of the 'HTML Node List Inclusive Iterator.' This Iterator has a suite of methods that facilitate retrieving the contents of a particular element in the underlying HTML Vector's Table Rows. HTML Table Rows may be retrieved, removed, replaced, modified, updated or stored by the various methods exported by the HNLIInclusive API.
        Throws:
        JavaDocError - If there is an actual search routine error trying to find the table rows then a JavaDocError is thrown. This error inherits from Java's class java.lang.Error, rather than class Exception because it is generally a problem serious enough to warrant investigation and repair of the problem before ever invoking this method.
        See Also:
        InnerTagInclusiveIterator, HNLIInclusive, fieldSummaries(Vector)
        Code:
        Exact Method Body:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
         DotPair fieldSummarySection = fieldSummaries(javaDocHTMLCIETPage);
        
         HNLIInclusive ret = InnerTagInclusiveIterator.get(javaDocHTMLCIETPage,
             "tr", "class", TextComparitor.C, "altColor", "rowColor");
        
         if (ret == null) throw new JavaDocError(errorMsg2.replace("TOK", "Field"));
        
         ret.restrictCursor(fieldSummarySection);
        
         return ret;
        
      • methodSummaryIterator

        public static HNLIInclusive methodSummaryIterator​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage)
        
        Iterator for the Method Summary Table Rows of the Method Summary Section for a JavaDoc Generated HTML Class Documentation Page.

        This method retrieves each entry (Table Row, <TR>...</TR> Element) in a JavaDoc HTML Documentation Vectorized Page. Generally, if the output produced by the JavaDoc Program looks like 'it could use a little help' here-or-there, use the iterator returned by this method to update, remove or modify the rows in the HTML <TABLE 'class="memberSummary" border="0" ... summary="Method Summary table, listing methods, and an explanation">...</TABLE>' section.

        What follows is a sample HTML Documentation Page retrieved from the ImageScraper class. Two methods' summaries from class ImageScraper are included in this documentation page to show what the HTML looks like - and what is being returned by the HNLIInclusive (an iterator) - when invoking this method.

        HTML Elements:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        <!-- This line is the HTML Table declaration.  It is followed by rows that represent documentation descriptions
             for each of the methods in the class ImageScraper.  Note, 'ImageScraper' is being used as an example for documentation
             purposes only, its subsections and code are not related at all to class JavaDoc.Summaries
        -->
        
        <h3>Method Summary</h3>
        <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
        <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab">
        
        <!-- Below are two of many rows in the HTML Documentation Page for 'ImageScraper'  Each HTML Row represents what the
             documentation SUMMARY looks like on the JavaDoc Page for the METHODS in class 'ImageScraper'
        -->
        
        <tr id="i0" class="altColor">
        <td class="colFirst"><code><a href="../../../Torello/HTML/Tools/ImageScraper.Results.html" title="class in Torello.HTML.Tools">ImageScraper.Results</a></code></td>
        <td class="colLast"><code><span class="memberNameLink"><a href="../../../Torello/HTML/Tools/ImageScraper.html#download--">download</a></span>()</code>
        <div class="block">This calls the primary download method with null parameters</div>
        </td>
        </tr>
        <tr id="i1" class="rowColor">
        <td class="colFirst"><code><a href="../../../Torello/HTML/Tools/ImageScraper.Results.html" title="class in Torello.HTML.Tools">ImageScraper.Results</a></code></td>
        <td class="colLast"><code><span class="memberNameLink"><a href="../../../Torello/HTML/Tools/ImageScraper.html#download-Torello.HTML.Tools.ImageScraper.AdditionalParameters-Torello.Java.StorageWriter-">download</a></span>(<a href="../../../Torello/HTML/Tools/ImageScraper.AdditionalParameters.html" title="class in Torello.HTML.Tools">ImageScraper.AdditionalParameters</a>&nbsp;a,
         <a href="../../../Torello/Java/StorageWriter.html" title="class in Torello.Java">StorageWriter</a>&nbsp;sw)</code>
        <div class="block">This will iterate through the URL's and download them.</div>
        </td>
        </tr>
        

        Newer Versions of JavaDoc: Newer versions have slightly different table-rows. The Summary section for all Summaries (Field, Method, Constructor, and InnerClasses) have THREE COLUMNS - instead of two. The third column separates the "signature" from the "text-description" (summary-sentence). An example of what this looks like for the "Method Summaries" is pasted below:

        HTML Elements:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        14
        15
        <table class="memberSummary">
        <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
        <tr>
        <th class="colFirst" scope="col">Modifier and Type</th>
        <th class="colSecond" scope="col">Method</th>
        <th class="colLast" scope="col">Description</th>
        </tr>
        <tr id="i0" class="altColor">
        <td class="colFirst"><code>java.util.stream.Stream<java.lang.String></code></td>
        <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="#allAN()">allAN</a></span>()</code></th>
        <td class="colLast">
        <div class="block">This method will only return a list of attribute-names.</div>
        </td>
        </tr>
        ...
        
        Parameters:
        javaDocHTMLCIETPage - This should be a vectorized-HTML Java-Doc Generated Documentation Page for a CIET (Class, Interface, or Enumerated-Type). Load a Vector of HTMLNode for JavaDoc generated page the exact same way that any other HTML Page is vectorized into TagNode, TextNode, and CommentNode.
        Returns:
        This will return an instance of the 'HTML Node List Inclusive Iterator.' This Iterator has a suite of methods that facilitate retrieving the contents of a particular element in the underlying HTML Vector's Table Rows. HTML Table Rows may be retrieved, removed, replaced, modified, updated or stored by the various methods exported by the HNLIInclusive API.
        Throws:
        JavaDocError - If there is an actual search routine error trying to find the table rows then a JavaDocError is thrown. This error inherits from Java's class java.lang.Error, rather than class Exception because it is generally a problem serious enough to warrant investigation and repair of the problem before ever invoking this method.
        See Also:
        InnerTagInclusiveIterator, HNLIInclusive, methodSummaries(Vector)
        Code:
        Exact Method Body:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
         DotPair methodSummarySection = methodSummaries(javaDocHTMLCIETPage);
        
         HNLIInclusive ret = InnerTagInclusiveIterator.get(javaDocHTMLCIETPage,
             "tr", "class", TextComparitor.C, "altColor", "rowColor");
        
         if (ret == null) throw new JavaDocError(errorMsg2.replace("TOK", "Method"));
        
         ret.restrictCursor(methodSummarySection);
        
         return ret;
        
      • nestedClassSummaryIterator

        public static HNLIInclusive nestedClassSummaryIterator​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage)
        
        Iterator for the Nested Class Summary Table Rows of the Nested Class Summary Section for a JavaDoc Generated HTML Class Documentation Page.

        This method retrieves each entry (Table Row, <TR>...</TR> Element) in a JavaDoc HTML Documentation Vectorized Page. Generally, if the output produced by the JavaDoc Program looks like 'it could use a little help' here-or-there, use the iterator returned by this method to update, remove or modify the rows in the HTML <TABLE 'class="memberSummary" border="0" ... summary="Nested Class Summary table, listing nested classes, and an explanation">...</TABLE>' section.

        What follows is a sample HTML Documentation Page retrieved from the ImageScraper class. Two nested class' summaries from class ImageScraper are included in this documentation page to show what the HTML looks like - and what is being returned by the HNLIInclusive (an iterator) - when invoking this method.

        HTML Elements:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        <!-- This line is the HTML Table declaration.  It is followed by rows that represent documentation descriptions
             for each of the nested classes in the class ImageScraper.  Note, 'ImageScraper' is being used as an example for documentation
             purposes only, its subsections and code are not related at all to class JavaDoc.Summaries
        -->
        
        <h3>Nested Class Summary</h3>
        <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Nested Class Summary table, listing nested classes, and an explanation">
        <caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
        
        <!-- Below are two of many rows in the HTML Documentation Page for 'ImageScraper'  Each HTML Row represents what the
             documentation SUMMARY looks like on the JavaDoc Page for the NESTED CLASSES in class 'ImageScraper'
        -->
        
        <tr class="altColor">
        <td class="colFirst"><code>static class&nbsp;</code></td>
        <td class="colLast"><code><span class="memberNameLink"><a href="../../../Torello/HTML/Tools/ImageScraper.AdditionalParameters.html" title="class in Torello.HTML.Tools">ImageScraper.AdditionalParameters</a></span></code>
        <div class="block">The configuration parameters requested by the ImageScraper constructor are all mandatory.</div>
        </td>
        </tr>
        <tr class="rowColor">
        <td class="colFirst"><code>static interface&nbsp;</code></td>
        <td class="colLast"><code><span class="memberNameLink"><a href="../../../Torello/HTML/Tools/ImageScraper.FileNameRetriever.html" title="interface in Torello.HTML.Tools">ImageScraper.FileNameRetriever</a></span></code>
        <div class="block">When this interface is implemented, the "save file-name" for a particular image can be provided on an image-by-imageExtensions
         basis.</div>
        </td>
        </tr>
        

        Newer Versions of JavaDoc: Newer versions have a "Nested Class Summary" Section with slightly different HTML. The recognition process requires two steps, not one, and therefore more of the HTML is shown here. This newer HTML is pasted here, for reference.

        HTML Elements:
        1
        2
        3
        4
        5
        6
        7
        8
        9
        <!-- ======== NESTED CLASS SUMMARY ======== -->
        <section role="region">
        <ul class="blockList">
        <li class="blockList"><a id="nested.class.summary">
        <!--   -->
        </a>
        <h3>Nested Class Summary</h3>
        <table class="memberSummary">
        <caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
        

        Newer Versions of JavaDoc: Newer versions have slightly different table-rows. The Summary section for all Summaries (Field, Method, Constructor, and InnerClasses) have THREE COLUMNS - instead of two. The third column separates the "signature" from the "text-description" (summary-sentence). An example of what this looks like for the "Nested Class Summaries" is pasted below:

        HTML Elements:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
        11
        12
        13
        14
        15
        <table class="memberSummary">
        <caption><span>Nested Classes</span><span class="tabEnd">&nbsp;</span></caption>
        <tr>
        <th class="colFirst" scope="col">Modifier and Type</th>
        <th class="colSecond" scope="col">Class</th>
        <th class="colLast" scope="col">Description</th>
        </tr>
        <tr class="altColor">
        <td class="colFirst"><code>static interface&nbsp;</code></td>
        <th class="colSecond" scope="row"><code><span class="memberNameLink"><a href="Attributes.Filter.html" title="interface in Torello.HTML">Attributes.Filter</a></span></code></th>
        <td class="colLast">
        <div class="block">This java <code>functional interface</code> can be implemented by a class, or by a lambda-expression.</div>
        </td>
        </tr>
        ...
        
        Parameters:
        javaDocHTMLCIETPage - This should be a vectorized-HTML Java-Doc Generated Documentation Page for a CIET (Class, Interface, or Enumerated-Type). Load a Vector of HTMLNode for JavaDoc generated page the exact same way that any other HTML Page is vectorized into TagNode, TextNode, and CommentNode.
        Returns:
        This will return an instance of the 'HTML Node List Inclusive Iterator.' This Iterator has a suite of methods that facilitate retrieving the contents of a particular element in the underlying HTML Vector's Table Rows. HTML Table Rows may be retrieved, removed, replaced, modified, updated or stored by the various methods exported by the HNLIInclusive API.
        Throws:
        JavaDocError - If there is an actual search routine error trying to find the table rows then a JavaDocError is thrown. This error inherits from Java's class java.lang.Error, rather than class Exception because it is generally a problem serious enough to warrant investigation and repair of the problem before ever invoking this method.
        See Also:
        InnerTagInclusiveIterator, HNLIInclusive, nestedClassSummaries(Vector)
        Code:
        Exact Method Body:
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
         DotPair nestedClassSummarySection = nestedClassSummaries(javaDocHTMLCIETPage);
        
         HNLIInclusive ret = InnerTagInclusiveIterator.get(javaDocHTMLCIETPage,
             "tr", "class", TextComparitor.C, "altColor", "rowColor");
        
         if (ret == null) throw new JavaDocError(errorMsg2.replace("TOK", "Nested Class"));
        
         ret.restrictCursor(nestedClassSummarySection);
        
         return ret;