package com.occamlab.te.saxon; import net.sf.saxon.expr.Expression; import net.sf.saxon.expr.ExpressionVisitor; import net.sf.saxon.expr.FunctionCall; import net.sf.saxon.expr.StaticContext; import net.sf.saxon.expr.StaticProperty; import net.sf.saxon.om.StructuredQName; import net.sf.saxon.trans.XPathException; import net.sf.saxon.type.AnyItemType; import net.sf.saxon.type.ItemType; import net.sf.saxon.type.TypeHierarchy; public class TEFunctionCall extends FunctionCall { public TEFunctionCall(StructuredQName functionName, Expression[] staticArgs, StaticContext env) { super(); this.setFunctionName(functionName); this.setArguments(staticArgs); } public Expression preEvaluate(ExpressionVisitor visitor) { return this; } public int getImplementationMethod() { return ITERATE_METHOD; } protected void checkArguments(ExpressionVisitor visitor) throws XPathException { // Assume arguments are OK } protected int computeCardinality() { return StaticProperty.ALLOWS_ZERO_OR_MORE; } public Expression copy() { throw new UnsupportedOperationException(); } public ItemType getItemType(TypeHierarchy th) { return AnyItemType.getInstance(); } }