public static void traverseElements(Document document, Visitor v) throws Exception { Element root = document.getDocumentElement(); if (root != null) traverseElements(root, null, v); }
protected static List<Element> getISDRegionElements(Document doc) { final List<Element> regions = new java.util.ArrayList<Element>(); try { Traverse.traverseElements(doc, new PreVisitor() { public boolean visit(Object content, Object parent, Visitor.Order order) { assert content instanceof Element; Element elt = (Element) content; if (isISDRegionElement(elt)) regions.add(elt); return true; } }); } catch (Exception e) { } return regions; }
private static List<Element> getContentElements(Document d) { final List<Element> elements = new java.util.ArrayList<Element>(); try { Traverse.traverseElements(d, new PreVisitor() { public boolean visit(Object content, Object parent, Visitor.Order order) { assert content instanceof Element; Element e = (Element) content; if (isContentElement(e)) elements.add(e); return true; } }); } catch (Exception e) { } return elements; }
protected static Map<String,StyleSet> getISDStyleSets(Document doc) { final Map<String,StyleSet> styleSets = new java.util.HashMap<String,StyleSet>(); try { Traverse.traverseElements(doc, new PreVisitor() { public boolean visit(Object content, Object parent, Visitor.Order order) { assert content instanceof Element; Element elt = (Element) content; if (isISDCSSElement(elt)) { StyleSet css = getISDStyleSet(elt); if (css != null) styleSets.put(css.getId(), css); } return true; } }); } catch (Exception e) { } return styleSets; }
private boolean verifyPostTransformStyleConstraints(final Object root, final Document isd, final VerifierContext context) { final Map<String,StyleSet> styleSets = getISDStyleSets(isd); try { final boolean[] failed = new boolean[] { false }; Traverse.traverseElements(isd, new PreVisitor() { public boolean visit(Object content, Object parent, Visitor.Order order) { assert content instanceof Element; Element elt = (Element) content; if (!verifyPostTransformStyleConstraints(root, isd, elt, styleSets, context)) failed[0] = true; return true; } }); return !failed[0]; } catch (Exception e) { return false; } }
public static void traverseElements(Element elt, Element parent, Visitor v) throws Exception { if (!v.preVisit(elt, parent)) return; // extract stable (non-live) list of children in case visitors mutate child list List<Element> children = new java.util.ArrayList<Element>(); for (Node node = elt.getFirstChild(); node != null; node = node.getNextSibling()) { if (node instanceof Element) children.add((Element) node); } // traverse stable (non-live) list of children for (Element child : children) { traverseElements(child, elt, v); } if (!v.postVisit(elt, parent)) return; }
private static List<Element> getRegionElements(Document doc, TransformerContext context) { final List<Element> regions = new java.util.ArrayList<Element>(); try { Traverse.traverseElements(doc, new PreVisitor() { public boolean visit(Object content, Object parent, Visitor.Order order) { assert content instanceof Element; Element elt = (Element) content; if (TTMLHelper.isOutOfLineRegionElement(elt)) regions.add(elt); return true; } }); } catch (Exception e) { context.getReporter().logError(e); } return regions; }
private static List<Element> getInitialElements(Document doc, TransformerContext context) { final List<Element> initials = new java.util.ArrayList<Element>(); try { Traverse.traverseElements(doc, new PreVisitor() { public boolean visit(Object content, Object parent, Visitor.Order order) { assert content instanceof Element; Element elt = (Element) content; if (TTMLHelper.isInitialElement(elt)) initials.add(elt); return true; } }); } catch (Exception e) { context.getReporter().logError(e); } return initials; }
private static Collection<Element> getRegionOrContentElements(Element root, TransformerContext context) { final Collection<Element> elts = new java.util.ArrayList<Element>(); try { Traverse.traverseElements(root, null, new PreVisitor() { public boolean visit(Object content, Object parent, Visitor.Order order) { assert content instanceof Element; Element elt = (Element) content; if (TTMLHelper.isRegionOrContentElement(elt)) elts.add(elt); return true; } }); } catch (Exception e) { context.getReporter().logError(e); } return elts; }
private static Collection<Element> getAnimationElements(Element root, TransformerContext context) { final Collection<Element> elts = new java.util.ArrayList<Element>(); try { Traverse.traverseElements(root, null, new PreVisitor() { public boolean visit(Object content, Object parent, Visitor.Order order) { assert content instanceof Element; Element elt = (Element) content; if (TTMLHelper.isAnimationElement(elt)) { elts.add(elt); } return true; } }); } catch (Exception e) { context.getReporter().logError(e); } return elts; }
private static void markIdAttributes(Document doc, TransformerContext context) { try { Traverse.traverseElements(doc, new PreVisitor() { public boolean visit(Object content, Object parent, Visitor.Order order) { assert content instanceof Element; Element elt = (Element) content; if (elt.hasAttributeNS(XML.xmlNamespace, "id")) elt.setIdAttributeNS(XML.xmlNamespace, "id", true); return true; } }); } catch (Exception e) { context.getReporter().logError(e); } }
private void elideInitials(Document d, final Map<QName,String> initials) { try { Traverse.traverseElements(d, new PreVisitor() { public boolean visit(Object content, Object parent, Visitor.Order order) { assert content instanceof Element; Element e = (Element) content; if (isRegionOrContentElement(e)) elideInitials(e, initials); return true; } }); } catch (Exception e) { getReporter().logError(e); } }
private void pruneISDExclusions(Document document, final TransformerContext context) { try { Traverse.traverseElements(document, new PreVisitor() { public boolean visit(Object content, Object parent, Visitor.Order order) { assert content instanceof Element; Element elt = (Element) content; if (!maybeExcludeElement(elt, context)) maybeExcludeAttributes(elt, context); return true; } }); } catch (Exception e) { context.getReporter().logError(e); } }
private static void generateISDRegions(final Element isd, Element root, final Map<Element, StyleSet> computedStyleSets, final TransformerContext context) { try { Traverse.traverseElements(root, null, new PreVisitor() { public boolean visit(Object content, Object parent, Visitor.Order order) { assert content instanceof Element; Element elt = (Element) content; if (TTMLHelper.isRegionElement(elt)) { generateISDRegion(isd, elt, (computedStyleSets != null) ? computedStyleSets.get(elt) : null, context); } return true; } }); } catch (Exception e) { context.getReporter().logError(e); } }
private static void pruneTimingAndRegionAttributes(Document document, TransformerContext context) { try { Traverse.traverseElements(document, new PreVisitor() { public boolean visit(Object content, Object parent, Visitor.Order order) { assert content instanceof Element; Element elt = (Element) content; if (TTMLHelper.isTimedElement(elt)) { pruneTimingAttributes(elt); pruneRegionAttributes(elt); } return true; } }); } catch (Exception e) { context.getReporter().logError(e); } }
private static Element getLayoutElement(Document document, TransformerContext context) { final Element[] retLayout = new Element[1]; try { Traverse.traverseElements(document, new PreVisitor() { public boolean visit(Object content, Object parent, Visitor.Order order) { assert content instanceof Element; Element elt = (Element) content; if (TTMLHelper.isLayoutElement(elt)) { retLayout[0] = elt; return false; } else return true; } }); } catch (Exception e) { context.getReporter().logError(e); } return retLayout[0]; }
private static Element getHeadElement(Document document, TransformerContext context) { final Element[] retHead = new Element[1]; try { Traverse.traverseElements(document, new PreVisitor() { public boolean visit(Object content, Object parent, Visitor.Order order) { assert content instanceof Element; Element elt = (Element) content; if (TTMLHelper.isHeadElement(elt)) { retHead[0] = elt; return false; } else return true; } }); } catch (Exception e) { context.getReporter().logError(e); } return retHead[0]; }
private static void unwrapRedundantAnonymousSpans(final Element isd, Element root, TransformerContext context) { try { Traverse.traverseElements(isd, null, new PostVisitor() { public boolean visit(Object content, Object parent, Visitor.Order order) { assert content instanceof Element; Element elt = (Element) content; if (TTMLHelper.isAnonymousSpanElement(elt)) { if (parent instanceof Element) { if (hasSameComputedStyleSet(elt, (Element) parent)) unwrapAnonymousSpan(elt, (Element) parent); } } return true; } }); } catch (Exception e) { context.getReporter().logError(e); } }
Traverse.traverseElements(document, new PreVisitor() { public boolean visit(Object content, Object parent, Visitor.Order order) { assert content instanceof Element;
private void transformForcedDisplay(Document doc, TransformerContext context) { final List<Element> styles = new java.util.ArrayList<Element>(); final List<Element> regions = new java.util.ArrayList<Element>(); final List<Element> forced = new java.util.ArrayList<Element>(); try { Traverse.traverseElements(doc, new PreVisitor() { public boolean visit(Object content, Object parent, Visitor.Order order) { assert content instanceof Element; Element elt = (Element) content; if (isISDStyleElement(elt)) { styles.add(elt); } else if (isISDRegionElement(elt)) { regions.add(elt); } else if (isContentElement(elt)) { if (Documents.hasAttribute(elt, forcedDisplayAttributeName)) { if (Boolean.parseBoolean(Documents.getAttribute(elt, forcedDisplayAttributeName, "").trim())) forced.add(elt); Documents.removeAttribute(elt, forcedDisplayAttributeName); } } return true; } }); } catch (Exception e) { context.getReporter().logError(e); } if (!forced.isEmpty()) transformForcedDisplay(doc, styles, regions, forced, context); }