/** * Called to traverse and visit the tree of {@link org.w3c.dom.Element}s. * @param element the root of the tree to traverse and visit * @param visitor the visitor to be called on each of the nodes. */ public static void visit(Element element, DomVisitor visitor) { if (!visitor.visit(element)) return; NodeList childNodes = element.getChildNodes(); for (int idx = 0; idx < childNodes.getLength(); idx++) { Node childNode = childNodes.item(idx); if (childNode.getNodeType() == Node.ELEMENT_NODE) { visit((Element) childNode, visitor); } } }
/** * Called to traverse and visit the tree of {@link org.w3c.dom.Element}s. * @param element the root of the tree to traverse and visit * @param visitor the visitor to be called on each of the nodes. */ public static void visit(Element element, DomVisitor visitor) { if (!visitor.visit(element)) return; NodeList childNodes = element.getChildNodes(); for (int idx = 0; idx < childNodes.getLength(); idx++) { Node childNode = childNodes.item(idx); if (childNode.getNodeType() == Node.ELEMENT_NODE) { visit((Element) childNode, visitor); } } }
public Document visitTemplate(URL template) { final Document document = parseTemplate(template); for (int i = 0; i < document.getChildNodes().getLength(); i++) { final Node node = document.getChildNodes().item(i); if (node instanceof Element) { DomVisit.visit((Element) node, element -> { chain.execute(element); return true; }); } } return document; }
public Document visitTemplate(URL template) { final Document document = parseTemplate(template); for (int i = 0; i < document.getChildNodes().getLength(); i++) { final Node node = document.getChildNodes().item(i); if (node instanceof Element) { DomVisit.visit((Element) node, element -> { chain.execute(element); return true; }); } } return document; }
/** * Gets all of the i18n key/value pairs from the given template root. In other words, returns * everything that needs to be translated. * * @param templateRoot * @param i18nPrefix */ private static Map<String, String> getTemplateI18nValues(final Element templateRoot, final String i18nPrefix) { final TemplateVisitor visitor = new TemplateVisitor(i18nPrefix); DomVisit.visit(templateRoot, visitor); return visitor.getI18nValues(); }
/** * Gets all of the i18n key/value pairs from the given template root. In other words, returns * everything that needs to be translated. * * @param templateRoot * @param i18nPrefix */ private static Map<String, String> getTemplateI18nValues(final Element templateRoot, final String i18nPrefix) { final TemplateVisitor visitor = new TemplateVisitor(i18nPrefix); DomVisit.visit(templateRoot, visitor); return visitor.getI18nValues(); }
/** * Called to perform i18n translation on the given template. Add i18n-prefix attribute to root of * template to allow translation after bean creation. * * @param templateRoot */ public static void translateTemplate(final String templateFile, final Element templateRoot) { if (!getTranslationService().isEnabled()) return; logger.finer("Translating template: " + templateFile); final String i18nKeyPrefix = getI18nPrefix(templateFile); // Add i18n prefix attribute for post-creation translation templateRoot.setAttribute("data-i18n-prefix", i18nKeyPrefix); DomVisit.visit(new ElementWrapper(templateRoot), new TemplateTranslationVisitor(i18nKeyPrefix)); }
/** * Called to perform i18n translation on the given template. Add i18n-prefix attribute to root of * template to allow translation after bean creation. * * @param templateRoot */ public static void translateTemplate(final String templateFile, final Element templateRoot) { if (!getTranslationService().isEnabled()) return; logger.finer("Translating template: " + templateFile); final String i18nKeyPrefix = getI18nPrefix(templateFile); // Add i18n prefix attribute for post-creation translation templateRoot.setAttribute("data-i18n-prefix", i18nKeyPrefix); DomVisit.visit(new ElementWrapper(templateRoot), new TemplateTranslationVisitor(i18nKeyPrefix)); }