package org.aksw.jena_sparql_api.concept_cache.core;
import java.util.HashSet;
import java.util.Set;
import org.apache.jena.sparql.core.Var;
import com.google.common.collect.Multimap;
public class VarUsage {
protected Set<Var> referencedVars;
protected Set<Var> nonUnique;
protected Multimap<Var, Var> varDeps;
protected Set<Set<Var>> uniqueSets;
public VarUsage(
Set<Var> referencedVars,
Set<Var> nonUnique,
Multimap<Var, Var> varDeps,
Set<Set<Var>> uniqueSets) {
super();
this.referencedVars = referencedVars;
this.nonUnique = nonUnique;
this.varDeps = varDeps;
this.uniqueSets = uniqueSets;
}
public Set<Var> getReferencedVars() {
return referencedVars;
}
public Set<Var> getNonUnique() {
return nonUnique;
}
public Multimap<Var, Var> getVarDeps() {
return varDeps;
}
public Set<Set<Var>> getUniqueSets() {
return uniqueSets;
}
@Override
public String toString() {
return "VarUsage[ proj:" + varDeps.keySet() + ", refs: " + referencedVars +
", deps: " + varDeps + ", non-uniq: " + nonUnique + ", uniq sets: " + uniqueSets + "]";
}
public static Set<Var> getMandatoryVars(VarUsage varUsage) {
Set<Var> result = new HashSet<Var>();
result.addAll(varUsage.referencedVars);
result.addAll(varUsage.varDeps.values());
return result;
}
}