package com.github.anno4j.querying.evaluation.ldpath;
import com.github.anno4j.querying.evaluation.LDPathEvaluatorConfiguration;
import com.github.anno4j.querying.extension.QueryEvaluator;
import com.github.anno4j.annotations.Evaluator;
import com.hp.hpl.jena.sparql.core.Var;
import com.hp.hpl.jena.sparql.syntax.ElementGroup;
import org.apache.marmotta.ldpath.api.selectors.NodeSelector;
import org.apache.marmotta.ldpath.model.selectors.GroupedSelector;
/**
* This evaluator only creates a new group, which will contain further
* query parts.
*/
@Evaluator(GroupedSelector.class)
public class GroupedSelectorEvaluator implements QueryEvaluator {
@Override
public Var evaluate(NodeSelector nodeSelector, ElementGroup elementGroup, Var var, LDPathEvaluatorConfiguration evaluatorConfiguration) {
GroupedSelector groupedSelector = (GroupedSelector) nodeSelector;
ElementGroup newGroup = new ElementGroup();
elementGroup.addElement(newGroup);
return LDPathEvaluator.evaluate(groupedSelector.getContent(), newGroup, var, evaluatorConfiguration);
}
}