package de.cologneintelligence.fitgoodies.htmlparser; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import java.io.IOException; import java.io.InputStream; import java.util.Collections; import java.util.LinkedList; import java.util.List; public class FitDocument { private Document document; private List<FitTable> tables; public static FitDocument parse(InputStream is, String charset) throws IOException { final Document document = Jsoup.parse(is, charset, "."); return new FitDocument(document); } private FitDocument(Document document) { this.document = document; this.tables = Collections.unmodifiableList(findTables()); } private List<FitTable> findTables() { final LinkedList<FitTable> result = new LinkedList<>(); for (Element table : document.select("table")) { if (!ParserUtils.isIgnored(table)) { try { result.add(new FitTable(table)); } catch (IllegalArgumentException ignored) { } } } return result; } public String getHtml() { return document.html(); } public List<FitTable> tables() { return tables; } }