001package Torello.HTML.NodeSearch; 002 003import java.util.*; 004 005import Torello.HTML.*; 006import Torello.HTML.NodeSearch.searchLoops.TagNodesInclusive.TNPeekIncl; 007import Torello.Java.LV; 008 009/** 010 * Searches for {@link TagNode} matches, using exactly the same criteria offered by class 011 * {@link TagNodePeek}, but also retrieves the corresponding Closing-Tag from the {@code Vector}, 012 * and returns them, all nodes & between them, <B><I>and</I></B> their corresponding 013 * {@code Vector}-index locations as a {@link SubSection}. 014 * 015 * <EMBED CLASS='external-html' DATA-FILE-ID=TagNodePeekInclusive> 016 */ 017@Torello.JavaDoc.JDHeaderBackgroundImg 018@Torello.JavaDoc.StaticFunctional 019public class TagNodePeekInclusive 020{ 021 private TagNodePeekInclusive() { } 022 023 public static SubSection first (Vector<? extends HTMLNode> html, String... htmlTags) 024 { return TNPeekIncl.nth (html, 1, new LV(html, 0, -1), ARGCHECK.htmlTags(htmlTags)); } 025 026 public static SubSection last (Vector<? extends HTMLNode> html, String... htmlTags) 027 { return TNPeekIncl.nthFromEnd (html, 1, new LV(html, 0, -1), ARGCHECK.htmlTags(htmlTags)); } 028 029 public static Vector<SubSection> all (Vector<? extends HTMLNode> html, String... htmlTags) 030 { return TNPeekIncl.all (html, new LV(html, 0, -1), ARGCHECK.htmlTags(htmlTags)); } 031 032 public static Vector<SubSection> allExcept (Vector<? extends HTMLNode> html, String... htmlTags) 033 { return TNPeekIncl.allExcept (html, new LV(html, 0, -1), ARGCHECK.htmlTags(htmlTags)); } 034 035 public static SubSection first (Vector<? extends HTMLNode> html, int sPos, int ePos, String... htmlTags) 036 { return TNPeekIncl.nth (html, 1, new LV(html, sPos, ePos), ARGCHECK.htmlTags(htmlTags)); } 037 038 public static SubSection last (Vector<? extends HTMLNode> html, int sPos, int ePos, String... htmlTags) 039 { return TNPeekIncl.nthFromEnd (html, 1, new LV(html, sPos, ePos), ARGCHECK.htmlTags(htmlTags)); } 040 041 public static Vector<SubSection> all (Vector<? extends HTMLNode> html, int sPos, int ePos, String... htmlTags) 042 { return TNPeekIncl.all (html, new LV(html, sPos, ePos), ARGCHECK.htmlTags(htmlTags)); } 043 044 public static Vector<SubSection> allExcept (Vector<? extends HTMLNode> html, int sPos, int ePos, String... htmlTags) 045 { return TNPeekIncl.allExcept (html, new LV(html, sPos, ePos), ARGCHECK.htmlTags(htmlTags)); } 046 047 // NEW ADDITIONS - nth and nthFromEnd 048 049 public static SubSection nth (Vector<? extends HTMLNode> html, int nth, String... htmlTags) 050 { return TNPeekIncl.nth (html, ARGCHECK.n(nth, html), new LV(html, 0, -1), ARGCHECK.htmlTags(htmlTags)); } 051 052 public static SubSection nthFromEnd (Vector<? extends HTMLNode> html, int nth, String... htmlTags) 053 { return TNPeekIncl.nthFromEnd (html, ARGCHECK.n(nth, html), new LV(html, 0, -1), ARGCHECK.htmlTags(htmlTags)); } 054 055 public static SubSection nth (Vector<? extends HTMLNode> html, int nth, int sPos, int ePos, String... htmlTags) 056 { return TNPeekIncl.nth (html, ARGCHECK.n(nth, html), new LV(html, sPos, ePos), ARGCHECK.htmlTags(htmlTags)); } 057 058 public static SubSection nthFromEnd (Vector<? extends HTMLNode> html, int nth, int sPos, int ePos, String... htmlTags) 059 { return TNPeekIncl.nthFromEnd (html, ARGCHECK.n(nth, html), new LV(html, sPos, ePos), ARGCHECK.htmlTags(htmlTags)); } 060}