@Override public RuleBlock<?> prepareRulePage(List<Declaration> declarations, List<RuleMargin> marginRules, String name, Selector.PseudoPage pseudo) { if ((declarations == null || declarations.isEmpty()) && (marginRules == null || marginRules.isEmpty())) { log.debug("Empty RulePage was ommited"); return null; } RulePage rp = rf.createPage(); if (declarations != null) for (Declaration d : declarations) rp.add(d); if (marginRules != null) for (RuleMargin m : marginRules) rp.add(m); rp.setName(name); rp.setPseudo(pseudo); log.info("Create @page as with:\n{}", rp); return (RuleBlock<?>) rp; }
private static void insertPageStyle(StringBuilder builder, RulePage pageRule, boolean topLevel) { builder.append("@page"); String pseudo = pageRule.getPseudo(); if (pseudo != null && !"".equals(pseudo)) builder.append(":").append(pseudo); builder.append(" { "); for (Declaration decl : filter(pageRule, Declaration.class)) insertDeclaration(builder, decl); for (RuleMargin margin : filter(pageRule, RuleMargin.class)) insertMarginStyle(builder, margin); builder.append("} "); }
style.pageRules = new HashMap<String,Map<String,RulePage>>(); { for (RulePage r : filter(stylesheet, RulePage.class)) { String name = firstNonNull(r.getName(), "auto"); String pseudo = firstNonNull(r.getPseudo(), ""); Map<String,RulePage> pageRule = style.pageRules.get(name); if (pageRule == null) {
public RuleBlock<?> prepareRulePage(List<Declaration> declarations, List<RuleMargin> marginRules, String name, String pseudo) { if ((declarations == null || declarations.isEmpty()) && (marginRules == null || marginRules.isEmpty())) { log.debug("Empty RulePage was ommited"); return null; } RulePage rp = rf.createPage(); if (declarations != null) for (Declaration d : declarations) rp.add(d); if (marginRules != null) for (RuleMargin m : marginRules) rp.add(m); rp.setName(name); rp.setPseudo(pseudo); log.info("Create @page as with:\n{}", rp); return (RuleBlock<?>) rp; }
static Style of(RulePage page) { // assumed to be anonymous page Style style = new Style(); for (Rule<?> r : page) if (r instanceof Declaration) style.add((Declaration)r); else if (r instanceof RuleMargin) style.add("@" + ((RuleMargin)r).getMarginArea(), new Style().add((List<Declaration>)r)); else throw new RuntimeException("coding error"); String pseudo = page.getPseudo(); return pseudo == null ? style : new Style().add("&:" + pseudo, style); }
public RuleBlock<?> prepareRulePage(List<Declaration> declarations, List<RuleMargin> marginRules, String name, String pseudo) { if ((declarations == null || declarations.isEmpty()) && (marginRules == null || marginRules.isEmpty())) { log.debug("Empty RulePage was ommited"); return null; } RulePage rp = rf.createPage(); if (declarations != null) for (Declaration d : declarations) rp.add(d); if (marginRules != null) for (RuleMargin m : marginRules) rp.add(m); rp.setName(name); rp.setPseudo(pseudo); log.info("Create @page as with:\n{}", rp); return (RuleBlock<?>) rp; }
public RuleBlock<?> prepareRulePage(List<Declaration> declarations, List<RuleMargin> marginRules, String name, String pseudo) { if ((declarations == null || declarations.isEmpty()) && (marginRules == null || marginRules.isEmpty())) { log.debug("Empty RulePage was ommited"); return null; } Priority prio = ps.getAndIncrement(); RulePage rp = rf.createPage(prio); if (declarations != null) for (Declaration d : declarations) rp.add(d); if (marginRules != null) for (RuleMargin m : marginRules) rp.add(m); rp.setName(name); rp.setPseudo(pseudo); log.info("Create @page as {}th with:\n{}", prio, rp); return (RuleBlock<?>) rp; }
private static RulePage makePageRule(String name, String pseudo, List<RulePage> from) { RulePage pageRule = brailleRuleFactory.createPage().setName(name).setPseudo(pseudo); for (RulePage f : from) for (Rule<?> r : f) if (r instanceof Declaration) { Declaration d = (Declaration)r; String property = d.getProperty(); if (getDeclaration(pageRule, property) == null) pageRule.add(r); } else if (r instanceof RuleMargin) { RuleMargin m = (RuleMargin)r; String marginArea = m.getMarginArea(); RuleMargin marginRule = getRuleMargin(pageRule, marginArea); if (marginRule == null) { marginRule = brailleRuleFactory.createMargin(marginArea); pageRule.add(marginRule); marginRule.replaceAll(m); } else for (Declaration d : m) if (getDeclaration(marginRule, d.getProperty()) == null) marginRule.add(d); } return pageRule; }