// Path: gaulois-pipe/src/main/java/fr/efl/chaine/xslt/InvalidSyntaxException.java
// public class InvalidSyntaxException extends Exception {
// 
//     public InvalidSyntaxException() {
//     }
// 
//     public InvalidSyntaxException(String message) {
//         super(message);
//     }
// 
//     public InvalidSyntaxException(String message, Throwable cause) {
//         super(message, cause);
//     }
// 
//     public InvalidSyntaxException(Throwable cause) {
//         super(cause);
//     }
// 
//     public InvalidSyntaxException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
//         super(message, cause, enableSuppression, writableStackTrace);
//     }
//     
// }
// 
// Path: gaulois-pipe/src/main/java/fr/efl/chaine/xslt/utils/ParameterValue.java
// public class ParameterValue {
// 
//     /**
//      * the parameter key.
//      * Since issue#15, it is a QName
//      */
//     private final QName key;
//     /**
//      * the parameter value.
//      */
//     private Object value;
//     /**
//      * This parameter datatype. If not specified, it's xs:string
//      */
//     private Datatype datatype;
//     private boolean abstractParam;
// 
//     /**
//      * Default constructor.
//      *
//      * @param key the parameter key
//      * @param value the parameter value
//      * @param datatype the parameter datatype
//      */
//     @SuppressWarnings("OverridableMethodCallInConstructor")
//     public ParameterValue(QName key, Object value, Datatype datatype) {
//         this.key = key;
//         setValue(value);
//         setDatatype(datatype);
//     }
// 
//     /**
//      * Constructs an abstract Parameter
//      * @param key The param key
//      * @param datatype The param datatype
//      */
//     @SuppressWarnings("OverridableMethodCallInConstructor")
//     public ParameterValue(QName key, Datatype datatype) {
//         this.key = key;
//         setDatatype(datatype);
//         abstractParam = true;
//     }
// 
//     /**
//      * @return the parameter key
//      */
//     public QName getKey() {
//         return key;
//     }
// 
//     /**
//      * @return the parameter value
//      */
//     public Object getValue() {
//         return value;
//     }
//     
//     public void setValue(Object value) {
//         if(value instanceof String) {
//             this.value=value;
//             abstractParam = false;
//         } else if(value instanceof XdmValue) {
//             this.value=value;
//             abstractParam = false;
//         } else if(value==null) {
//             this.value=value;
//             abstractParam = false;
//         } else {
//             throw new IllegalArgumentException("Only String or XdmValue are acceptable values for parameters");
//         }
//     }
// 
//     @Override
//     public String toString() {
//         return "[" + getKey() + "=" + (abstractParam ? "<abstract>" : getValue()) + "]";
//     }
// 
//     public Datatype getDatatype() {
//         return datatype;
//     }
// 
//     public void setDatatype(Datatype datatype) {
//         this.datatype = datatype;
//     }
//     
//     public boolean isAbstract() {
//         return abstractParam;
//     }
// 
// }


import fr.efl.chaine.xslt.InvalidSyntaxException;
import fr.efl.chaine.xslt.utils.ParameterValue;
import java.io.File;
import java.net.URL;
import java.util.HashMap;
import java.util.List;
import net.sf.saxon.s9api.QName;
import net.sf.saxon.s9api.XdmNode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
        params = new HashMap<>();
        this.currentDir = new File(currentDir);
    }
    public Pipe getPipe() {
        return pipe;
    }

    void setPipe(Pipe pipe) {
        this.pipe = pipe;
    }

    public HashMap<QName,ParameterValue> getParams() {
        return params;
    }

    public void addParameter(ParameterValue p) {
        if(p!=null) {
            params.put(p.getKey(),p);
        }
    }

    public Sources getSources() {
        return sources;
    }

    void setSources(Sources sources) {
        this.sources = sources;
    }

    @Override
