package com.bagri.xquery.saxon.ext.doc; import static com.bagri.core.Constants.bg_ns; import static com.bagri.core.Constants.bg_schema; import java.util.Properties; import com.bagri.core.api.DocumentManagement; import net.sf.saxon.lib.ExtensionFunctionDefinition; import net.sf.saxon.om.Item; import net.sf.saxon.om.Sequence; import net.sf.saxon.om.SequenceIterator; import net.sf.saxon.om.StructuredQName; import net.sf.saxon.trans.XPathException; public abstract class DocumentFunctionExtension extends ExtensionFunctionDefinition { protected DocumentManagement xdm; public DocumentFunctionExtension(DocumentManagement xdm) { this.xdm = xdm; } @Override public StructuredQName getFunctionQName() { return new StructuredQName(bg_schema, bg_ns, getFunctionName()); } protected abstract String getFunctionName(); @Override public int getMinimumNumberOfArguments() { return 1; } @Override public int getMaximumNumberOfArguments() { return 2; } @Override public boolean hasSideEffects() { return true; } }