@Override
public Object visit(final RulePredicate obj, final Object arg) throws RIFException {
final BasicOperator zpattern = this.generatePattern(obj, arg);
if (zpattern instanceof PredicatePattern) {
final PredicatePattern predPat = (PredicatePattern) zpattern;
if (this.predicateIndex == null) {
this.predicateIndex = new PredicateIndexScan();
this.indexScanCreator.getRoot().addSucceedingOperator(new OperatorIDTuple(this.predicateIndex, this.indexScanCreator.getRoot().getSucceedingOperators().size()));
this.predicateIndex.addPrecedingOperator(this.indexScanCreator.getRoot());
}
this.predicateIndex.addSucceedingOperator(new OperatorIDTuple(predPat, this.predicateIndex.getSucceedingOperators().size()));
predPat.addPrecedingOperator(this.predicateIndex);
if(arg!=null){
predPat.setSucceedingOperator((OperatorIDTuple) arg);
((OperatorIDTuple) arg).getOperator().addPrecedingOperator(predPat);
}
// Pr�dikatkonsumenten anmelden
this.add(this.tripleConsumer, new KeyPredicatePattern(predPat), predPat);
return predPat;