public StyleMap evaluateDOM(Document doc) { return mAnalyzer.evaluateDOM(doc, Medium, false); }
protected void processNode(DeclarationMap result, Node current, Object source) { assignDeclarationsToElement(result, walker, (Element) current, (Holder) source); } };
/** * Creates the analyzer for a single style sheet. * @param sheet The stylesheet that will be used as the source of rules. */ public Analyzer(StyleSheet sheet) { this.rules = Collections.synchronizedMap(new HashMap<String, Holder>()); classifyRules(sheet); }
traversal.listTraversal(style); Analyzer analyzer = new Analyzer(style); if (matchCond != null) { analyzer.registerMatchCondition(matchCond); return analyzer.evaluateDOM(doc, media, useInheritance);
style.styleMap = new Analyzer(stylesheet).evaluateDOM(document, medium, false); style.pageRules = new HashMap<String,Map<String,RulePage>>(); { for (RulePage r : filter(stylesheet, RulePage.class)) { style.styleMap = new Analyzer(stylesheet).evaluateDOM(document, medium, false); } else { throw new RuntimeException("medium " + medium + " not supported");
public void analyse(Collection<URI> sheetURIs, Collection<String> embeddedCSS, URI embedContainerURI, NetworkProcessor network) throws IOException, URISyntaxException, CSSException { if (!SupportedCSS.isSupportedMedia(Medium)) { throw new IllegalStateException("medium '" + Medium + "' is not supported"); } List<URI> alluris = new ArrayList<URI>(); List<String> csscode = new ArrayList<String>(embeddedCSS); for (int k = 0; k < embeddedCSS.size(); ++k) alluris.add(embedContainerURI); for (URI uri : sheetURIs) { if (uri != null) { alluris.add(uri); csscode.add(IOUtils.toString(uri.toURL().openStream(), "UTF-8")); } } List<StyleSheet> styleSheets = new ArrayList<StyleSheet>(); for (int k = 0; k < csscode.size(); ++k) { String basePath = alluris.get(k).resolve(".").toString(); String withAbsURL = makeURLabsolute(csscode.get(k), basePath); styleSheets.add(parserFactory.parse(withAbsURL, network, null, SourceType.EMBEDDED, new URL("http://base"))); /* * we cannot use CSSFactory.parse(withAbsURL) because it tries to * convert the null base URL into a String */ } mAnalyzer = new Analyzer(styleSheets); }
DeclarationMap declarations = assingDeclarationsToDOM(doc, media, inherit);
if (!matchSelector(s, e, walker)) { log.trace("CombinedSelector \"{}\" NOT matched!", s); continue;
RuleSet ruleset = (RuleSet) rule; for (CombinedSelector s : ruleset.getSelectors()) { insertClassified(all, classifySelector(s), ruleset); List<HolderSelector> hs = classifySelector(s); rulemedia.getMedia().isEmpty()) { insertClassified(rules.get(UNIVERSAL_HOLDER), hs, ruleset); continue; rules.put(media, h); insertClassified(h, hs, ruleset);
retval = this.elementSelectorMatches(s, e); } else if (combinator == Selector.Combinator.ADJACENT) { Element adjacent = (Element) w.previousSibling(); retval = false; if (adjacent != null) retval = this.elementSelectorMatches(s, adjacent); } else if (combinator == Selector.Combinator.PRECEDING) { Element preceding; retval = false; while (!retval && (preceding = (Element) w.previousSibling()) != null) { retval = this.elementSelectorMatches(s, preceding); retval = false; while (!retval && (ancestor = (Element) w.parentNode()) != null) { retval = this.elementSelectorMatches(s, ancestor); retval = false; if (parent != null) retval = this.elementSelectorMatches(s, parent);
traversal.listTraversal(style); Analyzer analyzer = new Analyzer(style); if (matchCond != null) { analyzer.registerMatchCondition(matchCond); return analyzer.evaluateDOM(doc, media, useInheritance);
traversal.listTraversal(style); Analyzer analyzer = new Analyzer(style); return analyzer.evaluateDOM(doc, media, useInheritance);
DeclarationMap declarations = assingDeclarationsToDOM(doc, media, inherit);
if (!matchSelector(s, e, walker)) { log.trace("CombinedSelector \"{}\" NOT matched!", s); continue;
RuleSet ruleset = (RuleSet) rule; for (CombinedSelector s : ruleset.getSelectors()) { insertClassified(rules, classifySelector(s), ruleset); insertClassified(rules, classifySelector(s), ruleset);
retval = this.elementSelectorMatches(s, e); } else if (combinator == Selector.Combinator.ADJACENT) { Element adjacent = (Element) w.previousSibling(); retval = false; if (adjacent != null) retval = this.elementSelectorMatches(s, adjacent); } else if (combinator == Selector.Combinator.PRECEDING) { Element preceding; retval = false; while (!retval && (preceding = (Element) w.previousSibling()) != null) { retval = this.elementSelectorMatches(s, preceding); retval = false; while (!retval && (ancestor = (Element) w.parentNode()) != null) { retval = this.elementSelectorMatches(s, ancestor); retval = false; if (parent != null) retval = this.elementSelectorMatches(s, parent);
traversal.listTraversal(style); Analyzer analyzer = new Analyzer(style); if (matchCond != null) { analyzer.registerMatchCondition(matchCond); return analyzer.evaluateDOM(doc, media, useInheritance);
public StyleMap evaluateDOM(Document doc, String media, final boolean inherit) { return evaluateDOM(doc, new MediaSpec(media), inherit); }