Class Summaries


  • public class Summaries
    extends java.lang.Object
    Java Doc HTML-File Reader: Find and retrieve the entities of any of the seven Java Doc generated Summary Sections.

    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:
    <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:
    <!-- 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 -->
    


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
  • 22 Method(s), 22 declared static
  • 7 Field(s), 7 declared static, 7 declared final


    • Field Detail

      • JAVADOC_CONSTRUCTOR_SUMMARY_MARKER

        🡇    
        public static final java.lang.String JAVADOC_CONSTRUCTOR_SUMMARY_MARKER
        Every JavaDoc Page that documents its Constructor's will include a 'Constructor Summary' section. Finding the HTML for this section is easy, the section is prefaced by an HTML Comment that looks as follows:

        HTML Elements:
        <!-- ======== CONSTRUCTOR SUMMARY ======== -->
        


        The "Constructor Summary" Section is an HTML Table that has a header element placed before the table that looks like this:



        Constructor Summary




        See Also:
        Constant Field Values
        Code:
        Exact Field Declaration Expression:
        public static final String JAVADOC_CONSTRUCTOR_SUMMARY_MARKER =
                "==== CONSTRUCTOR SUMMARY ====";
        
      • JAVADOC_FIELD_SUMMARY_MARKER

        🡅  🡇    
        public static final java.lang.String JAVADOC_FIELD_SUMMARY_MARKER
        Every JavaDoc Page that documents its Field's will include a 'Field Summary' section. Finding the HTML for this section is easy, the section is prefaced by an HTML Comment that looks as follows:

        HTML Elements:
        <!-- ======== FIELD SUMMARY ======== -->
        


        The "Field Summary" Section is an HTML Table that has a header element placed before the table that looks like this:



        Field Summary




        See Also:
        Constant Field Values
        Code:
        Exact Field Declaration Expression:
        public static final String JAVADOC_FIELD_SUMMARY_MARKER =
                "==== FIELD SUMMARY ====";
        
      • JAVADOC_METHOD_SUMMARY_MARKER

        🡅  🡇    
        public static final java.lang.String JAVADOC_METHOD_SUMMARY_MARKER
        Every JavaDoc Page that documents its Method's will include a 'Method Summary' section. Finding the HTML for this section is easy, the section is prefaced by an HTML Comment that looks as follows:

        HTML Elements:
        <!-- ======== METHOD SUMMARY ======== -->
        


        The "Method Summary" Section is an HTML Table that has a header element placed before the table that looks like this:



        Method Summary




        See Also:
        Constant Field Values
        Code:
        Exact Field Declaration Expression:
        public static final String JAVADOC_METHOD_SUMMARY_MARKER =
                "==== METHOD SUMMARY ====";
        
      • JAVADOC_NESTED_CLASS_SUMMARY_MARKER

        🡅  🡇    
        public static final java.lang.String JAVADOC_NESTED_CLASS_SUMMARY_MARKER
        Every JavaDoc Page that documents its Nested-Classes will include a 'Nested Class Summary' section. Finding the HTML for this section is easy, the section is prefaced by an HTML Comment that looks as follows:

        HTML Elements:
        <!-- ======== NESTED CLASS SUMMARY ======== -->
        


        NOTE: Many classes and interfaces do not have any internal 'Nested Classes', and therefore this Summary Section won't be available on many Java Doc Pages.

        The "Nested Class Summary" Section is an HTML Table that has a header element placed before the table that looks like this:



        Nested Class Summary




        See Also:
        Constant Field Values
        Code:
        Exact Field Declaration Expression:
        public static final String JAVADOC_NESTED_CLASS_SUMMARY_MARKER =
                "==== NESTED CLASS SUMMARY ====";
        
      • JAVADOC_ENUM_CONST_SUMMARY_MARKER

        🡅  🡇    
        public static final java.lang.String JAVADOC_ENUM_CONST_SUMMARY_MARKER
        Every JavaDoc Page that is an 'Enum', will include an 'Enum Constant Summary' section. Finding the HTML for this section is easy, the section is prefaced by an HTML Comment that looks as follows:

        HTML Elements:
        <!-- ======== ENUM CONSTANT SUMMARY ======== -->
        


        NOTE: Only Java Source-Code Files which are actual enum's will ever have such a section. Enumerated-Constants are not allowed in other Java Type's.

        The "Enum Constant Summary" Section is an HTML Table that has a header element placed before the table that looks like this:



        Enum Constant Summary




        See Also:
        Constant Field Values
        Code:
        Exact Field Declaration Expression:
        public static final String JAVADOC_ENUM_CONST_SUMMARY_MARKER =
                "==== ENUM CONSTANT SUMMARY ====";
        
      • JAVADOC_OPTIONAL_ANNOTATION_ELEMENT_SUMMARY_MARKER

        🡅  🡇    
        public static final java.lang.String JAVADOC_OPTIONAL_ANNOTATION_ELEMENT_SUMMARY_MARKER
        JavaDoc Pages that are built from Annotation's ('@interface'), may include an 'Optional Element Summary' section. Finding the HTML for this section is easy, the section is prefaced by an HTML Comment that looks as follows:

        HTML Elements:
        <!-- ======== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY ======== -->
        


        NOTE: Only Java Source-Code Files which are actual Annotation's could have such a section. Annotation Element's (required or optional) simply cannot be defined inside other Java Type's.

        The "Optional Annotation Element Summary" Section is an HTML Table that has a header element placed before the table that looks like this:



        Required Element Summary




        See Also:
        Constant Field Values
        Code:
        Exact Field Declaration Expression:
        public static final String JAVADOC_OPTIONAL_ANNOTATION_ELEMENT_SUMMARY_MARKER =
                "==== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY ====";
        
      • JAVADOC_REQUIRED_ANNOTATION_ELEMENT_SUMMARY_MARKER

        🡅  🡇    
        public static final java.lang.String JAVADOC_REQUIRED_ANNOTATION_ELEMENT_SUMMARY_MARKER
        JavaDoc Pages that are built from Annotation's ('@interface'), may include an 'Required Element Summary' section. Finding the HTML for this section is easy, the section is prefaced by an HTML Comment that looks as follows:

        HTML Elements:
        <!-- ======== ANNOTATION TYPE REQUIRED MEMBER SUMMARY ======== -->
        


        NOTE: Only Java Source-Code Files which are actual Annotation's could have such a section. Annotation Element's (required or optional) simply cannot be defined inside other Java Type's.

        The "Required Annotation Element Summary" Section is an HTML Table that has a header element placed before the table that looks like this:



        Optional Element Summary




        See Also:
        Constant Field Values
        Code:
        Exact Field Declaration Expression:
        public static final String JAVADOC_REQUIRED_ANNOTATION_ELEMENT_SUMMARY_MARKER =
                "==== ANNOTATION TYPE REQUIRED MEMBER SUMMARY ====";
        
    • Method Detail

      • entityToMarker

        🡅  🡇    
        protected static java.lang.String entityToMarker​(Entity section)
        Converts a Java 'Entity' to one of the 'Summary Section' MARKER String's.

        NOTE: If you are requesting the 'MARKER' for the 'Annotation Element Summary' (by passing Entity.ANNOTATION_ELEM), this method shall throw a 'SummariesException'.
        Parameters:
        section - This may be any of the entities.
        Returns:
        The appropriate 'MARKER', all of which are listed in the 'Fields' section at the top of this class.
        Throws:
        SummariesException - If Entity.ANNOTATION_ELEM is passed to parameter 'entity'. There are two distinct "Annotation Element Summaries", and therefore there is no way to distinguish which 'MARKER' is being requested.
        Code:
        Exact Method Body:
         if (section == null) throw new NullPointerException
             ("You have passed null to parameter 'section'.  This is not allowed here.");
        
         switch (section)
         {
             case METHOD:            return JAVADOC_METHOD_SUMMARY_MARKER;
             case FIELD:             return JAVADOC_FIELD_SUMMARY_MARKER;
             case CONSTRUCTOR:       return JAVADOC_CONSTRUCTOR_SUMMARY_MARKER;
             case ENUM_CONSTANT:     return JAVADOC_ENUM_CONST_SUMMARY_MARKER;
             case INNER_CLASS:       return JAVADOC_NESTED_CLASS_SUMMARY_MARKER;
        
             case ANNOTATION_ELEM:
                 throw new SummariesException(
                     "You have passed Entity.ANNOTATION_ELEM to parameter 'section', but this " +
                     "is not allowed here.  Since there are two kinds of Annotation Element " +
                     "Summaries, there is no way to distinguish which Comment-Marker String " +
                     "is being requeted."
                 );
        
             default:
                 System.out.println("There are no other Entities.");
                 throw new UnreachableError();
         }
        
      • allEntityMarkers

        🡅  🡇    
        public static int[] allEntityMarkers​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage)
        
        All Summary-Marker CommentNode positions that are available on the page.
        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:
        The same int[] returned by CommentNodeFind.all
        See Also:
        CommentNodeFind
        Code:
        Exact Method Body:
         return CommentNodeFind.all(
             javaDocHTMLCIETPage, TextComparitor.CN_OR,
             JAVADOC_METHOD_SUMMARY_MARKER,
             JAVADOC_FIELD_SUMMARY_MARKER,
             JAVADOC_CONSTRUCTOR_SUMMARY_MARKER,
             JAVADOC_ENUM_CONST_SUMMARY_MARKER,
             JAVADOC_NESTED_CLASS_SUMMARY_MARKER,
             JAVADOC_OPTIONAL_ANNOTATION_ELEMENT_SUMMARY_MARKER,
             JAVADOC_REQUIRED_ANNOTATION_ELEMENT_SUMMARY_MARKER
         );
        
      • hasSummaryHeader

        🡅  🡇    
        public static DotPair hasSummaryHeader​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage,
                     Entity entity)
        
        Checks for an HTML <H3> element within the vicinity of the Summary Marker (an HTML Comment), and retrieves the index of that <H3>.

        This method first finds this, for whichever 'entity' was requested:

        HTML Elements:
        <!-- ========== METHOD SUMMARY =========== -->
        

        And then returns this:

        HTML Elements:
        <h3>Method Summary</h3>
        
        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.
        entity - specifies which of the HTML 'Summaries' <H3> is being requested: "Field Summary", "Method Summary", "Constructor Summary", etc...

        WARNING: This parameter may not receive Entity.ANNOTATION_ELEM, or a SummariesException will be thrown.
        Returns:
        The HTML <H3>Summary</H3> element, as a DotPair for the specified 'entity'. null is returned if 'javaDocHTMLCIETPage' does not have a summary section for the specified 'entity'.
        Throws:
        SummariesException - If you request the 'Summary Header' for Entity.ANNOTATION_ELEM, this exception throws. In order to retrieve the header for 'Annotation Summary', you must invoke hasAnnotationSummaryHeader(Vector, boolean).

        NOTE: There are two versions of the 'Annotation Summary', 'Optional Annotation Elements' and 'Required Annotation Elements', which is why ANNOTATION_ELEM needs its own specialized header-retrieval method.
        Code:
        Exact Method Body:
         if (entity == Entity.ANNOTATION_ELEM) throw new SummariesException(
             "In order to retrieve the Summary Header for an Annotation Element, you must use " +
             "the method hasAnnotationSummaryHeader(boolean).  This is because there are two " +
             "variants of Annotation Summaries, and the other 4 entities have only 1."
         );
        
         String commentMarker = entityToMarker(entity);
        
         int markerPos = CommentNodeFind.first
             (javaDocHTMLCIETPage, TextComparitor.CONTAINS, commentMarker);
        
         if (markerPos == -1) return null;
        
         // Retrieve the <H3> element.  
         return TagNodeFindInclusive.first(javaDocHTMLCIETPage, markerPos, markerPos + 25, "h3");
        
      • hasAnnotationSummaryHeader

        🡅  🡇    
        public static DotPair hasAnnotationSummaryHeader​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage,
                     boolean optionalOrRequired)
        
        There are two Annotation Element Summaries, so this method is provided in place of the other variant method hasSummaryHeader(Vector, Entity). This method retrieves an HTML <H3>...</H3> location for a specified Annotation Summary section.
        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.

        The page passed here must be for a Java Annotation, or else there will be no Annotation Element Summaries, and this method would return null.
        optionalOrRequired - When this parameter is passed TRUE, this method retrieves the "Optional Annotation Summary" '<H3>', and when passed FALSE, this method shall return the "Required Annotation Summary" '<H3>' element.

        If the specified summary header is not found, then null is returned.
        Returns:
        A DotPair which points to the Summary Header location for the specified Annotation Summary section.
        Code:
        Exact Method Body:
         String commentMarker = optionalOrRequired
             ? JAVADOC_OPTIONAL_ANNOTATION_ELEMENT_SUMMARY_MARKER
             : JAVADOC_REQUIRED_ANNOTATION_ELEMENT_SUMMARY_MARKER;
        
         int markerPos = CommentNodeFind.first
             (javaDocHTMLCIETPage, TextComparitor.CONTAINS, commentMarker);
        
         if (markerPos == -1) return null;
        
         // Retrieve the <H3> element.  
         return TagNodeFindInclusive.first(javaDocHTMLCIETPage, markerPos, markerPos + 25, "h3");
        
      • hasSummaries

        🡅  🡇    
        public static DotPair hasSummaries​
                    (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:
             <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 will return a Vector index-pointer, an instance of DotPair, that contains the '@@P1 Summary Section' for a JavaDoc Generated Page. The Vector contents pointed-to by the returned DotPair will have the list of all @@P1 Summaries contained by this page.

        The instance of DotPair will point to an HTML <TABLE> element, having CSS 'class' equal to 'memberSummary'.
        See Also:
        InnerTagFindInclusive
        Code:
        Exact Method Body:
         return InnerTagFindInclusive.first
             (javaDocHTMLCIETPage, "div", "class", TextComparitor.C, "summary");
        
      • summariesSection

        🡅  🡇    
        protected static DotPair summariesSection​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage,
                     java.lang.String commentMarker)
        
        This will return a specific Java Doc Summary Section on a Java Doc Generated HTML page. This class is used internally.
        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.
        commentMarker - This must be one of the seven 'MARKER' String's, which are the static constants defined at the top of this class. This marker will denote which JavaDoc Summary Section is being requested.
        Returns:
        This will return an index-pointer pair to an HTML <TABLE> and </TABLE> opening-closing pair. This HTML <TABLE>-pointer should be the requested Summary Section.

        Null will be returned if there is no CommentNode containing the 'commentMarker', or if - once that CommentNode is found - there is not <TABLE CLASS='memberSummary'> element found in the vicinity.
        See Also:
        CommentNodeFind, InnerTagFindInclusive
        Code:
        Exact Method Body:
         // Find the "Comment Marker" on this page.  The first HTML Table that follows this
         // Comment should be the Summary List Items
         int pos = CommentNodeFind.first
             (javaDocHTMLCIETPage, TextComparitor.CONTAINS, commentMarker);
        
         if (pos == -1) return null;
        
         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 - OTHERWISE return null;
         if ((ret == null) || ((ret.start - pos) > 25)) return null;
        
         return ret;
        
      • summariesIterator

        🡅  🡇    
        public static HNLIInclusive summariesIterator​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage,
                     DotPair summarySection)
        
        This method will retrieve an HNLIInclusive Iterator that iterates the table rows of any summary section which is passed to this method.

        This Iterator retrieves each entry (Table Row, <TR>... </TR> Element) in a JavaDoc Summary Section.

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

        HTML Elements:
        <!-- 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" 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>
        
        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.
        summarySection - This instance of DotPair should contain a complete Java Doc 'Summary' section! This index-pointer pair should be retrieved from the 'has' methods in this class. If an incorrect pointer is passed here, an exception is thrown!
        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.
        Throws:
        SummariesException - If the reference passed to 'summarySection' is null, or if it does not point to a proper opening and closing HTML <TABLE> element. See the code included below to view the range of possible exception throws.
        See Also:
        InnerTagInclusiveIterator, TagNodeExpectedException, OpeningTagNodeExpectedException, ClosingTagNodeExpectedException, HTMLTokException
        Code:
        Exact Method Body:
         if (javaDocHTMLCIETPage == null)
             throw new NullPointerException("Parameter 'javaDocHTMLCIETPage' may not be null.");
        
         if (summarySection == null) throw new SummariesException(
             "The Summary Section Iterator you have requested cannot be built without a proper " +
             "index-pointer 'DotPair' instance which points to a Summary Section on the page " +
             "you have passed to 'javadocHTMLCIETPage'.  The reference you have passed to " +
             "'summarySection' is null."
         );
        
         try
         {
             // Temporary Variables, used to do a few (quick) checks
             HTMLNode    n;
             TagNode     tn;
            
             n = javaDocHTMLCIETPage.elementAt(summarySection.start);
        
             if (! (n instanceof TagNode)) throw new TagNodeExpectedException(
                 "The HTMLNode at index 'summarySection.start' did not contain a TagNode, but " +
                 "rather a " + n.getClass().getSimpleName()
             );
        
             tn = (TagNode) n;
        
             if (tn.isClosing) throw new OpeningTagNodeExpectedException(
                 "The TagNode at index 'summarySection.start' was a closing element whose " +
                 "'.isClosing' field was true.  This should be an HTML Opening <TABLE ...> " +
                 "element"
             );
        
             if (! tn.tok.equals("table")) throw new HTMLTokException(
                 "The TagNode at index 'summarySection.start' was not an HTML <TABLE> element " +
                 "because its '.tok' field was not \"table\", but rather \"" + tn.tok + "\""
             );
        
             n = javaDocHTMLCIETPage.elementAt(summarySection.end);
        
             if (! (n instanceof TagNode)) throw new TagNodeExpectedException(
                 "The HTMLNode at index 'summarySection.end' did not contain a TagNode, but " +
                 "rather a " + n.getClass().getSimpleName()
             );
        
             tn = (TagNode) n;
        
             if (! tn.isClosing) throw new ClosingTagNodeExpectedException(
                 "The TagNode at index 'summarySection.end' was an opening element whose " +
                 "'.isClosing' field was false.  This should be an HTML Opening </TABLE> " +
                 "element"
             );
        
             if (! tn.tok.equals("table")) throw new HTMLTokException(
                 "The TagNode at index 'summarySection.end' was not an HTML </TABLE> element " +
                 "because its '.tok' field was not \"table\", but rather \"" + tn.tok + "\""
             );
         }
         catch (Exception e)
         {
             throw new SummariesException(
                 "There was a problem with the DotPair Vector-index pointer you have passed  " +
                 "(parameter 'summarySection').  This DotPair should contain a valid Summary " +
                 "Section Pointer for the Java Doc Web Page you have passed, but it did not.  " +
                 "Please see this exception getCause() method for more information.", e
             );
         }
        
         // Actually building the iterator is really easy.  It is one line, followed by the
         // cursor-restriction method-call!
         HNLIInclusive ret = InnerTagInclusiveIterator.get(
             javaDocHTMLCIETPage,
             "tr", "class", TextComparitor.C, "altColor", "rowColor"
         );
        
         ret.restrictCursor(summarySection);
        
         return ret;
        
      • summariesIterator

        🡅  🡇    
        protected static HNLIInclusive summariesIterator​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage,
                     java.lang.String commentMarker)
        
        This is a helper method that is used by the 'iterator' Convenience Methods defined in this class.

        Note that it is (likely) much more efficient to invoke the summariesIterator(Vector, DotPair) method directly - assuming you have already obtained a valid DotPair instance of the requisite 'Summary Section' (using one of the 'has' methods!)
        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.
        commentMarker - This Java String should be any one of the listed static, final 'Comment Marker' String's, all of which are defined at the top of this class.
        Returns:
        This will return a 'Summary Section Iterator' that iterates the table rows (a.k.a. 'The Summaries') in the specified 'Summary Section'.
        Throws:
        SummariesException - This will throw if the specified 'Summary Section' isn't found.
        See Also:
        summariesSection(Vector, String), summariesIterator(Vector, DotPair)
        Code:
        Exact Method Body:
         DotPair dp = summariesSection(javaDocHTMLCIETPage, commentMarker);
        
         if (dp == null) throw new SummariesException(
             "The summary-section iterator you have requested cannot be built.  There was no " +
             "Summary Section that matches the 'commentMarker' parameter you have passed (or " +
             "you have not passed a valid comment marker).  Did you use one of the markers " +
             "which are defined as static-final fields at the top of this class?"
         );
        
         return summariesIterator(javaDocHTMLCIETPage, dp);
        
      • hasConstructorSummaries

        🡅  🡇    
        public static DotPair hasConstructorSummaries​
                    (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> for it's Constructor's - which, if present - has the attributes seen below.

        (Remember, not all documentation-pages will have public & documented Constructors)

        HTML Elements:
        <!-- ======== 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>
        


        The "Constructor Summary" Section is an HTML Table that has a header element placed before the table that looks like this:



        Constructor Summary




        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.

        NOTE: A complete summary-section may be passed in place of the complete HTML page itself.
        Returns:
        This will return a Vector index-pointer, an instance of DotPair, that contains the 'Constructor Summary Section' for a JavaDoc Generated Page. The Vector contents pointed-to by the returned DotPair will have the list of all Constructor Summaries contained by this page.

        The instance of DotPair will point to an HTML <TABLE> element, having CSS 'class' equal to 'memberSummary'.
        See Also:
        summariesSection(Vector, String), JAVADOC_CONSTRUCTOR_SUMMARY_MARKER
        Code:
        Exact Method Body:
         return summariesSection(javaDocHTMLCIETPage, JAVADOC_CONSTRUCTOR_SUMMARY_MARKER);
        
      • hasFieldSummaries

        🡅  🡇    
        public static DotPair hasFieldSummaries​
                    (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> for it's Field's - which, if present - has the attributes seen below.

        (Remember, not all documentation-pages will have public & documented Fields)

        HTML Elements:
        <!-- =========== 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>
        


        The "Field Summary" Section is an HTML Table that has a header element placed before the table that looks like this:



        Field Summary




        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.

        NOTE: A complete summary-section may be passed in place of the complete HTML page itself.
        Returns:
        This will return a Vector index-pointer, an instance of DotPair, that contains the 'Field Summary Section' for a JavaDoc Generated Page. The Vector contents pointed-to by the returned DotPair will have the list of all Field Summaries contained by this page.

        The instance of DotPair will point to an HTML <TABLE> element, having CSS 'class' equal to 'memberSummary'.
        See Also:
        summariesSection(Vector, String), JAVADOC_FIELD_SUMMARY_MARKER
        Code:
        Exact Method Body:
         return summariesSection(javaDocHTMLCIETPage, JAVADOC_FIELD_SUMMARY_MARKER);
        
      • hasMethodSummaries

        🡅  🡇    
        public static DotPair hasMethodSummaries​
                    (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> for it's Method's - which, if present - has the attributes seen below.

        (Remember, not all documentation-pages will have public & documented Methods)

        HTML Elements:
        <!-- ========== 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>
        


        The "Method Summary" Section is an HTML Table that has a header element placed before the table that looks like this:



        Method Summary




        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.

        NOTE: A complete summary-section may be passed in place of the complete HTML page itself.
        Returns:
        This will return a Vector index-pointer, an instance of DotPair, that contains the 'Method Summary Section' for a JavaDoc Generated Page. The Vector contents pointed-to by the returned DotPair will have the list of all Method Summaries contained by this page.

        The instance of DotPair will point to an HTML <TABLE> element, having CSS 'class' equal to 'memberSummary'.
        See Also:
        summariesSection(Vector, String), JAVADOC_METHOD_SUMMARY_MARKER
        Code:
        Exact Method Body:
         return summariesSection(javaDocHTMLCIETPage, JAVADOC_METHOD_SUMMARY_MARKER);
        
      • hasNestedClassSummaries

        🡅  🡇    
        public static DotPair hasNestedClassSummaries​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage)
        
        This will return the 'Nested Class Summary' table-element from an HTML JavaDoc output-page. Java-Doc creates a single HTML <TABLE> for it's Nested Classes's - which, if present - has the attributes seen below.

        Remember! Most documentation-pages do not contain Nested Classes.

        HTML Elements:
        <!-- ======== 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>
        


        The "Nested Class Summary" Section is an HTML Table that has a header element placed before the table that looks like this:



        Nested Class Summary




        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.

        NOTE: A complete summary-section may be passed in place of the complete HTML page itself.
        Returns:
        This will return a Vector index-pointer, an instance of DotPair, that contains the 'Nested Class Summary Section' for a JavaDoc Generated Page. The Vector contents pointed-to by the returned DotPair will have the list of all Nested Class Summaries contained by this page.

        The instance of DotPair will point to an HTML <TABLE> element, having CSS 'class' equal to 'memberSummary'.
        See Also:
        summariesSection(Vector, String), JAVADOC_NESTED_CLASS_SUMMARY_MARKER
        Code:
        Exact Method Body:
         return summariesSection(javaDocHTMLCIETPage, JAVADOC_NESTED_CLASS_SUMMARY_MARKER);
        
      • hasEnumConstSummaries

        🡅  🡇    
        public static DotPair hasEnumConstSummaries​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage)
        
        This will return the 'Enum Constant Summary' table-element from an HTML JavaDoc output-page. Java-Doc creates a single HTML <TABLE> for it's Enumerated Constants - which, if present - has the attributes seen below.

        Remember - only Java enum's are allowed to define such constants. This section will not be available on most pages!

        HTML Elements:
        <!-- =========== ENUM CONSTANT SUMMARY =========== -->
        <section role="region">
        <ul class="blockList">
        <li class="blockList"><a id="enum.constant.summary">
        <!--   -->
        </a>
        <h3>Enum Constant Summary</h3>
        <table class="memberSummary">
        <caption><span>Enum Constants</span><span class="tabEnd">&nbsp;</span></caption>
        


        The "Enum Constant Summary" Section is an HTML Table that has a header element placed before the table that looks like this:



        Enum Constant Summary




        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.

        NOTE: Only an 'enum' will have Enum Constants

        ALSO:A complete summary-section may be passed in place of the complete HTML page itself.
        Returns:
        This will return a Vector index-pointer, an instance of DotPair, that contains the 'Enum Constant Summary Section' for a JavaDoc Generated Page. The Vector contents pointed-to by the returned DotPair will have the list of all Enum Constant Summaries contained by this page.

        The instance of DotPair will point to an HTML <TABLE> element, having CSS 'class' equal to 'memberSummary'.
        See Also:
        summariesSection(Vector, String), JAVADOC_ENUM_CONST_SUMMARY_MARKER
        Code:
        Exact Method Body:
         return summariesSection(javaDocHTMLCIETPage, JAVADOC_ENUM_CONST_SUMMARY_MARKER);
        
      • hasOptionalAnnotationElemSummaries

        🡅  🡇    
        public static DotPair hasOptionalAnnotationElemSummaries​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage)
        
        This will return the 'Optional Element Summary' table-element from an HTML JavaDoc output-page. Java-Doc creates a single HTML <TABLE> for it's Optional Annotation Elements (and one for Required ones too) - which, if present - has the attributes, seen below.

        Remember - only Java Annotation's (@interface) are even allowed to define these elements. Furthermore, many Annotation's don't define any Annotation Parameters / Elements at all!

        HTML Elements:
        <!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== -->
        <section role="region">
        <ul class="blockList">
        <li class="blockList"><a id="annotation.type.optional.element.summary">
        <!--   -->
        </a>
        <h3>Optional Element Summary</h3>
        <table class="memberSummary">
        <caption><span>Optional Elements</span><span class="tabEnd">&nbsp;</span></caption>
        


        The "Optional Annotation Element Summary" Section is an HTML Table that has a header element placed before the table that looks like this:



        Optional Element Summary




        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.

        NOTE: Only an '@interface' will have Annotation Elements

        ALSO:A complete summary-section may be passed in place of the complete HTML page itself.
        Returns:
        This will return a Vector index-pointer, an instance of DotPair, that contains the 'Optional Element Summary Section' for a JavaDoc Generated Page. The Vector contents pointed-to by the returned DotPair will have the list of all Optional Element Summaries contained by this page.

        The instance of DotPair will point to an HTML <TABLE> element, having CSS 'class' equal to 'memberSummary'.
        See Also:
        summariesSection(Vector, String), JAVADOC_OPTIONAL_ANNOTATION_ELEMENT_SUMMARY_MARKER
        Code:
        Exact Method Body:
         return summariesSection
             (javaDocHTMLCIETPage, JAVADOC_OPTIONAL_ANNOTATION_ELEMENT_SUMMARY_MARKER);
        
      • hasRequiredAnnotationElemSummaries

        🡅  🡇    
        public static DotPair hasRequiredAnnotationElemSummaries​
                    (java.util.Vector<HTMLNode> javaDocHTMLCIETPage)
        
        This will return the 'Optional Element Summary' table-element from an HTML JavaDoc output-page. Java-Doc creates a single HTML <TABLE> for it's Optional Annotation Elements (and one for Required ones too) - which, if present - has the attributes, seen below.

        Remember - only Java Annotation's (@interface) are even allowed to define these elements. Furthermore, many Annotation's don't define any Annotation Parameters / Elements at all!

        HTML Elements:
        <!-- =========== ANNOTATION TYPE REQUIRED MEMBER SUMMARY =========== -->
        <ul class="blockList">
        <li class="blockList"><a name="annotation.type.required.element.summary">
        <!--   -->
        </a>
        <h3>Required Element Summary</h3>
        <table class="memberSummary" summary="Required Element Summary table, listing required elements, and an explanation">
        <caption><span>Required Elements</span><span class="tabEnd">&nbsp;</span></caption>
        


        The "Required Annotation Element Summary" Section is an HTML Table that has a header element placed before the table that looks like this:



        Required Element Summary




        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.

        NOTE: Only an '@interface' will have Annotation Elements

        ALSO:A complete summary-section may be passed in place of the complete HTML page itself.
        Returns:
        This will return a Vector index-pointer, an instance of DotPair, that contains the 'Required Element Summary Section' for a JavaDoc Generated Page. The Vector contents pointed-to by the returned DotPair will have the list of all Required Element Summaries contained by this page.

        The instance of DotPair will point to an HTML <TABLE> element, having CSS 'class' equal to 'memberSummary'.
        See Also:
        summariesSection(Vector, String), JAVADOC_REQUIRED_ANNOTATION_ELEMENT_SUMMARY_MARKER
        Code:
        Exact Method Body:
         return summariesSection
             (javaDocHTMLCIETPage, JAVADOC_REQUIRED_ANNOTATION_ELEMENT_SUMMARY_MARKER);