package org.jboss.windup.rules.apps.xml.condition;
import org.ocpsoft.rewrite.config.ConditionBuilder;
/**
* The building step of XmlFile condition
* @author <a href="mailto:mbriskar@gmail.com">Matej Briskar</a>
*
*/
public interface XmlFileXpath extends ConditionBuilder
{
/**
* Specify the regex to which should the xpath result be matched.
* @param regex that should the xpath result match
* @return
*/
XmlFileResult resultMatches(String regex);
/**
* Specify the DTD public-id regex. Use this only if you don't have the regex for the xpath result.
* @param publicIdRegex public-id regex
* @return
*/
XmlFileDTD andDTDPublicId(String publicIdRegex);
/**
* Specify the DTD system-id regex.
* @param systemIdRegex system-id regex
* @return
*/
XmlFileDTD andDTDSystemId(String systemIdRegex);
/**
* Specify the regex of xml file name. Use this now only if you don't want to specify regex for the xpath result nor DTD regex.
* @param fileName regex of file name
* @return
*/
XmlFileIn inFile(String fileName);
/**
* Specify the namespace used in the xpath that was provided sooner. Use this now only if you don't want to specify any of these: xpath result regex, DTD regex, file naem regex.
* @param prefix the namespace prefix
* @param url the namespace url
* @return the last step in XmlFile definition to provide the variable name
*/
XmlFileNamespace namespace(String prefix, String url);
/**
* The last step of building the XmlFile, specifying the variable name. Do not use this now if you want to specify some other parameters.
* @param variable variable name that will be saved in {@Variables} stack as the output of this condition.
* @return
*/
ConditionBuilder as(String variable);
}