StatementConvertorWithoutBindingChecks.java
/*******************************************************************************
* Copyright (c) 2025 Eclipse RDF4J contributors.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Distribution License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: BSD-3-Clause
*******************************************************************************/
package org.eclipse.rdf4j.query.algebra.evaluation.impl.evaluationsteps;
import java.util.function.BiConsumer;
import org.eclipse.rdf4j.model.Statement;
import org.eclipse.rdf4j.model.Value;
import org.eclipse.rdf4j.query.MutableBindingSet;
import org.eclipse.rdf4j.query.algebra.Var;
import org.eclipse.rdf4j.query.algebra.evaluation.impl.QueryEvaluationContext;
class StatementConvertorWithoutBindingChecks {
private StatementConvertorWithoutBindingChecks() {
}
public static BiConsumer<MutableBindingSet, Statement> s(QueryEvaluationContext context, Var s) {
BiConsumer<Value, MutableBindingSet> setS = context.addBinding(s.getName());
return (result, st) -> setS.accept(st.getSubject(), result);
}
public static BiConsumer<MutableBindingSet, Statement> p(QueryEvaluationContext context, Var p) {
BiConsumer<Value, MutableBindingSet> setP = context.addBinding(p.getName());
return (result, st) -> setP.accept(st.getPredicate(), result);
}
public static BiConsumer<MutableBindingSet, Statement> o(QueryEvaluationContext context, Var o) {
BiConsumer<Value, MutableBindingSet> setO = context.addBinding(o.getName());
return (result, st) -> setO.accept(st.getObject(), result);
}
public static BiConsumer<MutableBindingSet, Statement> c(QueryEvaluationContext context, Var c) {
BiConsumer<Value, MutableBindingSet> setC = context.addBinding(c.getName());
return (result, st) -> setC.accept(st.getContext(), result);
}
public static BiConsumer<MutableBindingSet, Statement> sp(QueryEvaluationContext context, Var s, Var p) {
BiConsumer<Value, MutableBindingSet> setS = context.addBinding(s.getName());
BiConsumer<Value, MutableBindingSet> setP = context.addBinding(p.getName());
return (result, st) -> {
setS.accept(st.getSubject(), result);
setP.accept(st.getPredicate(), result);
};
}
public static BiConsumer<MutableBindingSet, Statement> so(QueryEvaluationContext context, Var s, Var o) {
BiConsumer<Value, MutableBindingSet> setS = context.addBinding(s.getName());
BiConsumer<Value, MutableBindingSet> setO = context.addBinding(o.getName());
return (result, st) -> {
setS.accept(st.getSubject(), result);
setO.accept(st.getObject(), result);
};
}
public static BiConsumer<MutableBindingSet, Statement> sc(QueryEvaluationContext context, Var s, Var c) {
BiConsumer<Value, MutableBindingSet> setS = context.addBinding(s.getName());
BiConsumer<Value, MutableBindingSet> setC = context.addBinding(c.getName());
return (result, st) -> {
setS.accept(st.getSubject(), result);
setC.accept(st.getContext(), result);
};
}
public static BiConsumer<MutableBindingSet, Statement> po(QueryEvaluationContext context, Var p, Var o) {
BiConsumer<Value, MutableBindingSet> setP = context.addBinding(p.getName());
BiConsumer<Value, MutableBindingSet> setO = context.addBinding(o.getName());
return (result, st) -> {
setP.accept(st.getPredicate(), result);
setO.accept(st.getObject(), result);
};
}
public static BiConsumer<MutableBindingSet, Statement> pc(QueryEvaluationContext context, Var p, Var c) {
BiConsumer<Value, MutableBindingSet> setP = context.addBinding(p.getName());
BiConsumer<Value, MutableBindingSet> setC = context.addBinding(c.getName());
return (result, st) -> {
setP.accept(st.getPredicate(), result);
setC.accept(st.getContext(), result);
};
}
public static BiConsumer<MutableBindingSet, Statement> oc(QueryEvaluationContext context, Var o, Var c) {
BiConsumer<Value, MutableBindingSet> setO = context.addBinding(o.getName());
BiConsumer<Value, MutableBindingSet> setC = context.addBinding(c.getName());
return (result, st) -> {
setO.accept(st.getObject(), result);
setC.accept(st.getContext(), result);
};
}
public static BiConsumer<MutableBindingSet, Statement> spo(QueryEvaluationContext context, Var s, Var p, Var o) {
BiConsumer<Value, MutableBindingSet> setS = context.addBinding(s.getName());
BiConsumer<Value, MutableBindingSet> setP = context.addBinding(p.getName());
BiConsumer<Value, MutableBindingSet> setO = context.addBinding(o.getName());
return (result, st) -> {
setS.accept(st.getSubject(), result);
setP.accept(st.getPredicate(), result);
setO.accept(st.getObject(), result);
};
}
public static BiConsumer<MutableBindingSet, Statement> spc(QueryEvaluationContext context, Var s, Var p, Var c) {
BiConsumer<Value, MutableBindingSet> setS = context.addBinding(s.getName());
BiConsumer<Value, MutableBindingSet> setP = context.addBinding(p.getName());
BiConsumer<Value, MutableBindingSet> setC = context.addBinding(c.getName());
return (result, st) -> {
setS.accept(st.getSubject(), result);
setP.accept(st.getPredicate(), result);
setC.accept(st.getContext(), result);
};
}
public static BiConsumer<MutableBindingSet, Statement> soc(QueryEvaluationContext context, Var s, Var o, Var c) {
BiConsumer<Value, MutableBindingSet> setS = context.addBinding(s.getName());
BiConsumer<Value, MutableBindingSet> setO = context.addBinding(o.getName());
BiConsumer<Value, MutableBindingSet> setC = context.addBinding(c.getName());
return (result, st) -> {
setS.accept(st.getSubject(), result);
setO.accept(st.getObject(), result);
setC.accept(st.getContext(), result);
};
}
public static BiConsumer<MutableBindingSet, Statement> poc(QueryEvaluationContext context, Var p, Var o, Var c) {
BiConsumer<Value, MutableBindingSet> setP = context.addBinding(p.getName());
BiConsumer<Value, MutableBindingSet> setO = context.addBinding(o.getName());
BiConsumer<Value, MutableBindingSet> setC = context.addBinding(c.getName());
return (result, st) -> {
setP.accept(st.getPredicate(), result);
setO.accept(st.getObject(), result);
setC.accept(st.getContext(), result);
};
}
public static BiConsumer<MutableBindingSet, Statement> spoc(QueryEvaluationContext context, Var s, Var p, Var o,
Var c) {
BiConsumer<Value, MutableBindingSet> setS = context.addBinding(s.getName());
BiConsumer<Value, MutableBindingSet> setP = context.addBinding(p.getName());
BiConsumer<Value, MutableBindingSet> setO = context.addBinding(o.getName());
BiConsumer<Value, MutableBindingSet> setC = context.addBinding(c.getName());
return (result, st) -> {
setS.accept(st.getSubject(), result);
setP.accept(st.getPredicate(), result);
setO.accept(st.getObject(), result);
setC.accept(st.getContext(), result);
};
}
}