private boolean xmlFilePassRestrictions(final GraphRewrite event,final EvaluationContext context,XmlFileModel xml) { boolean validation = cacheValidator.isValid(event,context,xml); validation = validation && fileNameValidator.isValid(event,context,xml); validation = validation && dtdValidator.isValid(event,context,xml); validation = validation && xpathValidator.isValid(event,context,xml); return validation; }
private void initValidators(GraphRewrite event, EvaluationContext context, XmlFileEvaluationStrategy evaluationStrategy) { xpathValidator.setEvaluationStrategy(evaluationStrategy); xpathValidator.setXmlFileNameValidator(fileNameValidator); cacheValidator.clear(); }
public XmlFileDTD andDTDSystemId(String dtdNamespace) { dtdValidator.setSystemId(dtdNamespace); return this; }
public String toString() { StringBuilder builder = new StringBuilder(); builder.append("XmlFile"); if (getInputVariablesName() != null) { builder.append(".inputVariable(" + getInputVariablesName() + ")"); } if (xpathValidator.getXpathString() != null) { builder.append(".matches(" + xpathValidator.getXpathString() + ")"); } if (fileNameValidator.getFileNamePattern() != null) { builder.append(".inFile(" + fileNameValidator.getFileNamePattern().toString() + ")"); } if (dtdValidator.getPublicId() != null) { builder.append(".withDTDPublicId(" + dtdValidator.getPublicId() + ")"); } builder.append(".as(" + getOutputVariablesName() + ")"); return builder.toString(); }
@Override public Set<String> getRequiredParameterNames() { Set<String> result = new HashSet<>(); result.addAll(xpathValidator.getRequiredParamaterNames()); result.addAll(fileNameValidator.getRequiredParamaterNames()); return result; }
private void registerAndSubmitResultsFor(XmlFileModel xml, List<WindupVertexFrame> results, EvaluationStrategy evaluationStrategy, GraphRewrite event, EvaluationContext context) { final List<WindupVertexFrame> xpathResults = xpathValidator.getAndClearResultLocations(); if(xpathResults.isEmpty()) { evaluationStrategy.modelMatched(); if (fileNameValidator.getFileNamePattern() != null && !fileNameValidator.getFileNamePattern().parse(xml.getFileName()).submit(event, context)) { evaluationStrategy.modelSubmissionRejected(); return; } evaluationStrategy.modelSubmitted(xml); results.add(xml); } else { //these were already submitted by XpathValidator results.addAll(xpathResults); } }
/** * Only return results that match the given regex. */ public XmlFileResult resultMatches(String regex) { this.xpathValidator.setXpathResult(regex); return this; }
public RegexParameterizedPatternParser getInFilePattern() { return this.fileNameValidator.getFileNamePattern(); }
public XmlFileDTD andDTDPublicId(String publicIdRegex) { this.dtdValidator.setPublicId(publicIdRegex); return this; }
/** * Scan only files that match the given file name. */ public XmlFileIn inFile(String fileName) { this.fileNameValidator.setFileNameRegex(fileName); return this; }
@Override public void setParameterStore(ParameterStore store) { this.xpathValidator.setParameterStore(store); }
public XmlFileNamespace namespace(String prefix, String url) { this.xpathValidator.addNamespace(prefix, url); return this; }
public void setXpath(String xpath) { this.xpathValidator.setXpathString(xpath); }
public XPathExpression getXPathExpression() { return this.xpathValidator.getXpathExpression(); }
public String getXpathString() { return xpathValidator.getXpathString(); }
public String getPublicId() { return this.dtdValidator.getPublicId(); }
this.xmlFileFunctionResolver.registerFunction(WINDUP_NS_URI, "matches", new XmlFileMatchesXPathFunction(context, store, paramMatchCache, event)); this.xmlFileFunctionResolver.registerFunction(WINDUP_NS_URI, "persist", new XmlFilePersistXPathFunction(event, context, model, evaluationStrategy, store, paramMatchCache, results));
/** * Create a new {@link XmlFile} that matches on the provided DTD namespace. */ public static XmlFileDTD withDTDSystemId(String dtdNamespace) { XmlFile xmlFile = new XmlFile(); xmlFile.dtdValidator.setSystemId(dtdNamespace); return xmlFile; }
public void setXpathResultMatch(String xpathResultMatch) { xpathValidator.setXpathResult(xpathResultMatch); }
evaluationStrategy.modelMatched(); if (fileNameValidator.getFileNamePattern() != null && !fileNameValidator.getFileNamePattern().parse(xml.getFileName()).submit(event, context))