
org.aksw.jena_sparql_api.utils.BindingUtils Maven / Gradle / Ivy
package org.aksw.jena_sparql_api.utils;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.apache.jena.graph.Node;
import org.apache.jena.sparql.core.Var;
import org.apache.jena.sparql.engine.binding.Binding;
import org.apache.jena.sparql.engine.binding.BindingHashMap;
import org.apache.jena.sparql.expr.NodeValue;
public class BindingUtils {
// public static Binding clone(Binding binding) {
// Binding result = new BindingHashMap();
// }
public static Map toMap(Binding binding) {
Map result = new HashMap();
Iterator it = binding.vars();
while(it.hasNext()) {
Var v = it.next();
Node n = binding.get(v);
result.put(v, n);
}
return result;
}
public static List addRowIds(Collection bindings, Var rowId) {
List result = new ArrayList(bindings.size());
long i = 0;
for(Binding parent : bindings) {
BindingHashMap b = new BindingHashMap(parent);
Node node = NodeValue.makeInteger(i).asNode();
b.add(rowId, node);
++i;
}
return result;
}
public static Binding rename(Binding binding, Map varMap) {
BindingHashMap result = new BindingHashMap();
Iterator itVars = binding.vars();
while(itVars.hasNext()) {
Var sourceVar = itVars.next();
Node node = binding.get(sourceVar);
Var targetVar = varMap.get(sourceVar);
if(targetVar == null) {
targetVar = sourceVar;
}
result.add(targetVar, node);
}
return result;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy