package moulder.moulds; import moulder.Moulder; import org.jsoup.nodes.Element; import org.jsoup.nodes.Node; import java.util.ArrayList; import java.util.List; /** * A moulder that replaces its input element with any of its children conforming * to a selector * * @author jawher */ public class Filterer implements Moulder { private final String selector; /** * Creates a Filterer that replaces its input element with any of its children * conforming to a selector * * @param selector a selector relative to the element. Should return the children * that are to replace it. */ public Filterer(String selector) { this.selector = selector; } public List<Node> process(Element element) { List<Node> res = new ArrayList<Node>(); List<Element> kept = element.select(selector); for (Element e : kept) { res.add(e); } return res; } }