package org.neo4j.kernel.impl.traversal;
import org.neo4j.graphdb.Path;
import org.neo4j.graphdb.traversal.PruneEvaluator;
class MultiPruneEvaluator implements PruneEvaluator
{
private final PruneEvaluator[] prunings;
MultiPruneEvaluator( PruneEvaluator... prunings )
{
this.prunings = prunings;
}
public boolean pruneAfter( Path position )
{
for ( PruneEvaluator pruner : this.prunings )
{
if ( pruner.pruneAfter( position ) )
{
return true;
}
}
return false;
}
public MultiPruneEvaluator add( PruneEvaluator pruner )
{
PruneEvaluator[] newPrunings = new PruneEvaluator[this.prunings.length+1];
System.arraycopy( this.prunings, 0, newPrunings, 0, this.prunings.length );
newPrunings[newPrunings.length-1] = pruner;
return new MultiPruneEvaluator( newPrunings );
}
}