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

org.aksw.jena_sparql_api.stmt.SparqlStmtParser Maven / Gradle / Ivy

package org.aksw.jena_sparql_api.stmt;

import java.util.function.Consumer;
import java.util.function.Function;

import org.apache.jena.shared.PrefixMapping;

public interface SparqlStmtParser
    extends Function
{
    public static SparqlStmtParser wrapWithOptimizePrefixes(Function delegate) {
        return str -> {
            SparqlStmt r = delegate.apply(str);
            SparqlStmtUtils.optimizePrefixes(r);
            return r;
        };
    }

    public static SparqlStmtParser wrapWithPostProcessor(Function delegate, Consumer postProcessor) {
        return str -> {
            SparqlStmt r = delegate.apply(str);
            postProcessor.accept(r);
            return r;
        };
    }

    public static SparqlStmtParser wrapWithTransform(Function delegate, Function transform) {
        return str -> {
        	SparqlStmt r;
            SparqlStmt before = delegate.apply(str);
            if (before.isParsed()) {
            	r = transform.apply(before);
            } else {
            	 r = before;
            }
            return r;
        };
    }


    public static SparqlStmtParser wrapWithNamespaceTracking(PrefixMapping pm, Function delegate) {
        return s -> {
            SparqlStmt r = delegate.apply(s);
            if(r.isParsed()) {
                PrefixMapping pm2 = null;
                if(r.isQuery()) {
                    pm2 = r.getAsQueryStmt().getQuery().getPrefixMapping();
                } else if(r.isUpdateRequest()) {
                    pm2 = r.getAsUpdateStmt().getUpdateRequest().getPrefixMapping();
                }

                if(pm2 != null) {
                    pm.setNsPrefixes(pm2);
                }
            }
            return r;
        };
    };

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy