private void removeXPaths2CheckResubmission(MCRBinding binding) { for (Object node : binding.getBoundNodes()) { xPaths2CheckResubmission.remove(MCRXPathBuilder.buildXPath(node)); } }
public void mark2checkResubmission(MCRBinding binding) { for (Object node : binding.getBoundNodes()) { xPaths2CheckResubmission.add(MCRXPathBuilder.buildXPath(node)); } }
public String getAbsoluteXPath() { return MCRXPathBuilder.buildXPath(getBoundNode()); }
public void setXPaths2CheckResubmission(String xPaths) throws JDOMException { xPaths2CheckResubmission.clear(); String rootXPath = MCRXPathBuilder.buildXPath(session.getEditedXML().getRootElement()) + "/"; if (xPaths != null) { for (String xPath : xPaths.split(" ")) { xPaths2CheckResubmission.add(rootXPath + xPath); } } }
protected static String buildParameter(MCRRepeatBinding repeatBinding, int pos) throws JaxenException { String parentXPath = MCRXPathBuilder.buildXPath(repeatBinding.getParentElement()); String nameWithPredicates = repeatBinding.getElementNameWithPredicates(); String method = repeatBinding.getMethod(); return parentXPath + "|" + pos + "|" + method + "|" + nameWithPredicates; } }
public boolean validateBinding(MCRValidationResults results, MCRBinding binding) { boolean isValid = true; // all nodes must validate for (Object node : binding.getBoundNodes()) { String absPath = MCRXPathBuilder.buildXPath(node); if (results.hasError(absPath)) { continue; } String value = MCRBinding.getValue(node); if (value.isEmpty()) { continue; } boolean result = isValid(value); results.mark(absPath, result, this); isValid = isValid && result; } return isValid; }
@Override public boolean validateBinding(MCRValidationResults results, MCRBinding binding) { boolean isValid = true; // all nodes must validate for (Object node : binding.getBoundNodes()) { String absPath = MCRXPathBuilder.buildXPath(node); if (results.hasError(absPath)) { continue; } Boolean result = isValid(node); if (result == null) { continue; } results.mark(absPath, result, this); isValid = isValid && result; } return isValid; }
@Override public boolean validateBinding(MCRValidationResults results, MCRBinding binding) { boolean isValid = true; // all nodes must validate List<Object> boundNodes = binding.getBoundNodes(); for (int i = 0; i < boundNodes.size(); i++) { Object node = boundNodes.get(i); String absPath = MCRXPathBuilder.buildXPath(node); if (results.hasError(absPath)) { continue; } MCRBinding nodeBinding = new MCRBinding(i + 1, binding); MCRXPathEvaluator evaluator = nodeBinding.getXPathEvaluator(); boolean result = evaluator.test(xPathExpression); nodeBinding.detach(); results.mark(absPath, result, this); isValid = isValid && result; } return isValid; } }
private void bind(String xPath, boolean buildIfNotExists, String initialValue) throws JaxenException { this.xPath = xPath; Map<String, Object> variables = buildXPathVariables(); XPathExpression<Object> xPathExpr = XPathFactory.instance().compile(xPath, Filters.fpassthrough(), variables, MCRConstants.getStandardNamespaces()); boundNodes.addAll(xPathExpr.evaluate(parent.getBoundNodes())); for (Object boundNode : boundNodes) { if (!(boundNode instanceof Element || boundNode instanceof Attribute || boundNode instanceof Document)) { throw new TypeNotPresentException( "XPath MUST only bind either element, attribute or document nodes: " + xPath, null); } } LOGGER.debug("Bind to {} selected {} node(s)", xPath, boundNodes.size()); if (boundNodes.isEmpty() && buildIfNotExists) { MCRNodeBuilder builder = new MCRNodeBuilder(variables); Object built = builder.buildNode(xPath, initialValue, (Parent) (parent.getBoundNode())); LOGGER.debug("Bind to {} generated node {}", xPath, MCRXPathBuilder.buildXPath(built)); boundNodes.add(built); trackNodeCreated(builder.getFirstNodeBuilt()); } }