// Path: gaulois-pipe/src/main/java/fr/efl/chaine/xslt/InvalidSyntaxException.java
// public class InvalidSyntaxException extends Exception {
// 
//     public InvalidSyntaxException() {
//     }
// 
//     public InvalidSyntaxException(String message) {
//         super(message);
//     }
// 
//     public InvalidSyntaxException(String message, Throwable cause) {
//         super(message, cause);
//     }
// 
//     public InvalidSyntaxException(Throwable cause) {
//         super(cause);
//     }
// 
//     public InvalidSyntaxException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
//         super(message, cause, enableSuppression, writableStackTrace);
//     }
//     
// }
// 
// Path: gaulois-pipe/src/main/java/fr/efl/chaine/xslt/utils/ParameterValue.java
// public class ParameterValue {
// 
//     /**
//      * the parameter key.
//      * Since issue#15, it is a QName
//      */
//     private final QName key;
//     /**
//      * the parameter value.
//      */
//     private Object value;
//     /**
//      * This parameter datatype. If not specified, it's xs:string
//      */
//     private Datatype datatype;
//     private boolean abstractParam;
// 
//     /**
//      * Default constructor.
//      *
//      * @param key the parameter key
//      * @param value the parameter value
//      * @param datatype the parameter datatype
//      */
//     @SuppressWarnings("OverridableMethodCallInConstructor")
//     public ParameterValue(QName key, Object value, Datatype datatype) {
//         this.key = key;
//         setValue(value);
//         setDatatype(datatype);
//     }
// 
//     /**
//      * Constructs an abstract Parameter
//      * @param key The param key
//      * @param datatype The param datatype
//      */
//     @SuppressWarnings("OverridableMethodCallInConstructor")
//     public ParameterValue(QName key, Datatype datatype) {
//         this.key = key;
//         setDatatype(datatype);
//         abstractParam = true;
//     }
// 
//     /**
//      * @return the parameter key
//      */
//     public QName getKey() {
//         return key;
//     }
// 
//     /**
//      * @return the parameter value
//      */
//     public Object getValue() {
//         return value;
//     }
//     
//     public void setValue(Object value) {
//         if(value instanceof String) {
//             this.value=value;
//             abstractParam = false;
//         } else if(value instanceof XdmValue) {
//             this.value=value;
//             abstractParam = false;
//         } else if(value==null) {
//             this.value=value;
//             abstractParam = false;
//         } else {
//             throw new IllegalArgumentException("Only String or XdmValue are acceptable values for parameters");
//         }
//     }
// 
//     @Override
//     public String toString() {
//         return "[" + getKey() + "=" + (abstractParam ? "<abstract>" : getValue()) + "]";
//     }
// 
//     public Datatype getDatatype() {
//         return datatype;
//     }
// 
//     public void setDatatype(Datatype datatype) {
//         this.datatype = datatype;
//     }
//     
//     public boolean isAbstract() {
//         return abstractParam;
//     }
// 
// }


// Path: gaulois-pipe/src/main/java/fr/efl/chaine/xslt/config/Config.java
import fr.efl.chaine.xslt.InvalidSyntaxException;
import fr.efl.chaine.xslt.utils.ParameterValue;
import java.io.File;
import java.net.URL;
import java.util.HashMap;
import java.util.List;
import net.sf.saxon.s9api.QName;
import net.sf.saxon.s9api.XdmNode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

        params = new HashMap<>();
        this.currentDir = new File(currentDir);
    }
    public Pipe getPipe() {
        return pipe;
    }

    void setPipe(Pipe pipe) {
        this.pipe = pipe;
    }

    public HashMap<QName,ParameterValue> getParams() {
        return params;
    }

    public void addParameter(ParameterValue p) {
        if(p!=null) {
            params.put(p.getKey(),p);
        }
    }

    public Sources getSources() {
        return sources;
    }

    void setSources(Sources sources) {
        this.sources = sources;
    }

    @Override
    public void verify() throws InvalidSyntaxException {