// Path: gaulois-pipe/src/main/java/top/marchand/xml/gaulois/config/typing/Datatype.java
// public interface Datatype {
//     
//     /**
//      * Returns true if this datatype is an atomic datatype
//      * @return if this datatype represents and atomic value
//      */
//     boolean isAtomic();
//     
//     /**
//      * Returns true if sequences are allowed
//      * @return if multiple values are allowed (sequence with more than 1 item)
//      */
//     boolean allowsMultiple();
//     
//     /**
//      * Return true if empty sequence is allowed.
//      * @return if empty is allowed, if empty-sequence aloowed
//      */
//     boolean allowsEmpty();
//     
//     /**
//      * Convert <tt>input</tt> as this datatype
//      * @param input The input value to convert
//      * @param configuration The saxon Configuration to rely on
//      * @return The corresponding XdmValue
//      * @throws net.sf.saxon.type.ValidationException If <tt>input</tt>is not castable into this datatype
//      */
//     XdmValue convert(String input, Configuration configuration) throws ValidationException;
//     
// }


import net.sf.saxon.s9api.QName;
import net.sf.saxon.s9api.XdmValue;
import top.marchand.xml.gaulois.config.typing.Datatype;

/**
 * This Source Code Form is subject to the terms of 
 * the Mozilla Public License, v. 2.0. If a copy of 
 * the MPL was not distributed with this file, You 
 * can obtain one at https://mozilla.org/MPL/2.0/.
 */
package fr.efl.chaine.xslt.utils;


/**
 * A parameter value in saxon pipe.
 */
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
     */

// Path: gaulois-pipe/src/main/java/top/marchand/xml/gaulois/config/typing/Datatype.java
// public interface Datatype {
//     
//     /**
//      * Returns true if this datatype is an atomic datatype
//      * @return if this datatype represents and atomic value
//      */
//     boolean isAtomic();
//     
//     /**
//      * Returns true if sequences are allowed
//      * @return if multiple values are allowed (sequence with more than 1 item)
//      */
//     boolean allowsMultiple();
//     
//     /**
//      * Return true if empty sequence is allowed.
//      * @return if empty is allowed, if empty-sequence aloowed
//      */
//     boolean allowsEmpty();
//     
//     /**
//      * Convert <tt>input</tt> as this datatype
//      * @param input The input value to convert
//      * @param configuration The saxon Configuration to rely on
//      * @return The corresponding XdmValue
//      * @throws net.sf.saxon.type.ValidationException If <tt>input</tt>is not castable into this datatype
//      */
//     XdmValue convert(String input, Configuration configuration) throws ValidationException;
//     
// }


// Path: gaulois-pipe/src/main/java/fr/efl/chaine/xslt/utils/ParameterValue.java
import net.sf.saxon.s9api.QName;
import net.sf.saxon.s9api.XdmValue;
import top.marchand.xml.gaulois.config.typing.Datatype;

/**
 * This Source Code Form is subject to the terms of 
 * the Mozilla Public License, v. 2.0. If a copy of 
 * the MPL was not distributed with this file, You 
 * can obtain one at https://mozilla.org/MPL/2.0/.
 */
package fr.efl.chaine.xslt.utils;


/**
 * A parameter value in saxon pipe.
 */
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;
