001package Torello.HTML.NodeSearch;
002
003import java.util.*;
004
005import Torello.HTML.*;
006import Torello.Java.LV;
007
008/**
009 * {@code Static} methods for building and instantiating an
010 * {@link HNLI}<CODE>&lt;</CODE>{@link TagNode}<CODE>&gt;</CODE> (which extends the basic
011 * iterator class) for iterating the tags inside of an HTML-{@code Vector}, using
012 * explicitly provided match-specifications.
013 * 
014 * <BR /><BR /><EMBED CLASS='external-html' DATA-FILE-ID=TagNodeIterator>
015 */
016@Torello.JavaDoc.JDHeaderBackgroundImg
017@Torello.JavaDoc.StaticFunctional
018public class TagNodeIterator
019{
020    private TagNodeIterator() { }
021
022    public static HNLI<TagNode> iter (Vector<? extends HTMLNode> html, TC tagCriteria, String... htmlTags)
023    {
024        final String[] checkedHTMLTags = ARGCHECK.htmlTags(htmlTags);
025
026        return new HNLI<TagNode> 
027            (html, tagNode -> tagNode.isTag(tagCriteria, checkedHTMLTags), TagNode.class);
028    }
029
030    public static HNLI<TagNode> exceptIter (Vector<? extends HTMLNode> html, TC tagCriteria, String... htmlTags)
031    {
032        final String[] checkedHTMLTags = ARGCHECK.htmlTags(htmlTags);
033
034        return new HNLI<TagNode>
035            (html, tagNode -> tagNode.isTagExcept(tagCriteria, htmlTags), TagNode.class);
036    }
037}