001package Torello.HTML.NodeSearch;
002
003import java.util.*;
004
005import Torello.HTML.*;
006import Torello.Java.LV;
007
008/**
009 * {@code Static} methods for building an {@link HNLIInclusive} (which also extends the basic
010 * {@code Iterator}) for retrieving sub HTML-Vector's via user-provided match-critera that specify
011 * the HTML Tag-Name..
012 * 
013 * <BR /><BR /><EMBED CLASS='external-html' DATA-FILE-ID=TagNodeInclusiveIterator>
014 */
015@Torello.JavaDoc.JDHeaderBackgroundImg
016@Torello.JavaDoc.StaticFunctional
017public class TagNodeInclusiveIterator
018{
019    private TagNodeInclusiveIterator() { }
020
021    public static HNLIInclusive iter (Vector<? extends HTMLNode> html, String... htmlTags)
022    {
023        final String[] checkedHTMLTags = ARGCHECK.htmlTags(htmlTags);
024
025        InclusiveException.check(htmlTags);
026
027        return new HNLIInclusive(html, (TagNode tn) -> tn.isTag(TC.OpeningTags, checkedHTMLTags));
028    }
029
030    public static HNLIInclusive exceptIter (Vector<? extends HTMLNode> html, String... htmlTags)
031    {
032        final String[] checkedHTMLTags = ARGCHECK.htmlTags(htmlTags);
033
034        InclusiveException.check(htmlTags);
035
036        return new HNLIInclusive(html, (TagNode tn) -> tn.isTagExcept(TC.OpeningTags, checkedHTMLTags));
037    }
038}