All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.lizardev.xquery.saxon.coverage.trace.CoverageClausePull Maven / Gradle / Ivy

The newest version!
package com.github.lizardev.xquery.saxon.coverage.trace;

import net.sf.saxon.Controller;
import net.sf.saxon.expr.Container;
import net.sf.saxon.expr.XPathContext;
import net.sf.saxon.expr.flwor.ClauseInfo;
import net.sf.saxon.expr.flwor.TuplePull;
import net.sf.saxon.trans.XPathException;

public class CoverageClausePull extends TuplePull {

    private final TuplePull base;
    private final CoverageClause coverageClause;
    private final Container container;

    public CoverageClausePull(TuplePull base, CoverageClause coverageClause, Container container) {
        this.base = base;
        this.coverageClause = coverageClause;
        this.container = container;
    }

    @Override
    public boolean nextTuple(XPathContext context) throws XPathException {
        Controller controller = context.getController();
        if (controller.isTracing()) {
            ClauseInfo baseInfo = new ClauseInfo(coverageClause, container);
            baseInfo.setNamespaceResolver(coverageClause.getNamespaceResolver());
            controller.getTraceListener().enter(baseInfo, context);
            boolean b = base.nextTuple(context);
            controller.getTraceListener().leave(baseInfo);
            return b;
        } else {
            return base.nextTuple(context);
        }
    }

    @Override
    public void close() {
        base.close();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy