package org.aksw.sparqlify.core.cast;
import java.util.function.UnaryOperator;
import org.apache.jena.sparql.expr.Expr;
import org.apache.jena.sparql.expr.NodeValue;
/**
* Note to myself: My initial idea was to have a method
* Factory1<Expr> getCastFactory(sourceTypeName, targetTypeName)
* which upon invocation must return an appropriate factory.
* However, instead of using this factory, we could use E_Cast
*
*
* cast(intgeger) -> double
*
*
*
*
* @author Claus Stadler <cstadler@informatik.uni-leipzig.de>
*
*/
public interface CastSystem {
/**
* Cast a constant value
*
* @param sourceTypeName
* @param targetTypeName
* @return
* @throws CastException
*/
public NodeValue cast(NodeValue value, String targetTypeName)
throws CastException;
public UnaryOperator<Expr> lookupCast(String sourceTypeName, String targetTypeName);
}